selection removed, now SelectionGroup does same job as id select and residue select
[jalview.git] / src / jalview / gui / UserDefinedColours.java
index a12672e..a96cf52 100755 (executable)
@@ -1,6 +1,7 @@
 package jalview.gui;\r
 \r
 import jalview.jbgui.GUserDefinedColours;\r
+import jalview.datamodel.*;\r
 import javax.swing.*;\r
 import java.awt.*;\r
 import java.awt.event.*;\r
@@ -13,27 +14,42 @@ import java.util.*;
 public class UserDefinedColours extends GUserDefinedColours implements ChangeListener\r
 {\r
 \r
-  AlignViewport av;\r
-  ColourSchemeI colourScheme;\r
+  AlignmentPanel ap;\r
+  SequenceGroup seqGroup;\r
   JButton selectedButton;\r
   Vector oldColours = new Vector();\r
+  ColourSchemeI oldColourScheme;\r
   JInternalFrame frame;\r
 \r
-  public UserDefinedColours(JInternalFrame f, AlignViewport av)\r
+\r
+  public UserDefinedColours(JInternalFrame f, AlignmentPanel ap, SequenceGroup sg)\r
   {\r
     super();\r
     colorChooser.getSelectionModel().addChangeListener(this);\r
-    this.av = av;\r
+    this.ap = ap;\r
     frame = f;\r
-    colourScheme = av.getGlobalColourScheme();\r
+    seqGroup = sg;\r
+\r
+\r
+      if (seqGroup != null)\r
+        oldColourScheme = seqGroup.cs;\r
+      else\r
+        oldColourScheme = ap.av.getGlobalColourScheme();\r
+\r
+      for (int i = 0; i < 20; i++)\r
+        makeButton(ResidueProperties.aa2Triplet.get(ResidueProperties.aa[i]) +\r
+                   "", ResidueProperties.aa[i]);\r
 \r
-    for(int i=0; i<20; i++)\r
-      makeButton(ResidueProperties.aa2Triplet.get( ResidueProperties.aa[i] )+"", ResidueProperties.aa[i]);\r
+      makeButton("B", "B");\r
+      makeButton("Z", "Z");\r
+      makeButton("X", "X");\r
+      makeButton("'.','-',' '", "-");\r
+\r
+      if(jalview.bin.Cache.getProperty("USER_DEFINED_COLOUR")!=null)\r
+      {\r
+        loadColour(jalview.bin.Cache.getProperty("USER_DEFINED_COLOUR"));\r
+      }\r
 \r
-    makeButton("B","B");\r
-    makeButton("Z","Z");\r
-    makeButton("X","X");\r
-    makeButton("'.','-',' '", "-");\r
 \r
   }\r
 \r
@@ -52,9 +68,17 @@ public class UserDefinedColours extends GUserDefinedColours implements ChangeLis
   void makeButton(String label, String aa)\r
   {\r
     final JButton button = new JButton();\r
-    button.setBackground( colourScheme.findColour(null,aa,-1,null) );\r
-    oldColours.addElement( colourScheme.findColour(null,aa,-1,null) );\r
+    Color col = Color.white;\r
+\r
+\r
+    try{\r
+      col = oldColourScheme.findColour(aa, -1, null);\r
+    }catch(Exception ex){}\r
+\r
+    button.setBackground(  col );\r
+    oldColours.addElement( col );\r
     button.setText( label );\r
+    button.setForeground( col.darker().darker().darker() );\r
     button.setFont(new java.awt.Font("Verdana", 1, 10));\r
     button.addMouseListener(new java.awt.event.MouseAdapter()\r
     {\r
@@ -88,46 +112,59 @@ public class UserDefinedColours extends GUserDefinedColours implements ChangeLis
 \r
     ucs.setThreshold(0);\r
     ucs.setColourScheme( newColours );\r
-    av.setGlobalColourScheme( ucs );\r
+\r
+    if(seqGroup!=null)\r
+      seqGroup.cs = ucs;\r
+    else\r
+      ap.av.setGlobalColourScheme(ucs);\r
+\r
+    ap.RefreshPanels();\r
   }\r
 \r
   protected void loadbutton_actionPerformed(ActionEvent e)\r
   {\r
-    JFileChooser chooser = new JFileChooser(jalview.bin.Cache.LAST_DIRECTORY);\r
+    JFileChooser chooser = new JFileChooser(jalview.bin.Cache.getProperty("LAST_DIRECTORY"));\r
+    chooser.setFileView(new jalview.io.JalviewFileView());\r
     chooser.setDialogTitle("Load colour scheme");\r
     chooser.setToolTipText("Load");\r
     int value = chooser.showOpenDialog(this);\r
     if (value == JFileChooser.APPROVE_OPTION)\r
     {\r
       String choice = chooser.getSelectedFile().getPath();\r
-      jalview.bin.Cache.LAST_DIRECTORY = choice;\r
+      jalview.bin.Cache.setProperty("LAST_DIRECTORY",  choice);\r
+      loadColour(choice);\r
+    }\r
 \r
-      try{\r
-        BufferedReader in = new BufferedReader(new FileReader(choice));\r
-        for(int i=0; i<24; i++)\r
-        {\r
-          JButton button = (JButton)buttonPanel.getComponent(i);\r
-          Color c = new Color(Integer.parseInt(in.readLine()));\r
-          button.setBackground(c);\r
-        }\r
+  }\r
 \r
+  void loadColour(String file)\r
+  {\r
+    try\r
+    {\r
+      BufferedReader in = new BufferedReader(new FileReader(file));\r
+      for (int i = 0; i < 24; i++)\r
+      {\r
+        JButton button = (JButton) buttonPanel.getComponent(i);\r
+        Color c = new Color(Integer.parseInt(in.readLine()));\r
+        button.setBackground(c);\r
       }\r
-      catch(Exception ex)\r
-      {}\r
     }\r
+    catch (Exception ex)\r
+    {}\r
 \r
   }\r
 \r
   protected void savebutton_actionPerformed(ActionEvent e)\r
   {\r
-    JFileChooser chooser = new JFileChooser(jalview.bin.Cache.LAST_DIRECTORY);\r
+    JFileChooser chooser = new JFileChooser(jalview.bin.Cache.getProperty("LAST_DIRECTORY"));\r
+    chooser.setFileView(new jalview.io.JalviewFileView());\r
     chooser.setDialogTitle("Save colour scheme");\r
     chooser.setToolTipText("Save");\r
     int value = chooser.showSaveDialog(this);\r
     if (value == JFileChooser.APPROVE_OPTION)\r
     {\r
       String choice = chooser.getSelectedFile().getPath();\r
-      jalview.bin.Cache.LAST_DIRECTORY = choice;\r
+      jalview.bin.Cache.setProperty("USER_DEFINED_COLOUR", choice);\r
 \r
       try{\r
         PrintWriter out = new PrintWriter(new FileWriter(choice));\r
@@ -156,7 +193,12 @@ public class UserDefinedColours extends GUserDefinedColours implements ChangeLis
     }\r
 \r
     ucs.setColourScheme( newColours );\r
-    av.setGlobalColourScheme( ucs );\r
+    if (seqGroup != null)\r
+      seqGroup.cs = ucs;\r
+    else\r
+      ap.av.setGlobalColourScheme(ucs);\r
+\r
+    ap.RefreshPanels();\r
 \r
   }\r
 \r