JAL-3056 suppress menu options, and repoint Help, for JalviewJS
[jalview.git] / src / jalview / gui / Desktop.java
index 774dd4c..564f04a 100644 (file)
@@ -26,6 +26,7 @@ import jalview.api.AlignViewportI;
 import jalview.api.AlignmentViewPanel;
 import jalview.bin.Cache;
 import jalview.bin.Jalview;
+import jalview.gui.ImageExporter.ImageWriterI;
 import jalview.io.DataSourceType;
 import jalview.io.FileFormat;
 import jalview.io.FileFormatException;
@@ -40,7 +41,8 @@ import jalview.jbgui.GSplitFrame;
 import jalview.jbgui.GStructureViewer;
 import jalview.structure.StructureSelectionManager;
 import jalview.urls.IdOrgSettings;
-import jalview.util.ImageMaker;
+import jalview.util.BrowserLauncher;
+import jalview.util.ImageMaker.TYPE;
 import jalview.util.MessageManager;
 import jalview.util.Platform;
 import jalview.util.UrlConstants;
@@ -1119,7 +1121,7 @@ public class Desktop extends jalview.jbgui.GDesktop
   public void inputLocalFileMenuItem_actionPerformed(AlignViewport viewport)
   {
     String fileFormat = Cache.getProperty("DEFAULT_FILE_FORMAT");
-    final JalviewFileChooser chooser = JalviewFileChooser
+    JalviewFileChooser chooser = JalviewFileChooser
             .forRead(Cache.getProperty("LAST_DIRECTORY"), fileFormat);
 
     chooser.setFileView(new JalviewFileView());
@@ -1376,19 +1378,24 @@ public class Desktop extends jalview.jbgui.GDesktop
   }
 
   /**
-   * DOCUMENT ME!
-   * 
-   * @param e
-   *          DOCUMENT ME!
+   * Action on requesting Help documentation
    */
   @Override
-  public void documentationMenuItem_actionPerformed(ActionEvent e)
+  public void documentationMenuItem_actionPerformed()
   {
     try
     {
-      Help.showHelpWindow();
+      if (Jalview.isJS())
+      {
+        BrowserLauncher.openURL("http://www.jalview.org/help.html");
+      }
+      else
+      {
+        Help.showHelpWindow();
+      }
     } catch (Exception ex)
     {
+      System.err.println("Error opening help: " + ex.getMessage());
     }
   }
 
@@ -1592,16 +1599,12 @@ public class Desktop extends jalview.jbgui.GDesktop
   }
 
   /**
-   * DOCUMENT ME!
-   * 
-   * @param e
-   *          DOCUMENT ME!
+   * Prompts the user to choose a file and then saves the Jalview state as a
+   * Jalview project file
    */
   @Override
-  public void saveState_actionPerformed(ActionEvent e)
+  public void saveState_actionPerformed()
   {
-    // TODO: JAL-3048 not needed for Jalview-JS
-
     JalviewFileChooser chooser = new JalviewFileChooser("jvp",
             "Jalview Project");
 
@@ -1667,16 +1670,11 @@ public class Desktop extends jalview.jbgui.GDesktop
   }
 
   /**
-   * DOCUMENT ME!
-   * 
-   * @param e
-   *          DOCUMENT ME!
+   * Prompts the user to choose a file and loads in as a Jalview project file
    */
   @Override
-  public void loadState_actionPerformed(ActionEvent e)
+  public void loadState_actionPerformed()
   {
-    // TODO: JAL-3048 not needed for Jalview-JS
-
     JalviewFileChooser chooser = new JalviewFileChooser(
             Cache.getProperty("LAST_DIRECTORY"), new String[]
             { "jvp", "jar" },
@@ -2455,6 +2453,7 @@ public class Desktop extends jalview.jbgui.GDesktop
     @Override
     public void propertyChange(PropertyChangeEvent event)
     {
+      // TODO this is obsolete with JAL-3048 - delete?
       Object val = event.getNewValue();
       String name = event.getPropertyName();
       System.out.println(name);
@@ -2478,14 +2477,6 @@ public class Desktop extends jalview.jbgui.GDesktop
           return;
         }
         break;
-      case "javax.swing.ColorChooserDialog":
-        switch (name)
-        {
-        case "SelectedColor":
-          onDialogReturn(val);
-          return;
-        }
-        break;
       case "javax.swing.JFileChooser":
         switch (name)
         {
@@ -2511,9 +2502,7 @@ public class Desktop extends jalview.jbgui.GDesktop
         dialogData[0] = value;
         ((Runnable) dialogData[1]).run();
         break;
-      case "label.select_feature_colour":
-        ((FeatureRenderer) dialogData[1]).processColorDialog((Color) value);
-        break;
+      default:
       }
     }
 
@@ -3308,28 +3297,39 @@ public class Desktop extends jalview.jbgui.GDesktop
     block.release();
   }
 
+  /**
+   * Outputs an image of the desktop to file in EPS format, after prompting the
+   * user for choice of Text or Lineart character rendering (unless a preference
+   * has been set). The file name is generated as
+   * 
+   * <pre>
+   * Jalview_snapshot_nnnnn.eps where nnnnn is the current timestamp in milliseconds
+   * </pre>
+   */
   @Override
   protected void snapShotWindow_actionPerformed(ActionEvent e)
   {
+    // currently the menu option to do this is not shown
     invalidate();
-    File of;
-    ImageMaker im = new jalview.util.ImageMaker(
-            this, ImageMaker.TYPE.EPS, "View of Desktop", getWidth(),
-            getHeight(), of = new File("Jalview_snapshot"
-                    + System.currentTimeMillis() + ".eps"),
-            "View of desktop", null, 0, false);
-    try
-    {
-      paintAll(im.getGraphics());
-      im.writeImage();
-    } catch (Exception q)
+
+    int width = getWidth();
+    int height = getHeight();
+    File of = new File(
+            "Jalview_snapshot_" + System.currentTimeMillis() + ".eps");
+    ImageWriterI writer = new ImageWriterI()
     {
-      Cache.log.error("Couldn't write snapshot to " + of.getAbsolutePath(),
-              q);
-      return;
-    }
-    Cache.log.info("Successfully written snapshot to file "
-            + of.getAbsolutePath());
+      @Override
+      public void exportImage(Graphics g) throws Exception
+      {
+        paintAll(g);
+        Cache.log.info("Successfully written snapshot to file "
+                + of.getAbsolutePath());
+      }
+    };
+    String title = "View of desktop";
+    ImageExporter exporter = new ImageExporter(writer, null, TYPE.EPS,
+            title);
+    exporter.doExport(of, this, width, height, title);
   }
 
   /**