Skip to content

Commit 99ddf8f

Browse files
Merge pull request #5250 from microsoft/eventbus/springcloud
use AzureEventBus to sync status among different views(azure explorer, properties view, run configuration...)
2 parents 6f00316 + ff77689 commit 99ddf8f

File tree

7 files changed

+44
-10
lines changed

7 files changed

+44
-10
lines changed

PluginsAndFeatures/azure-toolkit-for-intellij/src/com/microsoft/azure/toolkit/intellij/springcloud/properties/AzureSlider.form

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@
1313
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false"/>
1414
</constraints>
1515
<properties>
16-
<majorTickSpacing value="50"/>
17-
<maximum value="500"/>
16+
<majorTickSpacing value="5"/>
17+
<maximum value="25"/>
1818
<minimum value="0"/>
19-
<minorTickSpacing value="10"/>
19+
<minorTickSpacing value="1"/>
2020
<paintLabels value="true"/>
2121
<paintTicks value="true"/>
2222
<paintTrack value="true"/>
2323
<snapToTicks value="false"/>
24-
<value value="50"/>
24+
<value value="1"/>
2525
<valueIsAdjusting value="true"/>
2626
</properties>
2727
</component>

PluginsAndFeatures/azure-toolkit-for-intellij/src/com/microsoft/azure/toolkit/intellij/springcloud/properties/AzureSlider.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@ public int getValue() {
6262
return (int) this.numValue.getValue();
6363
}
6464

65+
public void prepare() {
66+
this.numSlider.setLabelTable(null);
67+
}
68+
6569
private void createUIComponents() {
6670
this.numValue = new JBIntSpinner(1, 0, 10);
6771
}

PluginsAndFeatures/azure-toolkit-for-intellij/src/com/microsoft/azure/toolkit/intellij/springcloud/properties/SpringCloudAppPanel.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ private void updateForm() {
182182
numCpuModel.addAll(IntStream.range(1, 1 + (basic ? 1 : 4)).boxed().collect(Collectors.toList()));
183183
numMemoryModel.removeAllElements();
184184
numMemoryModel.addAll(IntStream.range(1, 1 + (basic ? 2 : 8)).boxed().collect(Collectors.toList()));
185+
this.numInstance.prepare();
185186
this.numInstance.setMaximum(basic ? 25 : 500);
186187
this.numInstance.setMajorTickSpacing(basic ? 5 : 50);
187188
this.numInstance.setMinorTickSpacing(basic ? 1 : 10);

PluginsAndFeatures/azure-toolkit-for-intellij/src/com/microsoft/azure/toolkit/intellij/springcloud/properties/SpringCloudAppPropertiesEditor.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.intellij.openapi.project.Project;
99
import com.intellij.ui.components.ActionLink;
1010
import com.microsoft.azure.toolkit.intellij.common.BaseEditor;
11+
import com.microsoft.azure.toolkit.lib.common.event.AzureEventBus;
1112
import com.microsoft.azure.toolkit.lib.common.messager.AzureMessager;
1213
import com.microsoft.azure.toolkit.lib.common.task.AzureTaskManager;
1314
import com.microsoft.azure.toolkit.lib.springcloud.SpringCloudApp;
@@ -112,15 +113,24 @@ private void initListeners() {
112113
new DeploySpringCloudAppTask(this.appPanel.getData()).execute();
113114
this.refresh();
114115
}));
115-
// TODO: add listener: update view on app updated and close editor on app deleted.
116+
AzureEventBus.after("springcloud|app.remove", (SpringCloudApp app) -> {
117+
if (this.app.name().equals(app.name())) {
118+
this.closeEditor();
119+
}
120+
});
121+
AzureEventBus.after("springcloud|app.update", (SpringCloudApp app) -> {
122+
if (this.app.name().equals(app.name())) {
123+
this.refresh();
124+
}
125+
});
116126
}
117127

118128
private void refresh() {
119129
this.reset.setVisible(false);
120130
this.saveButton.setEnabled(false);
121131
AzureTaskManager.getInstance().runLater(() -> {
122132
final String refreshTitle = String.format("Refreshing app(%s)...", Objects.requireNonNull(this.app).name());
123-
AzureTaskManager.getInstance().runInModal(refreshTitle, () -> {
133+
AzureTaskManager.getInstance().runInBackground(refreshTitle, () -> {
124134
this.appPanel.refresh();
125135
this.resetToolbar();
126136
});

PluginsAndFeatures/azure-toolkit-for-intellij/src/com/microsoft/intellij/util/ValidationUtils.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import java.util.HashMap;
1818
import java.util.HashSet;
1919
import java.util.Map;
20+
import java.util.Objects;
2021
import java.util.Set;
2122
import java.util.regex.Matcher;
2223
import java.util.regex.Pattern;
@@ -137,10 +138,8 @@ public static void validateSpringCloudAppName(final String name, final SpringClo
137138
throw new IllegalArgumentException(message("springCloud.app.name.validate.empty"));
138139
} else if (!name.matches(SPRING_CLOUD_APP_NAME_PATTERN)) {
139140
throw new IllegalArgumentException(message("springCloud.app.name.validate.invalid"));
140-
} else {
141-
if (cluster.app(name).exists()) {
142-
throw new IllegalArgumentException(message("springCloud.app.name.validate.exist", name));
143-
}
141+
} else if (Objects.nonNull(cluster) && cluster.app(name).exists()) {
142+
throw new IllegalArgumentException(message("springCloud.app.name.validate.exist", name));
144143
}
145144
}
146145

Utils/azure-explorer-common/src/com/microsoft/tooling/msservices/serviceexplorer/azure/springcloud/SpringCloudAppNode.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
package com.microsoft.tooling.msservices.serviceexplorer.azure.springcloud;
77

88
import com.microsoft.azure.management.appplatform.v2020_07_01.DeploymentResourceStatus;
9+
import com.microsoft.azure.toolkit.lib.common.event.AzureEventBus;
910
import com.microsoft.azure.toolkit.lib.common.operation.AzureOperation;
1011
import com.microsoft.azure.toolkit.lib.springcloud.SpringCloudApp;
1112
import com.microsoft.azure.toolkit.lib.springcloud.SpringCloudDeployment;
@@ -62,6 +63,16 @@ public SpringCloudAppNode(SpringCloudApp app, SpringCloudNode parent) {
6263
fillData(event.getApp(), event.getDeployment());
6364
}
6465
}, this.app.entity().getId());
66+
AzureEventBus.after("springcloud|app.start", this::onAppStatusChanged);
67+
AzureEventBus.after("springcloud|app.stop", this::onAppStatusChanged);
68+
AzureEventBus.after("springcloud|app.restart", this::onAppStatusChanged);
69+
}
70+
71+
public void onAppStatusChanged(SpringCloudApp app) {
72+
if (this.app.name().equals(app.name())) {
73+
this.app.refresh();
74+
this.fillData(this.app, this.app.activeDeployment());
75+
}
6576
}
6677

6778
@Override

Utils/azure-explorer-common/src/com/microsoft/tooling/msservices/serviceexplorer/azure/springcloud/SpringCloudNode.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
package com.microsoft.tooling.msservices.serviceexplorer.azure.springcloud;
77

88
import com.microsoft.azure.toolkit.lib.Azure;
9+
import com.microsoft.azure.toolkit.lib.common.event.AzureEventBus;
910
import com.microsoft.azure.toolkit.lib.springcloud.AzureSpringCloud;
1011
import com.microsoft.azure.toolkit.lib.springcloud.SpringCloudApp;
1112
import com.microsoft.azure.toolkit.lib.springcloud.SpringCloudCluster;
@@ -35,6 +36,14 @@ public SpringCloudNode(AzureRefreshableNode parent, SpringCloudCluster cluster)
3536
super(cluster.id(), cluster.name(), parent, null, true);
3637
this.cluster = cluster;
3738
loadActions();
39+
AzureEventBus.after("springcloud|app.create", this::onAppCreatedOrRemoved);
40+
AzureEventBus.after("springcloud|app.remove", this::onAppCreatedOrRemoved);
41+
}
42+
43+
public void onAppCreatedOrRemoved(SpringCloudApp app) {
44+
if (this.cluster.name().equals(app.getCluster().name())) {
45+
refreshItems();
46+
}
3847
}
3948

4049
@Override

0 commit comments

Comments
 (0)