Merge remote-tracking branch 'origin/develop' into features/JAL-2316
[jalview.git] / src / jalview / appletgui / APopupMenu.java
index 8487104..7ca47b6 100644 (file)
@@ -36,7 +36,8 @@ import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
 import jalview.io.AppletFormatAdapter;
 import jalview.io.DataSourceType;
-import jalview.io.FileFormat;
+import jalview.io.FileFormatI;
+import jalview.io.FileFormats;
 import jalview.io.SequenceAnnotationReport;
 import jalview.schemes.Blosum62ColourScheme;
 import jalview.schemes.BuriedColourScheme;
@@ -92,8 +93,6 @@ public class APopupMenu extends java.awt.PopupMenu implements
 
   protected MenuItem buriedColour = new MenuItem();
 
-  protected CheckboxMenuItem abovePIDColour = new CheckboxMenuItem();
-
   protected MenuItem userDefinedColour = new MenuItem();
 
   protected MenuItem PIDColour = new MenuItem();
@@ -102,8 +101,14 @@ public class APopupMenu extends java.awt.PopupMenu implements
 
   MenuItem noColourmenuItem = new MenuItem();
 
+  protected CheckboxMenuItem abovePIDColour = new CheckboxMenuItem();
+
+  MenuItem modifyPID = new MenuItem();
+
   protected CheckboxMenuItem conservationMenuItem = new CheckboxMenuItem();
 
+  MenuItem modifyConservation = new MenuItem();
+
   final AlignmentPanel ap;
 
   MenuItem unGroupMenuItem = new MenuItem();
@@ -216,7 +221,7 @@ public class APopupMenu extends java.awt.PopupMenu implements
       e.printStackTrace();
     }
 
-    for (String ff : FileFormat.getWritableFormats(true))
+    for (String ff : FileFormats.getInstance().getWritableFormats(true))
     {
       MenuItem item = new MenuItem(ff);
 
@@ -247,7 +252,9 @@ public class APopupMenu extends java.awt.PopupMenu implements
         if (sg.cs != null)
         {
           abovePIDColour.setState(sg.cs.getThreshold() > 0);
+          modifyPID.setEnabled(abovePIDColour.getState());
           conservationMenuItem.setState(sg.cs.conservationApplied());
+          modifyConservation.setEnabled(conservationMenuItem.getState());
         }
       }
     }
@@ -588,6 +595,14 @@ public class APopupMenu extends java.awt.PopupMenu implements
     {
       noColourmenuItem_actionPerformed();
     }
+    else if (source == modifyConservation)
+    {
+      conservationMenuItem_itemStateChanged();
+    }
+    else if (source == modifyPID)
+    {
+      abovePIDColour_itemStateChanged();
+    }
     else if (source == unGroupMenuItem)
     {
       unGroupMenuItem_actionPerformed();
@@ -789,7 +804,8 @@ public class APopupMenu extends java.awt.PopupMenu implements
     // now returns a full copy of sequence data
     // TODO consider using getSequenceSelection instead here
 
-    FileFormat fileFormat = FileFormat.valueOf(e.getActionCommand());
+    FileFormatI fileFormat = FileFormats.getInstance().forName(
+            e.getActionCommand());
     cap.setText(new AppletFormatAdapter().formatSequences(fileFormat,
             ap.av.getShowJVSuffix(), ap, true));
 
@@ -900,6 +916,14 @@ public class APopupMenu extends java.awt.PopupMenu implements
     nucleotideMenuItem.addActionListener(this);
     conservationMenuItem.addItemListener(this);
     abovePIDColour.addItemListener(this);
+    modifyPID.setLabel(MessageManager
+            .getString("label.modify_identity_threshold"));
+    modifyPID.addActionListener(this);
+    modifyConservation.setLabel(MessageManager
+            .getString("label.modify_conservation_threshold"));
+    modifyPID.setEnabled(abovePIDColour.getState());
+    modifyConservation.setEnabled(conservationMenuItem.getState());
+    modifyConservation.addActionListener(this);
     colourMenu.setLabel(MessageManager.getString("label.group_colour"));
     showBoxes.setLabel(MessageManager.getString("action.boxes"));
     showBoxes.setState(true);
@@ -954,8 +978,10 @@ public class APopupMenu extends java.awt.PopupMenu implements
     colourMenu.add(nucleotideMenuItem);
     colourMenu.add(userDefinedColour);
     colourMenu.addSeparator();
-    colourMenu.add(abovePIDColour);
     colourMenu.add(conservationMenuItem);
+    colourMenu.add(modifyConservation);
+    colourMenu.add(abovePIDColour);
+    colourMenu.add(modifyPID);
 
     noColourmenuItem.setLabel(MessageManager.getString("label.none"));
     noColourmenuItem.addActionListener(this);
@@ -992,7 +1018,7 @@ public class APopupMenu extends java.awt.PopupMenu implements
     BLOSUM62Colour.setLabel("BLOSUM62");
     BLOSUM62Colour.addActionListener(this);
     conservationMenuItem.setLabel(MessageManager
-            .getString("label.conservation"));
+            .getString("action.by_conservation"));
 
     editMenu.add(copy);
     copy.addActionListener(this);
@@ -1117,11 +1143,11 @@ public class APopupMenu extends java.awt.PopupMenu implements
     else
     // remove PIDColouring
     {
+      SliderPanel.hidePIDSlider();
       sg.cs.setThreshold(0, ap.av.isIgnoreGapsConsensus());
     }
-
+    modifyPID.setEnabled(abovePIDColour.getState());
     refresh();
-
   }
 
   protected void userDefinedColour_actionPerformed()
@@ -1176,9 +1202,10 @@ public class APopupMenu extends java.awt.PopupMenu implements
     else
     // remove ConservationColouring
     {
+      SliderPanel.hideConservationSlider();
       sg.cs.setConservation(null);
     }
-
+    modifyConservation.setEnabled(conservationMenuItem.getState());
     refresh();
   }