Group Menu level changed
authoramwaterhouse <Andrew Waterhouse>
Mon, 13 Nov 2006 11:11:41 +0000 (11:11 +0000)
committeramwaterhouse <Andrew Waterhouse>
Mon, 13 Nov 2006 11:11:41 +0000 (11:11 +0000)
src/jalview/gui/PopupMenu.java

index 5292de9..206a969 100755 (executable)
@@ -32,6 +32,8 @@ 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
@@ -81,6 +83,8 @@ public class PopupMenu extends JPopupMenu
   JMenuItem discoverPDB = new JMenuItem();\r
   JMenu outputMenu = new JMenu();\r
   JMenuItem sequenceFeature = new JMenuItem();\r
+  JMenuItem textColour = new JMenuItem();\r
+  JMenu jMenu1 = new JMenu();\r
 \r
   /**\r
      * Creates a new PopupMenu object.\r
@@ -510,23 +514,25 @@ public class PopupMenu extends JPopupMenu
         sequenceFeature_actionPerformed(e);\r
       }\r
     });\r
+    textColour.setText("Text Colour");\r
+    textColour.addActionListener(new ActionListener()\r
+    {\r
+      public void actionPerformed(ActionEvent e)\r
+      {\r
+        textColour_actionPerformed(e);\r
+      }\r
+    });\r
+    jMenu1.setText("Group");\r
     add(groupMenu);\r
 \r
     add(sequenceMenu);\r
     groupMenu.add(editMenu);\r
     groupMenu.add(outputMenu);\r
-    groupMenu.addSeparator();\r
     groupMenu.add(sequenceFeature);\r
-    groupMenu.addSeparator();\r
-    groupMenu.add(groupName);\r
-    groupMenu.add(unGroupMenuItem);\r
-    groupMenu.add(colourMenu);\r
-    groupMenu.add(showBoxes);\r
-    groupMenu.add(showText);\r
-    groupMenu.add(showColourText);\r
-    groupMenu.add(outline);\r
+    groupMenu.add(jMenu1);\r
     sequenceMenu.add(sequenceName);\r
     sequenceMenu.add(pdbMenu);\r
+    colourMenu.add(textColour);\r
     colourMenu.add(noColourmenuItem);\r
         colourMenu.add(clustalColour);\r
         colourMenu.add(BLOSUM62Colour);\r
@@ -573,6 +579,13 @@ public class PopupMenu extends JPopupMenu
     pdbMenu.add(pdbFromFile);\r
     pdbMenu.add(enterPDB);\r
     pdbMenu.add(discoverPDB);\r
+    jMenu1.add(groupName);\r
+    jMenu1.add(unGroupMenuItem);\r
+    jMenu1.add(colourMenu);\r
+    jMenu1.add(showBoxes);\r
+    jMenu1.add(showText);\r
+    jMenu1.add(showColourText);\r
+    jMenu1.add(outline);\r
     noColourmenuItem.setText("None");\r
         noColourmenuItem.addActionListener(new java.awt.event.ActionListener()\r
             {\r
@@ -1344,4 +1357,89 @@ public class PopupMenu extends JPopupMenu
       ap.highlightSearchResults(null);\r
     }\r
   }\r
+\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
+  }\r
 }\r