3 import jalview.jbgui.GUserDefinedColours;
\r
4 import jalview.datamodel.*;
\r
5 import javax.swing.*;
\r
7 import java.awt.event.*;
\r
8 import javax.swing.event.*;
\r
9 import jalview.schemes.*;
\r
14 public class UserDefinedColours extends GUserDefinedColours implements ChangeListener
\r
18 SequenceGroup seqGroup;
\r
19 JButton selectedButton;
\r
20 Vector oldColours = new Vector();
\r
21 ColourSchemeI oldColourScheme;
\r
22 JInternalFrame frame;
\r
25 public UserDefinedColours(JInternalFrame f, AlignmentPanel ap, SequenceGroup sg)
\r
28 colorChooser.getSelectionModel().addChangeListener(this);
\r
34 if (seqGroup != null)
\r
35 oldColourScheme = seqGroup.cs;
\r
37 oldColourScheme = ap.av.getGlobalColourScheme();
\r
39 for (int i = 0; i < 20; i++)
\r
40 makeButton(ResidueProperties.aa2Triplet.get(ResidueProperties.aa[i]) +
\r
41 "", ResidueProperties.aa[i]);
\r
43 makeButton("B", "B");
\r
44 makeButton("Z", "Z");
\r
45 makeButton("X", "X");
\r
46 makeButton("'.','-',' '", "-");
\r
48 if(jalview.bin.Cache.getProperty("USER_DEFINED_COLOUR")!=null)
\r
50 loadColour(jalview.bin.Cache.getProperty("USER_DEFINED_COLOUR"));
\r
56 public void stateChanged(ChangeEvent evt)
\r
58 if(selectedButton!=null)
\r
59 selectedButton.setBackground( colorChooser.getColor() );
\r
62 public void colourButtonPressed(MouseEvent e)
\r
64 selectedButton = (JButton)e.getSource();
\r
65 colorChooser.setColor(selectedButton.getBackground());
\r
68 void makeButton(String label, String aa)
\r
70 final JButton button = new JButton();
\r
71 Color col = Color.white;
\r
75 col = oldColourScheme.findColour(aa, -1, null);
\r
76 }catch(Exception ex){}
\r
78 button.setBackground( col );
\r
79 oldColours.addElement( col );
\r
80 button.setText( label );
\r
81 button.setForeground( col.darker().darker().darker() );
\r
82 button.setFont(new java.awt.Font("Verdana", 1, 10));
\r
83 button.addMouseListener(new java.awt.event.MouseAdapter()
\r
85 public void mouseClicked(MouseEvent e)
\r
87 colourButtonPressed(e);
\r
91 buttonPanel.add(button);
\r
95 protected void okButton_actionPerformed(ActionEvent e)
\r
97 applyButton_actionPerformed(null);
\r
99 frame.setClosed(true);
\r
100 }catch(Exception ex){}
\r
103 protected void applyButton_actionPerformed(ActionEvent e)
\r
105 UserColourScheme ucs = new UserColourScheme();
\r
106 Color [] newColours = new Color[24];
\r
107 for(int i=0; i<24; i++)
\r
109 JButton button = (JButton)buttonPanel.getComponent(i);
\r
110 newColours[i] = button.getBackground();
\r
113 ucs.setThreshold(0);
\r
114 ucs.setColourScheme( newColours );
\r
119 ap.av.setGlobalColourScheme(ucs);
\r
121 ap.RefreshPanels();
\r
124 protected void loadbutton_actionPerformed(ActionEvent e)
\r
126 JFileChooser chooser = new JFileChooser(jalview.bin.Cache.getProperty("LAST_DIRECTORY"));
\r
127 chooser.setFileView(new jalview.io.JalviewFileView());
\r
128 chooser.setDialogTitle("Load colour scheme");
\r
129 chooser.setToolTipText("Load");
\r
130 int value = chooser.showOpenDialog(this);
\r
131 if (value == JFileChooser.APPROVE_OPTION)
\r
133 String choice = chooser.getSelectedFile().getPath();
\r
134 jalview.bin.Cache.setProperty("LAST_DIRECTORY", choice);
\r
135 loadColour(choice);
\r
140 void loadColour(String file)
\r
144 BufferedReader in = new BufferedReader(new FileReader(file));
\r
145 for (int i = 0; i < 24; i++)
\r
147 JButton button = (JButton) buttonPanel.getComponent(i);
\r
148 Color c = new Color(Integer.parseInt(in.readLine()));
\r
149 button.setBackground(c);
\r
152 catch (Exception ex)
\r
157 protected void savebutton_actionPerformed(ActionEvent e)
\r
159 JFileChooser chooser = new JFileChooser(jalview.bin.Cache.getProperty("LAST_DIRECTORY"));
\r
160 chooser.setFileView(new jalview.io.JalviewFileView());
\r
161 chooser.setDialogTitle("Save colour scheme");
\r
162 chooser.setToolTipText("Save");
\r
163 int value = chooser.showSaveDialog(this);
\r
164 if (value == JFileChooser.APPROVE_OPTION)
\r
166 String choice = chooser.getSelectedFile().getPath();
\r
167 jalview.bin.Cache.setProperty("USER_DEFINED_COLOUR", choice);
\r
170 PrintWriter out = new PrintWriter(new FileWriter(choice));
\r
171 for(int i=0; i<24; i++)
\r
173 JButton button = (JButton)buttonPanel.getComponent(i);
\r
174 out.println(button.getBackground().getRGB() + "");
\r
179 catch(Exception ex)
\r
180 {ex.printStackTrace();}
\r
185 protected void cancelButton_actionPerformed(ActionEvent e)
\r
187 UserColourScheme ucs = new UserColourScheme();
\r
188 Color [] newColours = new Color[24];
\r
189 for(int i=0; i<24; i++)
\r
191 newColours[i] = (Color)oldColours.elementAt(i);
\r
192 buttonPanel.getComponent(i).setBackground(newColours[i]);
\r
195 ucs.setColourScheme( newColours );
\r
196 if (seqGroup != null)
\r
199 ap.av.setGlobalColourScheme(ucs);
\r
201 ap.RefreshPanels();
\r