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.setForeground( col.darker().darker().darker() );
\r
70 button.setFont(new java.awt.Font("Verdana", 1, 10));
\r
71 button.addMouseListener(new java.awt.event.MouseAdapter()
\r
73 public void mouseClicked(MouseEvent e)
\r
75 colourButtonPressed(e);
\r
79 buttonPanel.add(button);
\r
83 protected void okButton_actionPerformed(ActionEvent e)
\r
85 applyButton_actionPerformed(null);
\r
87 frame.setClosed(true);
\r
88 }catch(Exception ex){}
\r
91 protected void applyButton_actionPerformed(ActionEvent e)
\r
93 UserColourScheme ucs = new UserColourScheme();
\r
94 Color [] newColours = new Color[24];
\r
95 for(int i=0; i<24; i++)
\r
97 JButton button = (JButton)buttonPanel.getComponent(i);
\r
98 newColours[i] = button.getBackground();
\r
101 ucs.setThreshold(0);
\r
102 ucs.setColourScheme( newColours );
\r
107 ap.av.setGlobalColourScheme(ucs);
\r
109 ap.RefreshPanels();
\r
112 protected void loadbutton_actionPerformed(ActionEvent e)
\r
114 JFileChooser chooser = new JFileChooser(jalview.bin.Cache.LAST_DIRECTORY);
\r
115 chooser.setDialogTitle("Load colour scheme");
\r
116 chooser.setToolTipText("Load");
\r
117 int value = chooser.showOpenDialog(this);
\r
118 if (value == JFileChooser.APPROVE_OPTION)
\r
120 String choice = chooser.getSelectedFile().getPath();
\r
121 jalview.bin.Cache.LAST_DIRECTORY = choice;
\r
124 BufferedReader in = new BufferedReader(new FileReader(choice));
\r
125 for(int i=0; i<24; i++)
\r
127 JButton button = (JButton)buttonPanel.getComponent(i);
\r
128 Color c = new Color(Integer.parseInt(in.readLine()));
\r
129 button.setBackground(c);
\r
133 catch(Exception ex)
\r
139 protected void savebutton_actionPerformed(ActionEvent e)
\r
141 JFileChooser chooser = new JFileChooser(jalview.bin.Cache.LAST_DIRECTORY);
\r
142 chooser.setDialogTitle("Save colour scheme");
\r
143 chooser.setToolTipText("Save");
\r
144 int value = chooser.showSaveDialog(this);
\r
145 if (value == JFileChooser.APPROVE_OPTION)
\r
147 String choice = chooser.getSelectedFile().getPath();
\r
148 jalview.bin.Cache.LAST_DIRECTORY = choice;
\r
151 PrintWriter out = new PrintWriter(new FileWriter(choice));
\r
152 for(int i=0; i<24; i++)
\r
154 JButton button = (JButton)buttonPanel.getComponent(i);
\r
155 out.println(button.getBackground().getRGB() + "");
\r
160 catch(Exception ex)
\r
161 {ex.printStackTrace();}
\r
166 protected void cancelButton_actionPerformed(ActionEvent e)
\r
168 UserColourScheme ucs = new UserColourScheme();
\r
169 Color [] newColours = new Color[24];
\r
170 for(int i=0; i<24; i++)
\r
172 newColours[i] = (Color)oldColours.elementAt(i);
\r
173 buttonPanel.getComponent(i).setBackground(newColours[i]);
\r
176 ucs.setColourScheme( newColours );
\r
177 if (seqGroup != null)
\r
180 ap.av.setGlobalColourScheme(ucs);
\r
182 ap.RefreshPanels();
\r