Skip to content

Commit 7913ab2

Browse files
committed
Fix the issue of selected cluster not apply to SSH auth verify
Signed-off-by: Zhang Wei <[email protected]>
1 parent 1ac161e commit 7913ab2

File tree

1 file changed

+42
-26
lines changed

1 file changed

+42
-26
lines changed

PluginsAndFeatures/azure-toolkit-for-intellij/src/com/microsoft/azure/hdinsight/spark/ui/SparkSubmissionContentPanel.java

Lines changed: 42 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -41,24 +41,20 @@
4141
import com.microsoft.azuretools.azurecommons.helpers.Nullable;
4242
import com.microsoft.azuretools.azurecommons.helpers.StringHelper;
4343
import com.microsoft.tooling.msservices.components.DefaultLoader;
44-
import org.apache.commons.lang.StringUtils;
44+
import rx.subjects.BehaviorSubject;
4545

4646
import javax.swing.*;
4747
import javax.swing.event.DocumentEvent;
4848
import javax.swing.event.DocumentListener;
4949
import javax.swing.table.TableColumn;
5050
import java.awt.*;
51-
import java.awt.event.ActionEvent;
52-
import java.awt.event.ActionListener;
53-
import java.awt.event.ItemEvent;
54-
import java.awt.event.ItemListener;
51+
import java.awt.event.*;
5552
import java.beans.PropertyChangeEvent;
5653
import java.beans.PropertyChangeListener;
57-
import java.io.*;
5854
import java.util.ArrayList;
5955
import java.util.List;
6056
import java.util.Map;
61-
import java.util.Properties;
57+
import java.util.concurrent.TimeUnit;
6258

6359
public class SparkSubmissionContentPanel extends JPanel{
6460
public SparkSubmissionContentPanel(@NotNull Project project, @Nullable CallBack updateCallBack){
@@ -148,6 +144,9 @@ public SparkSubmitModel getSubmitModel() {
148144
private JRadioButton localArtifactRadioButton;
149145
private final JLabel[] errorMessageLabels = new JLabel[5];
150146
private SparkSubmissionAdvancedConfigDialog advancedConfigDialog;
147+
private JButton advancedConfigButton= new JButton("Advanced configuration");
148+
149+
private BehaviorSubject<String> clusterSelectedSubject = BehaviorSubject.create();
151150

152151
/**
153152
* Apply the parameters in new SubmitModel
@@ -176,6 +175,15 @@ private void initialize() {
176175
initializeModel();
177176
updateTableColumn();
178177
loadParameter(submitModel.getSubmissionParameter());
178+
179+
addContainerListener(new ContainerAdapter() {
180+
@Override
181+
public void componentRemoved(ContainerEvent e) {
182+
cleanUp();
183+
184+
super.componentRemoved(e);
185+
}
186+
});
179187
}
180188

181189
private void loadParameter(SparkSubmissionParameter parameter) {
@@ -237,6 +245,7 @@ private void initializeModel() {
237245
submitModel.setClusterComboBoxModel(cachedClusters);
238246
clustersListComboBox.getComboBox().setModel(submitModel.getClusterComboBoxModel());
239247
clustersListComboBox.getButton().setEnabled(true);
248+
clusterSelectedSubject.onNext((String) clustersListComboBox.getComboBox().getSelectedItem());
240249
});
241250

242251
selectedArtifactComboBox.setModel(submitModel.getArtifactComboBoxModel());
@@ -290,12 +299,14 @@ public void actionPerformed(ActionEvent e) {
290299
clustersListComboBox.getComboBox().addPropertyChangeListener(new PropertyChangeListener() {
291300
@Override
292301
public void propertyChange(PropertyChangeEvent evt) {
293-
if (evt.getPropertyName() == "model" && evt.getNewValue() instanceof DefaultComboBoxModel) {
302+
if (evt.getPropertyName().equals("model") && evt.getNewValue() instanceof DefaultComboBoxModel) {
294303
int size = ((DefaultComboBoxModel) evt.getNewValue()).getSize();
295304
setVisibleForFixedErrorMessageLabel(ErrorMessageLabelTag.ClusterName.ordinal(), size <= 0);
296305
}
297306
}
298307
});
308+
clustersListComboBox.getComboBox().addItemListener(ev ->
309+
clusterSelectedSubject.onNext(ev.getStateChange() == ItemEvent.SELECTED ? ev.getItem().toString() : null));
299310

300311
add(clustersListComboBox,
301312
new GridBagConstraints(1, displayLayoutCurrentRow,
@@ -652,34 +663,35 @@ private void addReferencedJarsLineItem() {
652663
}
653664

654665
private void addAdvancedConfigLineItem() {
655-
JButton advancedConfigButton = new JButton("Advanced configuration");
666+
advancedConfigButton.setEnabled(false);
656667
advancedConfigButton.setToolTipText("Specify advanced configuration, for example, enabling Spark remote debug");
657668

669+
clusterSelectedSubject
670+
.throttleWithTimeout(200, TimeUnit.MILLISECONDS)
671+
.subscribe(cluster -> advancedConfigButton.setEnabled(cluster != null));
672+
658673
add(advancedConfigButton,
659674
new GridBagConstraints(0, ++displayLayoutCurrentRow,
660675
0, 1,
661676
1, 0,
662677
GridBagConstraints.SOUTHEAST, GridBagConstraints.NONE,
663678
new Insets(margin, margin, 0, 0), 0, 0));
664679

665-
advancedConfigButton.addActionListener(new ActionListener() {
666-
@Override
667-
public void actionPerformed(ActionEvent e) {
668-
advancedConfigDialog = new SparkSubmissionAdvancedConfigDialog(
669-
submitModel,
670-
submitModel.getAdvancedConfigModel(),
671-
new CallBack() {
672-
@Override
673-
public void run() {
674-
if (null != advancedConfigDialog){
675-
submitModel.setAdvancedConfigModel(advancedConfigDialog.getAdvancedConfigModel());
676-
}
677-
}
680+
advancedConfigButton.addActionListener(e -> {
681+
// Read the current panel setting into current model
682+
SparkSubmitModel currentModel = new SparkSubmitModel(submitModel.getProject(), constructSubmissionParameter());
683+
684+
advancedConfigDialog = new SparkSubmissionAdvancedConfigDialog(
685+
currentModel,
686+
submitModel.getAdvancedConfigModel(),
687+
() -> {
688+
if (null != advancedConfigDialog){
689+
submitModel.setAdvancedConfigModel(advancedConfigDialog.getAdvancedConfigModel());
678690
}
679-
);
680-
advancedConfigDialog.setModal(true);
681-
advancedConfigDialog.setVisible(true);
682-
}
691+
}
692+
);
693+
advancedConfigDialog.setModal(true);
694+
advancedConfigDialog.setVisible(true);
683695
});
684696
}
685697

@@ -722,4 +734,8 @@ private void setStatusForMessageLabel(@NotNull int label, @NotNull boolean isVis
722734
private void setStatusForMessageLabel(@NotNull int label, @NotNull boolean isVisible, @Nullable String message) {
723735
setStatusForMessageLabel(label, isVisible, message, false);
724736
}
737+
738+
public void cleanUp() {
739+
clusterSelectedSubject.onCompleted();
740+
}
725741
}

0 commit comments

Comments
 (0)