Skip to content

Commit 211bc59

Browse files
authored
Merge pull request #5237 from microsoft/qianjin-sqlserver-04-showproperties-3-uijava
[SQL Server] (No.8) add sql server UI java codes related to show propertes.
2 parents 25575d4 + db2b7d8 commit 211bc59

File tree

6 files changed

+416
-7
lines changed

6 files changed

+416
-7
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
/*
2+
* Copyright (c) Microsoft Corporation. All rights reserved.
3+
* Licensed under the MIT License. See License.txt in the project root for license information.
4+
*/
5+
6+
package com.microsoft.azure.toolkit.intellij.sqlserver.common;
7+
8+
import com.microsoft.azure.toolkit.intellij.common.AzureComboBox;
9+
import com.microsoft.azure.toolkit.lib.common.operation.AzureOperation;
10+
import com.microsoft.azure.toolkit.lib.sqlserver.model.SqlDatabaseEntity;
11+
import com.microsoft.azure.toolkit.lib.sqlserver.service.ISqlServer;
12+
13+
import java.util.ArrayList;
14+
import java.util.List;
15+
import java.util.Objects;
16+
17+
/**
18+
* TODO: refactor together with DatabaseComboBox.
19+
*/
20+
public class SqlServerDatabaseComboBox extends AzureComboBox<SqlDatabaseEntity> {
21+
22+
private ISqlServer server;
23+
24+
public void setServer(ISqlServer server) {
25+
if (Objects.equals(server, this.server)) {
26+
return;
27+
}
28+
this.server = server;
29+
if (server == null) {
30+
this.clear();
31+
return;
32+
}
33+
this.refreshItems();
34+
}
35+
36+
@Override
37+
protected String getItemText(Object item) {
38+
if (item instanceof SqlDatabaseEntity) {
39+
return ((SqlDatabaseEntity) item).getName();
40+
}
41+
return super.getItemText(item);
42+
}
43+
44+
@Override
45+
@AzureOperation(
46+
name = "sqlserver|database.list.server|subscription",
47+
params = {"this.server.name()", "this.subscription.subscriptionId()"},
48+
type = AzureOperation.Type.SERVICE
49+
)
50+
protected List<? extends SqlDatabaseEntity> loadItems() throws Exception {
51+
if (Objects.isNull(server)) {
52+
return new ArrayList<>();
53+
}
54+
return server.databases();
55+
}
56+
57+
@Override
58+
public boolean isRequired() {
59+
return true;
60+
}
61+
}

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
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
/*
2+
* Copyright (c) Microsoft Corporation. All rights reserved.
3+
* Licensed under the MIT License. See License.txt in the project root for license information.
4+
*/
5+
6+
package com.microsoft.azure.toolkit.intellij.sqlserver.properties;
7+
8+
import lombok.Getter;
9+
10+
import javax.swing.*;
11+
12+
public class SqlServerPropertryOverviewPanel extends JPanel {
13+
private JPanel rootPanel;
14+
@Getter
15+
private JTextField resourceGroupTextField;
16+
@Getter
17+
private JTextField serverNameTextField;
18+
@Getter
19+
private JTextField statusTextField;
20+
@Getter
21+
private JTextField serverAdminLoginNameTextField;
22+
@Getter
23+
private JTextField locationTextField;
24+
@Getter
25+
private JTextField versionTextField;
26+
@Getter
27+
private JTextField subscriptionTextField;
28+
@Getter
29+
private JTextField subscriptionIDTextField;
30+
31+
SqlServerPropertryOverviewPanel() {
32+
super();
33+
disableTxtBoard();
34+
makeTxtOpaque();
35+
}
36+
37+
@Override
38+
public void setVisible(boolean visible) {
39+
super.setVisible(visible);
40+
rootPanel.setVisible(visible);
41+
}
42+
43+
private void disableTxtBoard() {
44+
resourceGroupTextField.setBorder(BorderFactory.createEmptyBorder());
45+
serverNameTextField.setBorder(BorderFactory.createEmptyBorder());
46+
statusTextField.setBorder(BorderFactory.createEmptyBorder());
47+
serverAdminLoginNameTextField.setBorder(BorderFactory.createEmptyBorder());
48+
locationTextField.setBorder(BorderFactory.createEmptyBorder());
49+
versionTextField.setBorder(BorderFactory.createEmptyBorder());
50+
subscriptionTextField.setBorder(BorderFactory.createEmptyBorder());
51+
subscriptionIDTextField.setBorder(BorderFactory.createEmptyBorder());
52+
}
53+
54+
private void makeTxtOpaque() {
55+
resourceGroupTextField.setBackground(null);
56+
serverNameTextField.setBackground(null);
57+
statusTextField.setBackground(null);
58+
serverAdminLoginNameTextField.setBackground(null);
59+
locationTextField.setBackground(null);
60+
versionTextField.setBackground(null);
61+
subscriptionTextField.setBackground(null);
62+
subscriptionIDTextField.setBackground(null);
63+
}
64+
}

0 commit comments

Comments
 (0)