Merge branch 'Release_2_8_3_Branch' of https://source.jalview.org/git/jalview into...
[jalview.git] / src / jalview / gui / ChimeraViewFrame.java
index 83ea379..fdc7099 100644 (file)
  */
 package jalview.gui;
 
-import jalview.bin.Cache;
-import jalview.datamodel.Alignment;
-import jalview.datamodel.AlignmentI;
-import jalview.datamodel.ColumnSelection;
-import jalview.datamodel.PDBEntry;
-import jalview.datamodel.SequenceI;
-import jalview.ext.rbvi.chimera.JalviewChimeraBinding;
-import jalview.io.AppletFormatAdapter;
-import jalview.io.JalviewFileChooser;
-import jalview.io.JalviewFileView;
-import jalview.schemes.BuriedColourScheme;
-import jalview.schemes.ColourSchemeI;
-import jalview.schemes.HelixColourScheme;
-import jalview.schemes.HydrophobicColourScheme;
-import jalview.schemes.PurinePyrimidineColourScheme;
-import jalview.schemes.StrandColourScheme;
-import jalview.schemes.TaylorColourScheme;
-import jalview.schemes.TurnColourScheme;
-import jalview.schemes.ZappoColourScheme;
-import jalview.structures.models.AAStructureBindingModel;
-import jalview.util.MessageManager;
-import jalview.util.Platform;
-import jalview.ws.dbsources.Pdb;
-
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.ItemEvent;
@@ -69,6 +45,30 @@ import javax.swing.event.InternalFrameEvent;
 import javax.swing.event.MenuEvent;
 import javax.swing.event.MenuListener;
 
+import jalview.bin.Cache;
+import jalview.datamodel.Alignment;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.PDBEntry;
+import jalview.datamodel.SequenceI;
+import jalview.ext.rbvi.chimera.JalviewChimeraBinding;
+import jalview.io.AppletFormatAdapter;
+import jalview.io.JalviewFileChooser;
+import jalview.io.JalviewFileView;
+import jalview.schemes.BuriedColourScheme;
+import jalview.schemes.ColourSchemeI;
+import jalview.schemes.HelixColourScheme;
+import jalview.schemes.HydrophobicColourScheme;
+import jalview.schemes.PurinePyrimidineColourScheme;
+import jalview.schemes.StrandColourScheme;
+import jalview.schemes.TaylorColourScheme;
+import jalview.schemes.TurnColourScheme;
+import jalview.schemes.ZappoColourScheme;
+import jalview.structures.models.AAStructureBindingModel;
+import jalview.util.MessageManager;
+import jalview.util.Platform;
+import jalview.ws.dbsources.Pdb;
+
 /**
  * GUI elements for handlnig an external chimera display
  * 
@@ -321,7 +321,7 @@ public class ChimeraViewFrame extends StructureViewerBase
     {
       public void internalFrameClosing(InternalFrameEvent internalFrameEvent)
       {
-        closeViewer();
+        closeViewer(false);
       }
     });
 
@@ -545,19 +545,26 @@ public class ChimeraViewFrame extends StructureViewerBase
    * Close down this instance of Jalview's Chimera viewer, giving the user the
    * option to close the associated Chimera window (process). They may wish to
    * keep it open until they have had an opportunity to save any work.
+   * 
+   * @param closeChimera
+   *          if true, close any linked Chimera process; if false, prompt first
    */
-  public void closeViewer()
+  public void closeViewer(boolean closeChimera)
   {
     if (jmb.isChimeraRunning())
     {
-      String prompt = MessageManager
-              .formatMessage("label.confirm_close_chimera", new Object[]
-              { jmb.getViewerTitle("Chimera", false) });
-      prompt = JvSwingUtils.wrapTooltip(true, prompt);
-      int confirm = JOptionPane.showConfirmDialog(this, prompt,
-              MessageManager.getString("label.close_viewer"),
-              JOptionPane.YES_NO_OPTION);
-      jmb.closeViewer(confirm == JOptionPane.YES_OPTION);
+      if (!closeChimera)
+      {
+        String prompt = MessageManager.formatMessage(
+                "label.confirm_close_chimera", new Object[]
+                { jmb.getViewerTitle("Chimera", false) });
+        prompt = JvSwingUtils.wrapTooltip(true, prompt);
+        int confirm = JOptionPane.showConfirmDialog(this, prompt,
+                MessageManager.getString("label.close_viewer"),
+                JOptionPane.YES_NO_OPTION);
+        closeChimera = confirm == JOptionPane.YES_OPTION;
+      }
+      jmb.closeViewer(closeChimera);
     }
     setAlignmentPanel(null);
     _aps.clear();