\r
import jalview.jbgui.GUserDefinedColours;\r
import jalview.datamodel.*;\r
+import jalview.io.*;\r
import javax.swing.*;\r
import java.awt.*;\r
import java.awt.event.*;\r
SequenceGroup seqGroup;\r
JButton selectedButton;\r
Vector oldColours = new Vector();\r
+ ColourSchemeI oldColourScheme;\r
JInternalFrame frame;\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
+ seqGroup = sg;\r
\r
- for(int i=0; i<20; i++)\r
- makeButton(ResidueProperties.aa2Triplet.get( ResidueProperties.aa[i] )+"", ResidueProperties.aa[i]);\r
\r
- makeButton("B","B");\r
- makeButton("Z","Z");\r
- makeButton("X","X");\r
- makeButton("'.','-',' '", "-");\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
+ makeButton("B", "B");\r
+ makeButton("Z", "Z");\r
+ makeButton("X", "X");\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
public void stateChanged(ChangeEvent evt)\r
{\r
final JButton button = new JButton();\r
Color col = Color.white;\r
- ColourSchemeI cs = null;\r
- if(seqGroup!=null)\r
- cs = seqGroup.cs;\r
- else\r
- cs = ap.av.getGlobalColourScheme();\r
\r
- if(cs!=null)\r
- col = cs.findColour( aa, -1, null);\r
+\r
+ try{\r
+ col = oldColourScheme.findColour(aa, -1);\r
+ }catch(Exception ex){}\r
\r
button.setBackground( col );\r
oldColours.addElement( col );\r
}\r
});\r
\r
- buttonPanel.add(button);\r
+ buttonPanel.add(button, null);\r
}\r
\r
\r
\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
newColours[i] = button.getBackground();\r
}\r
\r
+ UserColourScheme ucs = new UserColourScheme();\r
ucs.setThreshold(0);\r
ucs.setColourScheme( newColours );\r
\r
else\r
ap.av.setGlobalColourScheme(ucs);\r
\r
- ap.RefreshPanels();\r
+ ap.repaint();\r
}\r
\r
protected void loadbutton_actionPerformed(ActionEvent e)\r
{\r
- JFileChooser chooser = new JFileChooser(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
+ 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
+ if (value == JalviewFileChooser.APPROVE_OPTION)\r
{\r
- String choice = chooser.getSelectedFile().getPath();\r
- jalview.bin.Cache.setProperty("LAST_DIRECTORY", choice);\r
+ File choice = chooser.getSelectedFile();\r
+ jalview.bin.Cache.setProperty("LAST_DIRECTORY", choice.getParent());\r
+ loadColour(choice.getAbsolutePath());\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
+ 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
- catch(Exception ex)\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
+ {\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
+\r
+ jalview.bin.Cache.setProperty("USER_DEFINED_COLOUR", file);\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.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
int value = chooser.showSaveDialog(this);\r
- if (value == JFileChooser.APPROVE_OPTION)\r
+ if (value == JalviewFileChooser.APPROVE_OPTION)\r
{\r
String choice = chooser.getSelectedFile().getPath();\r
- jalview.bin.Cache.setProperty("LAST_DIRECTORY", choice);\r
+ jalview.bin.Cache.setProperty("USER_DEFINED_COLOUR", choice);\r
\r
try{\r
PrintWriter out = new PrintWriter(new FileWriter(choice));\r
else\r
ap.av.setGlobalColourScheme(ucs);\r
\r
- ap.RefreshPanels();\r
+ ap.repaint();\r
\r
+ try{\r
+ frame.setClosed(true);\r
+ }catch(Exception ex){}\r
}\r
\r
\r