Skip to content

Commit e073893

Browse files
committed
Merge branch 'qianjin-sqlserver-04-showproperties-3-uijava' into qianjin-sqlserver-04-showproperties-4-actions
2 parents 05a53fd + 3b1a451 commit e073893

File tree

6 files changed

+39
-22
lines changed

6 files changed

+39
-22
lines changed

PluginsAndFeatures/azure-toolkit-for-intellij/src/com/microsoft/azure/toolkit/intellij/sqlserver/common/SqlServerDatabaseComboBox.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,6 @@ public class SqlServerDatabaseComboBox extends AzureComboBox<SqlDatabaseEntity>
1818

1919
private ISqlServer server;
2020

21-
public void setSubscription(ISqlServer server) {
22-
if (Objects.equals(server, this.server)) {
23-
return;
24-
}
25-
this.refreshItems();
26-
}
27-
2821
public void setServer(ISqlServer server) {
2922
if (Objects.equals(server, this.server)) {
3023
return;

PluginsAndFeatures/azure-toolkit-for-intellij/src/com/microsoft/azure/toolkit/intellij/sqlserver/common/SqlServerRegionComboBox.java

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,18 @@
2121
import java.util.Objects;
2222
import java.util.stream.Collectors;
2323

24+
/**
25+
* TODO(Qianjin) : extend RegionComboBox
26+
*/
2427
public class SqlServerRegionComboBox extends AzureComboBox<Region> {
2528

2629
private static final String REGION_UNAVAILABLE_MESSAGE = "Your subscription does not have access to create a server "
2730
+ "in the selected region. For the latest information about region availability for your subscription, go to "
2831
+ "aka.ms/sqlcapacity. Please try another region or create a support ticket to request access.";
2932

3033
private Subscription subscription;
34+
private boolean validated;
35+
private AzureValidationInfo validatedInfo;
3136

3237
public void setSubscription(Subscription subscription) {
3338
if (Objects.equals(subscription, this.subscription)) {
@@ -62,6 +67,14 @@ protected String getItemText(Object item) {
6267
return super.getItemText(item);
6368
}
6469

70+
@Override
71+
public void setItem(Region item) {
72+
if (!item.equals(getItem())) {
73+
validated = false;
74+
}
75+
super.setItem(item);
76+
}
77+
6578
@Override
6679
public boolean isRequired() {
6780
return true;
@@ -70,16 +83,19 @@ public boolean isRequired() {
7083
@NotNull
7184
@Override
7285
public AzureValidationInfo doValidate() {
73-
final AzureValidationInfo info = super.doValidate();
74-
if (!AzureValidationInfo.OK.equals(info)) {
75-
return info;
86+
if (validated && Objects.isNull(validatedInfo)) {
87+
return validatedInfo;
7688
}
77-
AzureSqlServer service = com.microsoft.azure.toolkit.lib.Azure.az(AzureSqlServer.class);
78-
if (!service.checkRegionCapability(subscription.subscriptionId(), getValue().getName())) {
79-
final AzureValidationInfo.AzureValidationInfoBuilder builder = AzureValidationInfo.builder();
80-
return builder.input(this).message(REGION_UNAVAILABLE_MESSAGE).type(AzureValidationInfo.Type.ERROR).build();
89+
validatedInfo = super.doValidate();
90+
if (AzureValidationInfo.OK.equals(validatedInfo)) {
91+
AzureSqlServer service = com.microsoft.azure.toolkit.lib.Azure.az(AzureSqlServer.class);
92+
if (!service.checkRegionCapability(subscription.subscriptionId(), getValue().getName())) {
93+
final AzureValidationInfo.AzureValidationInfoBuilder builder = AzureValidationInfo.builder();
94+
validatedInfo = builder.input(this).message(REGION_UNAVAILABLE_MESSAGE).type(AzureValidationInfo.Type.ERROR).build();
95+
}
8196
}
82-
return info;
97+
validated = true;
98+
return validatedInfo;
8399
}
84100

85101
/**

PluginsAndFeatures/azure-toolkit-for-intellij/src/com/microsoft/azure/toolkit/intellij/sqlserver/creation/SqlServerCreationAdvancedPanel.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ private void init() {
6767

6868
private void initListeners() {
6969
this.subscriptionComboBox.addItemListener(this::onSubscriptionChanged);
70-
this.adminUsernameTextField.getDocument().addDocumentListener(generateAdminUsernameListener());
70+
this.adminUsernameTextField.getDocument().addDocumentListener(this.onAdminUsernameChanged());
7171
}
7272

7373
private void onSubscriptionChanged(final ItemEvent e) {
@@ -79,7 +79,7 @@ private void onSubscriptionChanged(final ItemEvent e) {
7979
}
8080
}
8181

82-
private DocumentListener generateAdminUsernameListener() {
82+
private DocumentListener onAdminUsernameChanged() {
8383
return new TextDocumentListenerAdapter() {
8484
@Override
8585
public void onDocumentChanged() {

PluginsAndFeatures/azure-toolkit-for-intellij/src/com/microsoft/azure/toolkit/intellij/sqlserver/creation/SqlServerCreationDialog.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,20 @@
2222

2323
package com.microsoft.azure.toolkit.intellij.sqlserver.creation;
2424

25+
import com.google.common.base.Preconditions;
2526
import com.intellij.openapi.project.Project;
27+
import com.microsoft.azure.management.resources.Subscription;
2628
import com.microsoft.azure.toolkit.intellij.common.AzureDialog;
2729
import com.microsoft.azure.toolkit.lib.common.form.AzureForm;
2830
import com.microsoft.azure.toolkit.lib.sqlserver.SqlServerConfig;
31+
import com.microsoft.azuretools.core.mvp.model.AzureMvpModel;
32+
import org.apache.commons.collections4.CollectionUtils;
2933
import org.jetbrains.annotations.Nullable;
3034

3135
import javax.swing.*;
3236

37+
import java.util.List;
38+
3339
import static com.microsoft.intellij.ui.messages.AzureBundle.message;
3440

3541
public class SqlServerCreationDialog extends AzureDialog<SqlServerConfig> {
@@ -95,7 +101,9 @@ protected void toggleAdvancedMode(boolean advancedMode) {
95101
}
96102

97103
private void createUIComponents() {
98-
SqlServerConfig config = SqlServerConfig.getDefaultConfig();
104+
final List<Subscription> selectedSubscriptions = AzureMvpModel.getInstance().getSelectedSubscriptions();
105+
Preconditions.checkArgument(CollectionUtils.isNotEmpty(selectedSubscriptions), "There is no subscription in your account.");
106+
SqlServerConfig config = SqlServerConfig.getDefaultConfig(selectedSubscriptions.get(0));
99107
basic = new SqlServerCreationBasicPanel(config);
100108
advanced = new SqlServerCreationAdvancedPanel(config);
101109
}

PluginsAndFeatures/azure-toolkit-for-intellij/src/com/microsoft/azure/toolkit/intellij/sqlserver/properties/SqlServerPropertyView.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@
4343
import java.util.List;
4444
import java.util.Map;
4545

46+
/**
47+
* TODO (qianjin): shared common code
48+
*/
4649
public class SqlServerPropertyView extends BaseEditor implements MvpView {
4750

4851
public static final String ID = "com.microsoft.azure.toolkit.intellij.sqlserver.properties.SqlServerPropertyView";

PluginsAndFeatures/azure-toolkit-for-intellij/src/com/microsoft/azure/toolkit/lib/sqlserver/SqlServerConfig.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,9 @@ public class SqlServerConfig {
3939
private boolean allowAccessFromAzureServices;
4040
private boolean allowAccessFromLocalMachine;
4141

42-
public static SqlServerConfig getDefaultConfig() {
42+
public static SqlServerConfig getDefaultConfig(Subscription subscription) {
4343
final String defaultNameSuffix = DateFormatUtils.format(new Date(), "yyyyMMddHHmmss");
4444
final SqlServerConfig config = new SqlServerConfig();
45-
final List<Subscription> selectedSubscriptions = AzureMvpModel.getInstance().getSelectedSubscriptions();
46-
Preconditions.checkArgument(CollectionUtils.isNotEmpty(selectedSubscriptions), "There is no subscription in your account.");
47-
Subscription subscription = selectedSubscriptions.get(0);
4845
config.setSubscription(subscription);
4946
DraftResourceGroup resourceGroup = DraftResourceGroup.builder().subscription(subscription).name("rs-" + defaultNameSuffix).build();
5047
config.setResourceGroup(resourceGroup);

0 commit comments

Comments
 (0)