changes to JalviewFileChooser
[jalview.git] / src / jalview / gui / UserDefinedColours.java
index 25820c9..e0167cf 100755 (executable)
@@ -22,13 +22,21 @@ public class UserDefinedColours extends GUserDefinedColours implements ChangeLis
   ColourSchemeI oldColourScheme;\r
   JInternalFrame frame;\r
 \r
-\r
-  public UserDefinedColours(JInternalFrame f, AlignmentPanel ap, SequenceGroup sg)\r
+  public UserDefinedColours(AlignmentPanel ap, SequenceGroup sg)\r
   {\r
     super();\r
+    frame = new JInternalFrame();\r
+    frame.setContentPane(this);\r
+    Desktop.addInternalFrame(frame, "User defined colours", 450,530, false );\r
+    if(System.getProperty("os.name").startsWith("Mac"))\r
+      frame.setSize(450,560);\r
+\r
+    if(sg!=null)\r
+        frame.setTitle( frame.getTitle()+ " ("+sg.getName()+")");\r
+\r
     colorChooser.getSelectionModel().addChangeListener(this);\r
+\r
     this.ap = ap;\r
-    frame = f;\r
     seqGroup = sg;\r
 \r
 \r
@@ -44,14 +52,12 @@ public class UserDefinedColours extends GUserDefinedColours implements ChangeLis
       makeButton("B", "B");\r
       makeButton("Z", "Z");\r
       makeButton("X", "X");\r
-      makeButton("'.','-',' '", "-");\r
+      makeButton("Gap", "'.','-',' '");\r
 \r
       if(jalview.bin.Cache.getProperty("USER_DEFINED_COLOUR")!=null)\r
       {\r
         loadColour(jalview.bin.Cache.getProperty("USER_DEFINED_COLOUR"));\r
       }\r
-\r
-\r
   }\r
 \r
  public void stateChanged(ChangeEvent evt)\r
@@ -89,7 +95,7 @@ public class UserDefinedColours extends GUserDefinedColours implements ChangeLis
       }\r
     });\r
 \r
-    buttonPanel.add(button);\r
+    buttonPanel.add(button, null);\r
   }\r
 \r
 \r
@@ -103,7 +109,7 @@ public class UserDefinedColours extends GUserDefinedColours implements ChangeLis
 \r
   protected void applyButton_actionPerformed(ActionEvent e)\r
   {\r
-    UserColourScheme ucs = new UserColourScheme();\r
+\r
     Color [] newColours = new Color[24];\r
     for(int i=0; i<24; i++)\r
     {\r
@@ -111,6 +117,7 @@ public class UserDefinedColours extends GUserDefinedColours implements ChangeLis
           newColours[i] = button.getBackground();\r
     }\r
 \r
+    UserColourScheme ucs = new UserColourScheme();\r
     ucs.setThreshold(0);\r
     ucs.setColourScheme( newColours );\r
 \r
@@ -124,19 +131,45 @@ public class UserDefinedColours extends GUserDefinedColours implements ChangeLis
 \r
   protected void loadbutton_actionPerformed(ActionEvent e)\r
   {\r
-    JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache.getProperty("LAST_DIRECTORY"),\r
-        new String[]{".jvuc"}, "Jalview User Colours");\r
+    JalviewFileChooser chooser = new JalviewFileChooser(\r
+      jalview.bin.Cache.getProperty("LAST_DIRECTORY"),\r
+        new String[]{".jc"},\r
+        new String[]{"Jalview User Colours"},\r
+          "Jalview User Colours");\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 == JalviewFileChooser.APPROVE_OPTION)\r
     {\r
-      String choice = chooser.getSelectedFile().getPath();\r
-      jalview.bin.Cache.setProperty("LAST_DIRECTORY",  choice);\r
-      loadColour(choice);\r
+      File choice = chooser.getSelectedFile();\r
+      jalview.bin.Cache.setProperty("LAST_DIRECTORY",  choice.getParent());\r
+      loadColour(choice.getAbsolutePath());\r
+    }\r
+\r
+  }\r
+\r
+  public static UserColourScheme loadDefaultColours(String file)\r
+  {\r
+    UserColourScheme ucs = null;\r
+    try\r
+    {\r
+      BufferedReader in = new BufferedReader(new FileReader(file));\r
+      Color [] newColours = new Color[24];\r
+      for (int i = 0; i < 24; i++)\r
+      {\r
+        newColours[i] = new Color(Integer.parseInt(in.readLine()));\r
+      }\r
+\r
+      ucs = new UserColourScheme();\r
+      ucs.setThreshold(0);\r
+      ucs.setColourScheme(newColours);\r
+\r
     }\r
+    catch (Exception ex)\r
+    {}\r
 \r
+    return ucs;\r
   }\r
 \r
   void loadColour(String file)\r
@@ -150,6 +183,8 @@ public class UserDefinedColours extends GUserDefinedColours implements ChangeLis
         Color c = new Color(Integer.parseInt(in.readLine()));\r
         button.setBackground(c);\r
       }\r
+\r
+      jalview.bin.Cache.setProperty("USER_DEFINED_COLOUR", file);\r
     }\r
     catch (Exception ex)\r
     {}\r
@@ -158,7 +193,12 @@ public class UserDefinedColours extends GUserDefinedColours implements ChangeLis
 \r
   protected void savebutton_actionPerformed(ActionEvent e)\r
   {\r
-    JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache.getProperty("LAST_DIRECTORY"));\r
+    JalviewFileChooser chooser = new JalviewFileChooser(\r
+    jalview.bin.Cache.getProperty("LAST_DIRECTORY"),\r
+    new String[]{".jc"},\r
+    new String[]{"Jalview User Colours"},\r
+      "Jalview User Colours");\r
+\r
     chooser.setFileView(new jalview.io.JalviewFileView());\r
     chooser.setDialogTitle("Save colour scheme");\r
     chooser.setToolTipText("Save");\r
@@ -202,6 +242,9 @@ public class UserDefinedColours extends GUserDefinedColours implements ChangeLis
 \r
     ap.repaint();\r
 \r
+    try{\r
+      frame.setClosed(true);\r
+    }catch(Exception ex){}\r
   }\r
 \r
 \r