Unique name for new group and treegroup
[jalview.git] / src / jalview / gui / PopupMenu.java
index 206a969..9ed81ab 100755 (executable)
@@ -32,8 +32,6 @@ import javax.swing.*;
 \r
 import java.util.Vector;\r
 import jalview.io.FormatAdapter;\r
-import javax.swing.event.ChangeListener;\r
-import javax.swing.event.ChangeEvent;\r
 \r
 \r
 /**\r
@@ -182,7 +180,7 @@ public class PopupMenu extends JPopupMenu
           add(menuItem);\r
 \r
           if(ap.av.getSelectionGroup() !=null\r
-             && ap.av.getSelectionGroup().getSize(false)>1)\r
+             && ap.av.getSelectionGroup().getSize()>1)\r
           {\r
             menuItem = new JMenuItem("Represent Group with " + seq.getName());\r
             menuItem.addActionListener(new java.awt.event.ActionListener()\r
@@ -720,7 +718,7 @@ public class PopupMenu extends JPopupMenu
     protected void clustalColour_actionPerformed(ActionEvent e)\r
     {\r
         SequenceGroup sg = getGroup();\r
-        sg.cs = new ClustalxColourScheme(sg.getSequences(true),\r
+        sg.cs = new ClustalxColourScheme(sg.getSequences(ap.av.hiddenRepSequences),\r
                 ap.av.alignment.getWidth());\r
         refresh();\r
     }\r
@@ -827,7 +825,7 @@ public class PopupMenu extends JPopupMenu
         if (abovePIDColour.isSelected())\r
         {\r
           sg.cs.setConsensus(AAFrequency.calculate(\r
-              sg.getSequences(true), sg.getStartRes(),\r
+              sg.getSequences(ap.av.hiddenRepSequences), sg.getStartRes(),\r
               sg.getEndRes() + 1));\r
 \r
             int threshold = SliderPanel.setPIDSliderSource(ap, sg.cs,\r
@@ -874,7 +872,7 @@ public class PopupMenu extends JPopupMenu
     {\r
         SequenceGroup sg = getGroup();\r
         sg.cs = new PIDColourScheme();\r
-        sg.cs.setConsensus(AAFrequency.calculate(sg.getSequences(true),\r
+        sg.cs.setConsensus(AAFrequency.calculate(sg.getSequences(ap.av.hiddenRepSequences),\r
                                                  sg.getStartRes(),\r
                                                  sg.getEndRes() + 1));\r
         refresh();\r
@@ -891,7 +889,7 @@ public class PopupMenu extends JPopupMenu
 \r
         sg.cs = new Blosum62ColourScheme();\r
 \r
-        sg.cs.setConsensus(AAFrequency.calculate(sg.getSequences(true),\r
+        sg.cs.setConsensus(AAFrequency.calculate(sg.getSequences(ap.av.hiddenRepSequences),\r
                                                  sg.getStartRes(),\r
                                                  sg.getEndRes() + 1));\r
 \r
@@ -924,7 +922,7 @@ public class PopupMenu extends JPopupMenu
         {\r
             Conservation c = new Conservation("Group",\r
                     ResidueProperties.propHash, 3,\r
-                    sg.getSequences(true),\r
+                    sg.getSequences(ap.av.hiddenRepSequences),\r
                     sg.getStartRes(),\r
                     sg.getEndRes() + 1);\r
 \r
@@ -1126,34 +1124,33 @@ public class PopupMenu extends JPopupMenu
     void hideSequences(boolean representGroup)\r
     {\r
       SequenceGroup sg = ap.av.getSelectionGroup();\r
-      if(sg==null || sg.getSize(false)<1)\r
+      if(sg==null || sg.getSize()<1)\r
       {\r
         ap.av.hideSequence(new SequenceI[]{sequence});\r
         return;\r
       }\r
 \r
-      int gsize = sg.getSize(false);\r
-      SequenceI [] hseqs;\r
+      ap.av.setSelectionGroup(null);\r
 \r
-      hseqs = new SequenceI[ representGroup ? gsize-1 : gsize ];\r
+      if (representGroup)\r
+      {\r
+        ap.av.hideRepSequences(sequence, sg);\r
 \r
-        int index = 0;\r
-        for(int i=0; i<gsize; i++)\r
-        {\r
-          if(representGroup && sg.getSequenceAt(i)!=sequence)\r
-          {\r
-            sequence.addHiddenSequence(sg.getSequenceAt(i));\r
-            hseqs[index++] = sg.getSequenceAt(i);\r
-          }\r
-          else if(!representGroup)\r
-          {\r
-            hseqs[index++] = sg.getSequenceAt(i);\r
-          }\r
-        }\r
+        return;\r
+      }\r
 \r
-        ap.av.hideSequence(hseqs);\r
+      int gsize = sg.getSize();\r
+      SequenceI[] hseqs;\r
 \r
-        ap.av.setSelectionGroup(null);\r
+      hseqs = new SequenceI[gsize];\r
+\r
+      int index = 0;\r
+      for (int i = 0; i < gsize; i++)\r
+      {\r
+        hseqs[index++] = sg.getSequenceAt(i);\r
+      }\r
+\r
+      ap.av.hideSequence(hseqs);\r
     }\r
 \r
   public void copy_actionPerformed(ActionEvent e)\r
@@ -1228,7 +1225,8 @@ public class PopupMenu extends JPopupMenu
       }\r
 \r
       ChangeCaseCommand caseCommand = new ChangeCaseCommand(\r
-          description, sg.getSequencesAsArray(true), startEnd, caseChange\r
+          description, sg.getSequencesAsArray(ap.av.hiddenRepSequences),\r
+          startEnd, caseChange\r
           );\r
 \r
       ap.alignFrame.addHistoryItem(caseCommand);\r
@@ -1337,7 +1335,7 @@ public class PopupMenu extends JPopupMenu
     if(sg==null)\r
       return;\r
 \r
-    int gSize= sg.getSize(false);\r
+    int gSize= sg.getSize();\r
     SequenceI [] seqs = new SequenceI[gSize];\r
     SequenceFeature [] features = new SequenceFeature[gSize];\r
 \r
@@ -1360,86 +1358,8 @@ public class PopupMenu extends JPopupMenu
 \r
   public void textColour_actionPerformed(ActionEvent e)\r
   {\r
-    final SequenceGroup sg = getGroup();\r
-\r
-    int original1 = sg.textColour.getRGB();\r
-    int original2 = sg.textColour2.getRGB();\r
-    int thresh = sg.thresholdTextColour;\r
-    final JSlider slider = new JSlider(0, 750,sg.thresholdTextColour);\r
-    final JButton col1 = new JButton("DARK");\r
-    col1.setBackground(sg.textColour);\r
-    col1.setForeground(sg.textColour);\r
-    final JButton col2 = new JButton("LIGHT");\r
-    col2.setBackground(sg.textColour2);\r
-    col2.setForeground(sg.textColour2);\r
-    final JPanel bigpanel = new JPanel(new BorderLayout());\r
-    JPanel panel = new JPanel();\r
-    bigpanel.add(panel, BorderLayout.CENTER);\r
-    bigpanel.add(new JLabel(\r
-      "<html><i>Select a dark and light text colour, then set the threshold to"\r
-     +"<br>switch between colours, based on background colour</i></html>"),\r
-                 BorderLayout.NORTH);\r
-    panel.add(col1);\r
-    panel.add(slider);\r
-    panel.add(col2);\r
-\r
-    col1.addActionListener(new ActionListener()\r
-        {\r
-          public void actionPerformed(ActionEvent e)\r
-          {\r
-            Color col = JColorChooser.showDialog(bigpanel,\r
-                                                 "Select Colour for Text",\r
-                                                 sg.textColour);\r
-            if (col != null)\r
-            {\r
-              sg.textColour = col;\r
-              col1.setBackground(col);\r
-              col1.setForeground(col);\r
-            }\r
-            ap.repaint();\r
-          }\r
-        });\r
-\r
-    col2.addActionListener(new ActionListener()\r
-    {\r
-      public void actionPerformed(ActionEvent e)\r
-      {\r
-        Color col = JColorChooser.showDialog(bigpanel,\r
-                                             "Select Colour for Text",\r
-                                             sg.textColour);\r
-        if (col != null)\r
-        {\r
-          sg.textColour2 = col;\r
-          col2.setBackground(col);\r
-          col2.setForeground(col);\r
-        }\r
-        ap.repaint();\r
-      }\r
-    });\r
-\r
-\r
-    slider.addChangeListener(new ChangeListener()\r
-    {\r
-      public void stateChanged(ChangeEvent evt)\r
-      {\r
-        sg.thresholdTextColour = slider.getValue();\r
-        ap.repaint();\r
-      }\r
-    });\r
-\r
-    int reply = JOptionPane.showInternalOptionDialog(Desktop.desktop,\r
-                                                 bigpanel,\r
-                                                 "Adjust Foreground Text Colour Threshold",\r
-                                                 JOptionPane.OK_CANCEL_OPTION,\r
-                                                 JOptionPane.QUESTION_MESSAGE,\r
-                                                 null,\r
-                                                 null, null);\r
-\r
-    if(reply==JOptionPane.CANCEL_OPTION)\r
-    {\r
-      sg.textColour = new Color(original1);\r
-      sg.textColour2 = new Color(original2);\r
-      sg.thresholdTextColour = thresh;\r
-    }\r
+    SequenceGroup sg = getGroup();\r
+    if (sg != null)\r
+      new TextColourChooser().chooseColour(ap, sg);\r
   }\r
 }\r