@@ -69,13 +69,8 @@ private void createUIComponents() {
6969
7070 ManifestFileUtil .setupMainClassField (myProject , submissionPanel .getMainClassTextField ());
7171
72- this .submissionPanel .addClusterListRefreshActionListener (e -> {
73- List <IClusterDetail > clusterDetails = ClusterManagerEx .getInstance ().getClusterDetails ();
74- Optional <String > selectedClusterTitle = submitModel .getSelectedClusterDetail ()
75- .map (IClusterDetail ::getTitle );
76- resetClusterDetailsToComboBoxModel (submitModel , clusterDetails );
77- selectedClusterTitle .ifPresent (selectedTitle -> setSelectedClusterByTitle (submitModel , selectedTitle ));
78- });
72+ this .submissionPanel .addClusterListRefreshActionListener (e ->
73+ refreshClusterSelection (ClusterManagerEx .getInstance ().getClusterDetails ()));
7974
8075 this .submissionPanel .addJobConfigurationLoadButtonActionListener (e -> {
8176 FileChooserDescriptor fileChooserDescriptor = new FileChooserDescriptor (
@@ -118,6 +113,17 @@ public JComponent getComponent() {
118113 return submissionPanel ;
119114 }
120115
116+ private void refreshClusterSelection (List <IClusterDetail > clusters ) {
117+ Optional <String > selectedClusterTitle = submitModel .getSelectedClusterDetail ()
118+ .map (IClusterDetail ::getTitle );
119+ resetClusterDetailsToComboBoxModel (submitModel , clusters );
120+ if (selectedClusterTitle .isPresent ()) {
121+ setSelectedClusterByTitle (submitModel , selectedClusterTitle .get ());
122+ } else {
123+ setSelectedClusterByName (submitModel , submitModel .getSubmissionParameter ().getClusterName ());
124+ }
125+ }
126+
121127 private void refreshClusterListAsync () {
122128 submissionPanel .setClustersListRefreshEnabled (false );
123129
@@ -139,10 +145,7 @@ private void refreshClusterListAsync() {
139145 HDInsightUtil .showErrorMessageOnSubmissionMessageWindow (myProject , "Error: Failed to list additional cluster" );
140146 }
141147
142- Optional <String > selectedClusterTitle = submitModel .getSelectedClusterDetail ()
143- .map (IClusterDetail ::getTitle );
144- resetClusterDetailsToComboBoxModel (submitModel , cachedClusters );
145- selectedClusterTitle .ifPresent (selectedTitle -> setSelectedClusterByTitle (submitModel , selectedTitle ));
148+ refreshClusterSelection (cachedClusters );
146149
147150 submissionPanel .setClustersListRefreshEnabled (true );
148151 submissionPanel .getClusterSelectedSubject ().onNext ((String ) submissionPanel .getClustersListComboBox ().getComboBox ().getSelectedItem ());
@@ -187,6 +190,20 @@ private void setSelectedClusterByTitle(SparkSubmitModel destSubmitModel, String
187190 });
188191 }
189192
193+ private void setSelectedClusterByName (SparkSubmitModel destSubmitModel , String clusterNameToSelect ) {
194+ final DefaultComboBoxModel <String > clusterComboBoxModel = destSubmitModel .getClusterComboBoxModel ();
195+
196+ destSubmitModel .getCachedClusterDetails ().stream ()
197+ .filter (clusterDetail -> clusterDetail .getName ().equals (clusterNameToSelect ))
198+ .map (IClusterDetail ::getTitle )
199+ .findFirst ()
200+ .ifPresent (clusterTitle -> {
201+ if (clusterComboBoxModel .getIndexOf (clusterTitle ) >= 0 ) {
202+ clusterComboBoxModel .setSelectedItem (clusterTitle );
203+ }
204+ });
205+ }
206+
190207 @ Override
191208 public void setData (@ NotNull SparkSubmitModel data ) {
192209 // Data -> Component
0 commit comments