Merge branch 'features/JAL-1469_svg-output-for-figure-export' into develop
[jalview.git] / src / jalview / jbgui / GAlignFrame.java
index a7852b4..b75576e 100755 (executable)
@@ -23,6 +23,7 @@ package jalview.jbgui;
 import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder;
 import jalview.bin.Cache;
 import jalview.gui.JvSwingUtils;
+import jalview.gui.Preferences;
 import jalview.schemes.ColourSchemeProperty;
 import jalview.util.MessageManager;
 
@@ -213,6 +214,10 @@ public class GAlignFrame extends JInternalFrame
 
   JMenuItem createPNG = new JMenuItem();
 
+  JMenuItem createBioJS = new JMenuItem();
+
+  JMenuItem createSVG = new JMenuItem();
+
   protected JMenuItem font = new JMenuItem();
 
   public JCheckBoxMenuItem seqLimits = new JCheckBoxMenuItem();
@@ -371,9 +376,9 @@ public class GAlignFrame extends JInternalFrame
 
   protected JCheckBoxMenuItem applyAutoAnnotationSettings = new JCheckBoxMenuItem();
 
-  protected JCheckBoxMenuItem showAutoFirst = new JCheckBoxMenuItem();
+  protected JRadioButtonMenuItem showAutoFirst = new JRadioButtonMenuItem();
 
-  protected JCheckBoxMenuItem showAutoLast = new JCheckBoxMenuItem();
+  protected JRadioButtonMenuItem showAutoLast = new JRadioButtonMenuItem();
 
   private JMenuItem grpsFromSelection = new JMenuItem();
 
@@ -1140,7 +1145,7 @@ public class GAlignFrame extends JInternalFrame
       }
     });
     SequenceAnnotationOrder sortAnnotationsBy = SequenceAnnotationOrder
-            .valueOf(Cache.getDefault(Cache.SORT_ANNOTATIONS,
+            .valueOf(Cache.getDefault(Preferences.SORT_ANNOTATIONS,
                     SequenceAnnotationOrder.NONE.name()));
     sortAnnBySequence.setText(MessageManager
             .getString("label.sort_annotations_by_sequence"));
@@ -1194,6 +1199,19 @@ public class GAlignFrame extends JInternalFrame
         htmlMenuItem_actionPerformed(e);
       }
     });
+
+    // TODO uncomment when supported by MassageManager
+    // createBioJS.setText(MessageManager.getString("label.biojs_html_export"));
+    createBioJS.setText("BioJS");
+    createBioJS.addActionListener(new java.awt.event.ActionListener()
+    {
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        bioJSMenuItem_actionPerformed(e);
+      }
+    });
+
     overviewMenuItem.setText(MessageManager
             .getString("label.overview_window"));
     overviewMenuItem.addActionListener(new java.awt.event.ActionListener()
@@ -1421,30 +1439,30 @@ public class GAlignFrame extends JInternalFrame
       }
     });
 
+    ButtonGroup buttonGroup = new ButtonGroup();
+    buttonGroup.add(showAutoFirst);
+    buttonGroup.add(showAutoLast);
     showAutoFirst.setText(MessageManager.getString("label.show_first"));
-    showAutoFirst.setState(Cache.getDefault(Cache.SHOW_AUTOCALC_ABOVE,
+    showAutoFirst.setSelected(Cache.getDefault(
+            Preferences.SHOW_AUTOCALC_ABOVE,
             false));
     showAutoFirst.addActionListener(new ActionListener()
     {
       @Override
       public void actionPerformed(ActionEvent e)
       {
-        boolean sortFirst = showAutoFirst.getState();
-        setShowAutoCalculatedAbove(sortFirst);
-        showAutoLast.setState(!sortFirst);
+        setShowAutoCalculatedAbove(showAutoFirst.isSelected());
         sortAnnotations_actionPerformed();
       }
     });
     showAutoLast.setText(MessageManager.getString("label.show_last"));
-    showAutoLast.setState(!showAutoFirst.getState());
+    showAutoLast.setSelected(!showAutoFirst.isSelected());
     showAutoLast.addActionListener(new ActionListener()
     {
       @Override
       public void actionPerformed(ActionEvent e)
       {
-        boolean sortLast = showAutoLast.getState();
-        setShowAutoCalculatedAbove(!sortLast);
-        showAutoFirst.setState(!sortLast);
+        setShowAutoCalculatedAbove(!showAutoLast.isSelected());
         sortAnnotations_actionPerformed();
       }
     });
@@ -1590,6 +1608,7 @@ public class GAlignFrame extends JInternalFrame
     createPNG.setActionCommand(MessageManager
             .getString("label.save_png_image"));
     createPNG.setText("PNG");
+
     font.setText(MessageManager.getString("action.font"));
     font.addActionListener(new java.awt.event.ActionListener()
     {
@@ -1599,7 +1618,6 @@ public class GAlignFrame extends JInternalFrame
         font_actionPerformed(e);
       }
     });
-
     seqLimits.setText(MessageManager
             .getString("label.show_sequence_limits"));
     seqLimits.setState(jalview.bin.Cache.getDefault("SHOW_JVSUFFIX", true));
@@ -1620,6 +1638,17 @@ public class GAlignFrame extends JInternalFrame
         createEPS(null);
       }
     });
+
+    createSVG.setText("SVG");
+    createSVG.addActionListener(new java.awt.event.ActionListener()
+    {
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        createSVG(null);
+      }
+    });
+
     LoadtreeMenuItem.setActionCommand(MessageManager
             .getString("label.load_tree_for_sequence_set"));
     LoadtreeMenuItem.setText(MessageManager
@@ -2338,6 +2367,8 @@ public class GAlignFrame extends JInternalFrame
     jMenu2.add(htmlMenuItem);
     jMenu2.add(epsFile);
     jMenu2.add(createPNG);
+    jMenu2.add(createBioJS);
+    jMenu2.add(createSVG);
     addSequenceMenu.add(addFromFile);
     addSequenceMenu.add(addFromText);
     addSequenceMenu.add(addFromURL);
@@ -2595,6 +2626,11 @@ public class GAlignFrame extends JInternalFrame
   {
   }
 
+  protected void bioJSMenuItem_actionPerformed(ActionEvent e)
+  {
+
+  }
+
   protected void closeMenuItem_actionPerformed(boolean b)
   {
   }
@@ -2848,6 +2884,10 @@ public class GAlignFrame extends JInternalFrame
   {
   }
 
+  public void createSVG(java.io.File f)
+  {
+
+  }
   protected void LoadtreeMenuItem_actionPerformed(ActionEvent e)
   {