3 import jalview.jbgui.GUserDefinedColours;
\r
4 import javax.swing.*;
\r
6 import java.awt.event.*;
\r
7 import javax.swing.event.*;
\r
8 import jalview.schemes.*;
\r
13 public class UserDefinedColours extends GUserDefinedColours implements ChangeListener
\r
17 ColourSchemeI colourScheme;
\r
18 JButton selectedButton;
\r
19 Vector oldColours = new Vector();
\r
20 JInternalFrame frame;
\r
22 public UserDefinedColours(JInternalFrame f, SeqPanel sp)
\r
25 colorChooser.getSelectionModel().addChangeListener(this);
\r
28 colourScheme = seqPanel.getColourScheme();
\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 button.setBackground( colourScheme.findColour(null,aa,-1,null) );
\r
57 oldColours.addElement( colourScheme.findColour(null,aa,-1,null) );
\r
58 button.setText( label );
\r
59 button.setFont(new java.awt.Font("Verdana", 1, 10));
\r
60 button.addMouseListener(new java.awt.event.MouseAdapter()
\r
62 public void mouseClicked(MouseEvent e)
\r
64 colourButtonPressed(e);
\r
68 buttonPanel.add(button);
\r
72 protected void okButton_actionPerformed(ActionEvent e)
\r
74 applyButton_actionPerformed(null);
\r
76 frame.setClosed(true);
\r
77 }catch(Exception ex){}
\r
80 protected void applyButton_actionPerformed(ActionEvent e)
\r
82 UserColourScheme ucs = new UserColourScheme();
\r
83 Color [] newColours = new Color[24];
\r
84 for(int i=0; i<24; i++)
\r
86 JButton button = (JButton)buttonPanel.getComponent(i);
\r
87 newColours[i] = button.getBackground();
\r
90 ucs.setThreshold(0);
\r
91 ucs.setColourScheme( newColours );
\r
92 seqPanel.setColourScheme( ucs );
\r
95 protected void loadbutton_actionPerformed(ActionEvent e)
\r
97 JFileChooser chooser = new JFileChooser(jalview.bin.Cache.LAST_DIRECTORY);
\r
98 chooser.setDialogTitle("Load colour scheme");
\r
99 chooser.setToolTipText("Load");
\r
100 int value = chooser.showOpenDialog(this);
\r
101 if (value == JFileChooser.APPROVE_OPTION)
\r
103 String choice = chooser.getSelectedFile().getPath();
\r
104 jalview.bin.Cache.LAST_DIRECTORY = choice;
\r
107 BufferedReader in = new BufferedReader(new FileReader(choice));
\r
108 for(int i=0; i<24; i++)
\r
110 JButton button = (JButton)buttonPanel.getComponent(i);
\r
111 Color c = new Color(Integer.parseInt(in.readLine()));
\r
112 button.setBackground(c);
\r
116 catch(Exception ex)
\r
122 protected void savebutton_actionPerformed(ActionEvent e)
\r
124 JFileChooser chooser = new JFileChooser(jalview.bin.Cache.LAST_DIRECTORY);
\r
125 chooser.setDialogTitle("Save colour scheme");
\r
126 chooser.setToolTipText("Save");
\r
127 int value = chooser.showSaveDialog(this);
\r
128 if (value == JFileChooser.APPROVE_OPTION)
\r
130 String choice = chooser.getSelectedFile().getPath();
\r
131 jalview.bin.Cache.LAST_DIRECTORY = choice;
\r
134 PrintWriter out = new PrintWriter(new FileWriter(choice));
\r
135 for(int i=0; i<24; i++)
\r
137 JButton button = (JButton)buttonPanel.getComponent(i);
\r
138 out.println(button.getBackground().getRGB() + "");
\r
143 catch(Exception ex)
\r
144 {ex.printStackTrace();}
\r
149 protected void cancelButton_actionPerformed(ActionEvent e)
\r
151 UserColourScheme ucs = new UserColourScheme();
\r
152 Color [] newColours = new Color[24];
\r
153 for(int i=0; i<24; i++)
\r
155 newColours[i] = (Color)oldColours.elementAt(i);
\r
156 buttonPanel.getComponent(i).setBackground(newColours[i]);
\r
159 ucs.setColourScheme( newColours );
\r
160 seqPanel.setColourScheme( ucs );
\r