JAL-3048 DialogRunnerI reduced to minimal implementation
[jalview.git] / src / jalview / gui / AlignViewport.java
index b357734..62a3698 100644 (file)
@@ -48,7 +48,6 @@ import jalview.structure.SelectionSource;
 import jalview.structure.StructureSelectionManager;
 import jalview.structure.VamsasSource;
 import jalview.util.MessageManager;
-import jalview.util.dialogrunner.RunResponse;
 import jalview.viewmodel.AlignmentViewport;
 import jalview.ws.params.AutoCalcSetting;
 
@@ -80,7 +79,7 @@ public class AlignViewport extends AlignmentViewport
 
   private Rectangle explodedGeometry;
 
-  String viewName;
+  private String viewName;
 
   /*
    * Flag set true on the view that should 'gather' multiple views of the same
@@ -712,14 +711,16 @@ public class AlignViewport extends AlignmentViewport
         return;
       }
     }
-    alignmentDataAdded(toAdd);
+    addDataToAlignment(toAdd);
   }
 
-  private void alignmentDataAdded(AlignmentI toAdd)
+  /**
+   * adds sequences to this alignment
+   * 
+   * @param toAdd
+   */
+  void addDataToAlignment(AlignmentI toAdd)
   {
-    /*
-     * No mappings, or offer declined - add sequences to this alignment
-     */
     // TODO: JAL-407 regardless of above - identical sequences (based on ID and
     // provenance) should share the same dataset sequence
 
@@ -762,29 +763,36 @@ public class AlignViewport extends AlignmentViewport
     final String question = JvSwingUtils.wrapTooltip(true,
             MessageManager.getString("label.open_split_window?"));
     final AlignViewport us = this;
-    JvOptionPane.newOptionDialog(Desktop.desktop)
-            .response(new RunResponse(1)
+    
+    /*
+     * options No, Split Window, New Window correspond to
+     * dialog responses 0, 1, 2 (even though JOptionPane shows them
+     * in reverse order)
+     */
+    JvOptionPane dialog = JvOptionPane.newOptionDialog(Desktop.desktop)
+            .setResponseHandler(0, new Runnable()
             {
               @Override
               public void run()
               {
-                us.openLinkedAlignmentAs(al, title, true);
+                  addDataToAlignment(al);
               }
-            }).response(new RunResponse(2)
+            }).setResponseHandler(1, new Runnable()
             {
               @Override
               public void run()
               {
-                us.openLinkedAlignmentAs(al, title, false);
+                us.openLinkedAlignmentAs(al, title, true);
               }
-            }).defaultResponse(new Runnable()
+            }).setResponseHandler(2, new Runnable()
             {
               @Override
               public void run()
               {
-                alignmentDataAdded(al);
+                us.openLinkedAlignmentAs(al, title, false);
               }
-            }).showDialog(question,
+            });
+       dialog.showDialog(question,
             MessageManager.getString("label.open_split_window"),
             JvOptionPane.DEFAULT_OPTION, JvOptionPane.PLAIN_MESSAGE, null,
             options, options[0]);
@@ -1054,4 +1062,14 @@ public class AlignViewport extends AlignmentViewport
     }
     fr.setTransparency(featureSettings.getTransparency());
   }
+
+  public String getViewName()
+  {
+    return viewName;
+  }
+
+  public void setViewName(String viewName)
+  {
+    this.viewName = viewName;
+  }
 }