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 JInternalFrame frame;
\r
23 public UserDefinedColours(JInternalFrame f, AlignmentPanel ap, SequenceGroup sg)
\r
26 colorChooser.getSelectionModel().addChangeListener(this);
\r
31 for(int i=0; i<20; i++)
\r
32 makeButton(ResidueProperties.aa2Triplet.get( ResidueProperties.aa[i] )+"", ResidueProperties.aa[i]);
\r
34 makeButton("B","B");
\r
35 makeButton("Z","Z");
\r
36 makeButton("X","X");
\r
37 makeButton("'.','-',' '", "-");
\r
41 public void stateChanged(ChangeEvent evt)
\r
43 if(selectedButton!=null)
\r
44 selectedButton.setBackground( colorChooser.getColor() );
\r
47 public void colourButtonPressed(MouseEvent e)
\r
49 selectedButton = (JButton)e.getSource();
\r
50 colorChooser.setColor(selectedButton.getBackground());
\r
53 void makeButton(String label, String aa)
\r
55 final JButton button = new JButton();
\r
56 Color col = Color.white;
\r
57 ColourSchemeI cs = null;
\r
61 cs = ap.av.getGlobalColourScheme();
\r
64 col = cs.findColour( aa, -1, null);
\r
66 button.setBackground( col );
\r
67 oldColours.addElement( col );
\r
68 button.setText( label );
\r
69 button.setFont(new java.awt.Font("Verdana", 1, 10));
\r
70 button.addMouseListener(new java.awt.event.MouseAdapter()
\r
72 public void mouseClicked(MouseEvent e)
\r
74 colourButtonPressed(e);
\r
78 buttonPanel.add(button);
\r
82 protected void okButton_actionPerformed(ActionEvent e)
\r
84 applyButton_actionPerformed(null);
\r
86 frame.setClosed(true);
\r
87 }catch(Exception ex){}
\r
90 protected void applyButton_actionPerformed(ActionEvent e)
\r
92 UserColourScheme ucs = new UserColourScheme();
\r
93 Color [] newColours = new Color[24];
\r
94 for(int i=0; i<24; i++)
\r
96 JButton button = (JButton)buttonPanel.getComponent(i);
\r
97 newColours[i] = button.getBackground();
\r
100 ucs.setThreshold(0);
\r
101 ucs.setColourScheme( newColours );
\r
106 ap.av.setGlobalColourScheme(ucs);
\r
108 ap.RefreshPanels();
\r
111 protected void loadbutton_actionPerformed(ActionEvent e)
\r
113 JFileChooser chooser = new JFileChooser(jalview.bin.Cache.LAST_DIRECTORY);
\r
114 chooser.setDialogTitle("Load colour scheme");
\r
115 chooser.setToolTipText("Load");
\r
116 int value = chooser.showOpenDialog(this);
\r
117 if (value == JFileChooser.APPROVE_OPTION)
\r
119 String choice = chooser.getSelectedFile().getPath();
\r
120 jalview.bin.Cache.LAST_DIRECTORY = choice;
\r
123 BufferedReader in = new BufferedReader(new FileReader(choice));
\r
124 for(int i=0; i<24; i++)
\r
126 JButton button = (JButton)buttonPanel.getComponent(i);
\r
127 Color c = new Color(Integer.parseInt(in.readLine()));
\r
128 button.setBackground(c);
\r
132 catch(Exception ex)
\r
138 protected void savebutton_actionPerformed(ActionEvent e)
\r
140 JFileChooser chooser = new JFileChooser(jalview.bin.Cache.LAST_DIRECTORY);
\r
141 chooser.setDialogTitle("Save colour scheme");
\r
142 chooser.setToolTipText("Save");
\r
143 int value = chooser.showSaveDialog(this);
\r
144 if (value == JFileChooser.APPROVE_OPTION)
\r
146 String choice = chooser.getSelectedFile().getPath();
\r
147 jalview.bin.Cache.LAST_DIRECTORY = choice;
\r
150 PrintWriter out = new PrintWriter(new FileWriter(choice));
\r
151 for(int i=0; i<24; i++)
\r
153 JButton button = (JButton)buttonPanel.getComponent(i);
\r
154 out.println(button.getBackground().getRGB() + "");
\r
159 catch(Exception ex)
\r
160 {ex.printStackTrace();}
\r
165 protected void cancelButton_actionPerformed(ActionEvent e)
\r
167 UserColourScheme ucs = new UserColourScheme();
\r
168 Color [] newColours = new Color[24];
\r
169 for(int i=0; i<24; i++)
\r
171 newColours[i] = (Color)oldColours.elementAt(i);
\r
172 buttonPanel.getComponent(i).setBackground(newColours[i]);
\r
175 ucs.setColourScheme( newColours );
\r
176 if (seqGroup != null)
\r
179 ap.av.setGlobalColourScheme(ucs);
\r
181 ap.RefreshPanels();
\r