3333import com .intellij .ui .InplaceButton ;
3434import com .intellij .util .PathUtil ;
3535import com .intellij .util .ui .JBUI ;
36- import com .jcraft .jsch .JSchException ;
3736import com .microsoft .azure .hdinsight .common .CallBack ;
3837import com .microsoft .azure .hdinsight .common .ClusterManagerEx ;
3938import com .microsoft .azure .hdinsight .common .Docs ;
4241import com .microsoft .azure .hdinsight .sdk .common .HDIException ;
4342import com .microsoft .azure .hdinsight .spark .common .SparkBatchDebugSession ;
4443import com .microsoft .azure .hdinsight .spark .common .SparkSubmitAdvancedConfigModel ;
45- import com .microsoft .azure .hdinsight .spark .run .SparkBatchJobRemoteDebugProcess ;
4644import com .microsoft .azuretools .utils .Pair ;
4745import org .jetbrains .annotations .NotNull ;
4846import rx .Subscription ;
5250import javax .swing .event .DocumentEvent ;
5351import javax .swing .event .DocumentListener ;
5452import java .awt .*;
53+ import java .awt .event .WindowAdapter ;
54+ import java .awt .event .WindowEvent ;
5555import java .io .File ;
5656import java .util .Locale ;
5757import java .util .Optional ;
6868public class SparkSubmissionAdvancedConfigDialog extends JDialog
6969 implements SettableControl <SparkSubmitAdvancedConfigModel > {
7070 SparkSubmissionAdvancedConfigDialog () {
71- this .advancedConfigModel = new SparkSubmitAdvancedConfigModel ();
71+ this .initialModel = new SparkSubmitAdvancedConfigModel ();
7272
7373 // FIXME!!! Since the Intellij has no locale setting, just set en-us here.
7474 this .helpUrl = new Docs (Locale .US ).getDocUrlByTopic (Docs .TOPIC_CONNECT_HADOOP_LINUX_USING_SSH );
@@ -119,11 +119,11 @@ protected void textChanged(DocumentEvent ev) {
119119 pack ();
120120 }
121121
122- public SparkSubmitAdvancedConfigModel getAdvancedConfigModel () {
123- return advancedConfigModel ;
122+ private SparkSubmitAdvancedConfigModel getInitialModel () {
123+ return initialModel ;
124124 }
125125
126- private SparkSubmitAdvancedConfigModel advancedConfigModel ;
126+ private SparkSubmitAdvancedConfigModel initialModel ;
127127 private String helpUrl ;
128128 private Boolean doesAuthAutoVerify = false ;
129129
@@ -429,8 +429,6 @@ private Subscription registerAsyncSshAuthCheck(PublishSubject<String> checkEvent
429429 }
430430
431431 private void onOk () {
432- this .advancedConfigModel = saveParameters ();
433-
434432 if (updateCallBack != null ) {
435433 updateCallBack .run ();
436434 }
@@ -439,6 +437,9 @@ private void onOk() {
439437 }
440438
441439 private void onCancel () {
440+ // Restore to the initial state
441+ setData (getInitialModel ());
442+
442443 dispose ();
443444 }
444445
@@ -452,6 +453,16 @@ public void addCallbackOnOk(CallBack cb) {
452453 this .updateCallBack = cb ;
453454 }
454455
456+ @ Override
457+ public void setVisible (boolean isVisible ) {
458+ if (isVisible ) {
459+ // Save the initial state
460+ getData (getInitialModel ());
461+ }
462+
463+ super .setVisible (isVisible );
464+ }
465+
455466 @ Override
456467 public void dispose () {
457468 getSshCheckSubscription ().ifPresent (Subscription ::unsubscribe );
0 commit comments