Skip to content

Commit 923fc2b

Browse files
add support for setting cluster and whether fixed later.
changing cluster should be disabled when creating new app in deployment dialog.
1 parent 860889d commit 923fc2b

File tree

6 files changed

+29
-33
lines changed

6 files changed

+29
-33
lines changed

PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-springcloud/src/main/java/com/microsoft/azure/toolkit/intellij/springcloud/component/SpringCloudAppComboBox.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,7 @@
2525
import javax.swing.*;
2626
import java.awt.event.InputEvent;
2727
import java.awt.event.KeyEvent;
28-
import java.util.ArrayList;
29-
import java.util.LinkedList;
30-
import java.util.List;
31-
import java.util.Objects;
32-
import java.util.Optional;
28+
import java.util.*;
3329

3430
public class SpringCloudAppComboBox extends AzureComboBox<SpringCloudApp> {
3531
private SpringCloudCluster cluster;
@@ -116,7 +112,8 @@ protected List<Extension> getExtensions() {
116112
}
117113

118114
private void showAppCreationPopup() {
119-
final SpringCloudAppCreationDialog dialog = new SpringCloudAppCreationDialog(this.cluster);
115+
final SpringCloudAppCreationDialog dialog = new SpringCloudAppCreationDialog();
116+
dialog.setCluster(this.cluster, true);
120117
Optional.ofNullable(this.javaVersion).ifPresent(a -> dialog.setDefaultRuntimeVersion(javaVersion));
121118
dialog.setOkActionListener((draft) -> {
122119
dialog.close();

PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-springcloud/src/main/java/com/microsoft/azure/toolkit/intellij/springcloud/creation/CreateSpringCloudAppAction.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ public class CreateSpringCloudAppAction {
3535
public static void createApp(@Nonnull SpringCloudCluster cluster, @Nullable Project project) {
3636
Azure.az(AzureAccount.class).account();
3737
AzureTaskManager.getInstance().runLater(() -> {
38-
final SpringCloudAppCreationDialog dialog = new SpringCloudAppCreationDialog(cluster, project);
38+
final SpringCloudAppCreationDialog dialog = new SpringCloudAppCreationDialog(project);
39+
dialog.setCluster(cluster, false);
3940
dialog.setDefaultRuntimeVersion(JdkUtils.getJdkLanguageLevel(Optional.ofNullable(project).orElseGet(ProjectUtils::getProject)));
4041
dialog.setOkActionListener((draft) -> {
4142
dialog.close();

PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-springcloud/src/main/java/com/microsoft/azure/toolkit/intellij/springcloud/creation/SpringCloudAppCreationDialog.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,21 @@
1111
import com.microsoft.azure.toolkit.intellij.common.ConfigDialog;
1212
import com.microsoft.azure.toolkit.lib.springcloud.SpringCloudAppDraft;
1313
import com.microsoft.azure.toolkit.lib.springcloud.SpringCloudCluster;
14-
import com.microsoft.azure.toolkit.lib.springcloud.SpringCloudDeploymentDraft;
1514

1615
import javax.annotation.Nullable;
1716
import javax.swing.*;
1817

1918
public class SpringCloudAppCreationDialog extends ConfigDialog<SpringCloudAppDraft> {
20-
private final SpringCloudCluster cluster;
2119
private JPanel panel;
2220
private SpringCloudAppInfoBasicPanel basicForm;
2321
private SpringCloudAppInfoAdvancedPanel advancedForm;
2422

25-
public SpringCloudAppCreationDialog(@Nullable SpringCloudCluster cluster) {
26-
this(cluster, null);
23+
public SpringCloudAppCreationDialog() {
24+
this(null);
2725
}
2826

29-
public SpringCloudAppCreationDialog(@Nullable SpringCloudCluster cluster, @Nullable Project project) {
27+
public SpringCloudAppCreationDialog(@Nullable Project project) {
3028
super(project);
31-
this.cluster = cluster;
3229
this.init();
3330
setFrontPanel(basicForm);
3431
}
@@ -55,8 +52,13 @@ protected JComponent createCenterPanel() {
5552
}
5653

5754
private void createUIComponents() {
58-
advancedForm = new SpringCloudAppInfoAdvancedPanel(this.cluster);
59-
basicForm = new SpringCloudAppInfoBasicPanel(this.cluster);
55+
advancedForm = new SpringCloudAppInfoAdvancedPanel();
56+
basicForm = new SpringCloudAppInfoBasicPanel();
57+
}
58+
59+
public void setCluster(@Nullable SpringCloudCluster cluster, Boolean fixed) {
60+
this.advancedForm.setCluster(cluster, fixed);
61+
this.basicForm.setCluster(cluster, fixed);
6062
}
6163

6264
public void setDefaultRuntimeVersion(@Nullable Integer jdkVersion) {

PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-springcloud/src/main/java/com/microsoft/azure/toolkit/intellij/springcloud/creation/SpringCloudAppInfoAdvancedPanel.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,9 @@
1515
import com.microsoft.azure.toolkit.lib.common.task.AzureTaskManager;
1616
import com.microsoft.azure.toolkit.lib.springcloud.SpringCloudApp;
1717
import com.microsoft.azure.toolkit.lib.springcloud.SpringCloudAppDraft;
18-
import com.microsoft.azure.toolkit.lib.springcloud.SpringCloudCluster;
1918
import lombok.AccessLevel;
2019
import lombok.Getter;
2120

22-
import javax.annotation.Nullable;
2321
import javax.swing.*;
2422
import java.util.Arrays;
2523
import java.util.List;
@@ -34,8 +32,8 @@ public class SpringCloudAppInfoAdvancedPanel extends SpringCloudAppInfoPanel {
3432
private SpringCloudAppConfigPanel formConfig;
3533
private JLabel lblSubscription;
3634

37-
public SpringCloudAppInfoAdvancedPanel(@Nullable final SpringCloudCluster cluster) {
38-
super(cluster);
35+
public SpringCloudAppInfoAdvancedPanel() {
36+
super();
3937
$$$setupUI$$$();
4038
this.init();
4139
this.lblSubscription.setIcon(AllIcons.General.ContextHelp);

PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-springcloud/src/main/java/com/microsoft/azure/toolkit/intellij/springcloud/creation/SpringCloudAppInfoBasicPanel.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,13 @@
1414
import com.microsoft.azure.toolkit.lib.common.form.AzureFormInput;
1515
import com.microsoft.azure.toolkit.lib.springcloud.SpringCloudApp;
1616
import com.microsoft.azure.toolkit.lib.springcloud.SpringCloudAppDraft;
17-
import com.microsoft.azure.toolkit.lib.springcloud.SpringCloudCluster;
1817
import com.microsoft.azure.toolkit.lib.springcloud.SpringCloudDeploymentDraft;
1918
import com.microsoft.azure.toolkit.lib.springcloud.model.Sku;
2019
import lombok.AccessLevel;
2120
import lombok.Getter;
2221
import lombok.Setter;
2322
import org.apache.commons.lang3.StringUtils;
2423

25-
import javax.annotation.Nullable;
2624
import javax.swing.*;
2725
import java.util.Arrays;
2826
import java.util.List;
@@ -44,8 +42,8 @@ public class SpringCloudAppInfoBasicPanel extends SpringCloudAppInfoPanel {
4442
@Setter
4543
private String defaultRuntimeVersion = SpringCloudDeploymentDraft.DEFAULT_RUNTIME_VERSION.toString();
4644

47-
public SpringCloudAppInfoBasicPanel(@Nullable final SpringCloudCluster cluster) {
48-
super(cluster);
45+
public SpringCloudAppInfoBasicPanel() {
46+
super();
4947
$$$setupUI$$$();
5048
this.init();
5149
this.lblSubscription.setIcon(AllIcons.General.ContextHelp);

PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-springcloud/src/main/java/com/microsoft/azure/toolkit/intellij/springcloud/creation/SpringCloudAppInfoPanel.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,10 @@
3434
public abstract class SpringCloudAppInfoPanel extends JPanel implements AzureFormPanel<SpringCloudAppDraft> {
3535
private static final String SPRING_CLOUD_APP_NAME_PATTERN = "^[a-z][a-z0-9-]{2,30}[a-z0-9]$";
3636
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyyMMddHHmmss");
37-
@Nullable
38-
private final SpringCloudCluster cluster;
3937
private final String defaultAppName;
4038

41-
public SpringCloudAppInfoPanel(@Nullable final SpringCloudCluster cluster) {
39+
public SpringCloudAppInfoPanel() {
4240
super();
43-
this.cluster = cluster;
4441
this.defaultAppName = String.format("spring-app-%s", DATE_FORMAT.format(new Date()));
4542
}
4643

@@ -56,16 +53,20 @@ protected void init() {
5653
textName.setValue(this.defaultAppName);
5754
textName.addValidator(() -> {
5855
try {
59-
validateSpringCloudAppName(textName.getValue(), this.cluster);
56+
final SpringCloudCluster cluster = this.getSelectorCluster().getValue();
57+
validateSpringCloudAppName(textName.getValue(), cluster);
6058
} catch (final IllegalArgumentException e) {
6159
final AzureValidationInfoBuilder builder = AzureValidationInfo.builder();
6260
return builder.input(textName).type(AzureValidationInfo.Type.ERROR).message(e.getMessage()).build();
6361
}
6462
return AzureValidationInfo.success(this);
6563
});
66-
if (Objects.nonNull(this.cluster)) {
67-
selectorSubscription.setValue(this.cluster.getSubscription());
68-
selectorCluster.setValue(this.cluster);
64+
}
65+
66+
public void setCluster(SpringCloudCluster cluster, Boolean fixed) {
67+
if (Objects.nonNull(cluster)) {
68+
this.getSelectorSubscription().setValue(cluster.getSubscription(), fixed);
69+
this.getSelectorCluster().setValue(cluster, fixed);
6970
}
7071
}
7172

@@ -97,7 +98,6 @@ protected void onAppChanged(SpringCloudApp app) {
9798
public SpringCloudAppDraft getValue() {
9899
final String appName = this.getTextName().getValue();
99100
final SpringCloudApp app = Optional.ofNullable(this.getSelectorCluster().getValue())
100-
.or(() -> Optional.ofNullable(this.cluster))
101101
.map(SpringCloudCluster::apps)
102102
.map(apps -> apps.getOrDraft(appName, null)).orElse(null);
103103
return (SpringCloudAppDraft) (Objects.isNull(app) || app.isDraft() ? app : app.update());
@@ -116,7 +116,7 @@ public void setVisible(final boolean visible) {
116116
super.setVisible(visible);
117117
}
118118

119-
public static void validateSpringCloudAppName(final String name, final SpringCloudCluster cluster) {
119+
public static void validateSpringCloudAppName(final String name, @Nullable final SpringCloudCluster cluster) {
120120
if (StringUtils.isEmpty(name)) {
121121
throw new IllegalArgumentException(AzureMessageBundle.message("springcloud.app.name.validate.empty").toString());
122122
} else if (!name.matches(SPRING_CLOUD_APP_NAME_PATTERN)) {

0 commit comments

Comments
 (0)