Change the Html export to utilize svg
[jalview.git] / src / jalview / gui / ChimeraViewFrame.java
index 6278536..2f84d28 100644 (file)
@@ -144,6 +144,9 @@ public class ChimeraViewFrame extends GStructureViewer implements Runnable,
       _alignwith = new Vector<AlignmentPanel>();
     }
 
+    // save As not yet implemented
+    savemenu.setVisible(false);
+
     ViewSelectionMenu seqColourBy = new ViewSelectionMenu(
             MessageManager.getString("label.colour_by"), this, _colourwith,
             new ItemListener()
@@ -241,9 +244,9 @@ public class ChimeraViewFrame extends GStructureViewer implements Runnable,
         // TODO : Fix multiple seq to one chain issue here.
         ap.getStructureSelectionManager().setMapping(seq, chains,
                 alreadyMapped, AppletFormatAdapter.FILE);
-        if (ap.seqPanel.seqCanvas.fr != null)
+        if (ap.getSeqPanel().seqCanvas.fr != null)
         {
-          ap.seqPanel.seqCanvas.fr.featuresAdded();
+          ap.getSeqPanel().seqCanvas.fr.featuresAdded();
           ap.paintAlignment(true);
         }
 
@@ -546,7 +549,7 @@ public class ChimeraViewFrame extends GStructureViewer implements Runnable,
     jmb.setFinishedInit(false);
     // TODO: consider waiting until the structure/view is fully loaded before
     // displaying
-    jalview.gui.Desktop.addInternalFrame(this, jmb.getViewerTitle(),
+    jalview.gui.Desktop.addInternalFrame(this, jmb.getViewerTitle(true),
             getBounds().width, getBounds().height);
     if (command == null)
     {
@@ -619,9 +622,24 @@ public class ChimeraViewFrame extends GStructureViewer implements Runnable,
     jmb.centerViewer(toshow);
   }
 
+  /**
+   * 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.
+   */
   public void closeViewer()
   {
-    jmb.closeViewer();
+    if (jmb.isChimeraRunning())
+    {
+      String prompt = MessageManager
+              .formatMessage("label.confirm_close_chimera", new Object[]
+              { jmb.getViewerTitle(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);
+    }
     ap = null;
     _aps.clear();
     _alignwith.clear();
@@ -698,7 +716,7 @@ public class ChimeraViewFrame extends GStructureViewer implements Runnable,
     } catch (Exception ex)
     {
       ex.printStackTrace();
-      errormsgs.append("When retrieving pdbfiles : current was: '"
+      errormsgs.append("When retrieving pdbfiles for '"
               + thePdbEntry.getId() + "'");
     }
     if (errormsgs.length() > 0)
@@ -818,11 +836,13 @@ public class ChimeraViewFrame extends GStructureViewer implements Runnable,
     } catch (OutOfMemoryError oomerror)
     {
       new OOMWarning("Retrieving PDB id " + pdbid, oomerror);
-    }
-    if (progressBar != null)
+    } finally
     {
-      progressBar.setProgressBar(
-              MessageManager.getString("label.state_completed"), hdl);
+      if (progressBar != null)
+      {
+        progressBar.setProgressBar(
+                MessageManager.getString("label.state_completed"), hdl);
+      }
     }
     /*
      * If PDB data were saved and are not invalid (empty alignment), return the
@@ -1082,7 +1102,7 @@ public class ChimeraViewFrame extends GStructureViewer implements Runnable,
     }
     setChainMenuItems(jmb.chainNames);
 
-    this.setTitle(jmb.getViewerTitle());
+    this.setTitle(jmb.getViewerTitle(true));
     if (jmb.getPdbFile().length > 1 && jmb.sequence.length > 1)
     {
       viewerActionMenu.setVisible(true);