in PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-springcloud/src/main/java/com/microsoft/azure/toolkit/intellij/springcloud/component/SpringCloudAppConfigPanel.java [144:203]
public synchronized void updateForm(@Nonnull SpringCloudApp app) {
AzureTaskManager.getInstance().runInBackground(AzureString.format("load properties of app(%s)", app.getName()), () -> {
final String testUrl = app.getTestUrl();
final SpringCloudPersistentDisk disk = app.getPersistentDisk();
final String url = app.getApplicationUrl();
AzureTaskManager.getInstance().runLater(() -> {
if (testUrl != null) {
this.txtTestEndpoint.setHyperlinkText(testUrl.length() > 60 ? testUrl.substring(0, 60) + "..." : testUrl);
this.txtTestEndpoint.setHyperlinkTarget(testUrl.endsWith("/") ? testUrl.substring(0, testUrl.length() - 1) : testUrl);
this.txtTestEndpoint.setVisible(true);
this.lblTestEndpoint.setVisible(true);
} else {
this.txtTestEndpoint.setVisible(false);
this.lblTestEndpoint.setVisible(false);
this.txtTestEndpoint.setHyperlinkTarget(null);
}
this.txtStorage.setText(Objects.nonNull(disk) ? disk.toString() : "---");
this.txtEndpoint.setHyperlinkTarget(url);
this.txtEndpoint.setEnabled(Objects.nonNull(url));
if (Objects.nonNull(url)) {
this.txtEndpoint.setHyperlinkText(url.length() > 60 ? url.substring(0, 60) + "..." : url);
} else {
this.txtEndpoint.setIcon(null);
this.txtEndpoint.setText("---");
}
}, AzureTask.Modality.ANY);
});
final SpringCloudCluster service = app.getParent();
final boolean enterprise = service.isEnterpriseTier();
final boolean consumption = service.isConsumptionTier();
final boolean standard = service.isStandardTier();
final boolean basic = !enterprise && !consumption && !standard;
this.useJava8.setVisible(!enterprise);
this.useJava11.setVisible(!enterprise);
this.useJava17.setVisible(!enterprise);
this.lblRuntime.setVisible(!enterprise);
this.lblDisk.setVisible(!enterprise && !consumption);
this.pnlDisk.setVisible(!enterprise && !consumption);
this.lblInstance.setText("Instances:");
final Double cpu = this.numCpu.getItem();
final Double mem = this.numMemory.getItem();
final Double[] cpus = basic ? new Double[]{0.5, 1.0} : consumption ? new Double[]{0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0} : new Double[]{0.5, 1.0, 2.0, 3.0, 4.0};
final Double[] mems = basic ? new Double[]{0.5, 1.0, 2.0} : consumption ? new Double[]{0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0} : new Double[]{0.5, 1.0, 2.0, 3.0, 4.0, 5., 6.0, 7.0, 8.0};
final DefaultComboBoxModel<Double> numCpuModel = new DefaultComboBoxModel<>(cpus);
final DefaultComboBoxModel<Double> numMemoryModel = new DefaultComboBoxModel<>(mems);
numCpuModel.setSelectedItem(Objects.isNull(cpu) ? Double.valueOf(1.0) : (cpu > cpus[cpus.length - 1]) ? null : cpu);
numMemoryModel.setSelectedItem(Objects.isNull(mem) ? Double.valueOf(2.0) : mem > mems[mems.length - 1] ? null : mem);
if (consumption) {
this.numMemory.addActionListener(e -> Optional.ofNullable((Double) numMemoryModel.getSelectedItem()).ifPresent(m -> numCpuModel.setSelectedItem(m / 2)));
this.numCpu.addActionListener(e -> Optional.ofNullable((Double) numCpuModel.getSelectedItem()).ifPresent(c -> numMemoryModel.setSelectedItem(c * 2)));
this.lblInstance.setText("Max replicas:");
}
this.numCpu.setModel(numCpuModel);
this.numMemory.setModel(numMemoryModel);
this.numInstance.setMaximum(basic ? 25 : consumption ? 30 : 500);
this.numInstance.setMajorTickSpacing(basic || consumption ? 5 : 50);
this.numInstance.setMinorTickSpacing(basic || consumption ? 1 : 10);
this.numInstance.setMinimum(0);
this.numInstance.updateLabels();
}