+ AlignmentPanel ap;\r
+ SequenceGroup seqGroup;\r
+ Vector selectedButtons;\r
+ ColourSchemeI oldColourScheme;\r
+ JInternalFrame frame;\r
+ MCview.PDBCanvas pdbcanvas;\r
+\r
+ /**\r
+ * Creates a new UserDefinedColours object.\r
+ *\r
+ * @param ap DOCUMENT ME!\r
+ * @param sg DOCUMENT ME!\r
+ */\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", 720, 370, true);\r
+\r
+ if (System.getProperty("os.name").startsWith("Mac"))\r
+ {\r
+ frame.setSize(760, 370);\r
+ }\r
+\r
+ if (sg != null)\r
+ {\r
+ frame.setTitle(frame.getTitle() + " (" + sg.getName() + ")");\r
+ }\r
+\r
+ colorChooser.getSelectionModel().addChangeListener(this);\r
+\r
+ this.ap = ap;\r
+ seqGroup = sg;\r
+\r
+ if (seqGroup != null)\r
+ {\r
+ oldColourScheme = seqGroup.cs;\r
+ }\r
+ else\r
+ {\r
+ oldColourScheme = ap.av.getGlobalColourScheme();\r
+ }\r
+\r
+ if (oldColourScheme instanceof UserColourScheme)\r
+ {\r
+ schemeName.setText( ( (UserColourScheme) oldColourScheme).getName());\r
+ }\r
+ for (int i = 0; i < 20; i++)\r
+ {\r
+ makeButton(ResidueProperties.aa2Triplet.get(ResidueProperties.aa[i]) +\r
+ "", ResidueProperties.aa[i]);\r
+ }\r
+\r
+ makeButton("B", "B");\r
+ makeButton("Z", "Z");\r
+ makeButton("X", "X");\r
+ makeButton("Gap", "-");\r
+ }\r
+\r
+ public UserDefinedColours(MCview.PDBCanvas pdb, ColourSchemeI oldcs)\r
+ {\r
+ super();\r
+ frame = new JInternalFrame();\r
+ frame.setContentPane(this);\r
+ Desktop.addInternalFrame(frame, "User Defined Colours", 720, 370, true);\r
+ pdbcanvas = pdb;\r
+\r
+ if (System.getProperty("os.name").startsWith("Mac"))\r
+ {\r
+ frame.setSize(760, 370);\r
+ }\r
+\r
+ colorChooser.getSelectionModel().addChangeListener(this);\r
+\r
+ oldColourScheme = oldcs;\r
+\r
+ if (oldColourScheme instanceof UserColourScheme)\r
+ {\r
+ schemeName.setText( ( (UserColourScheme) oldColourScheme).getName());\r
+ }\r
+ for (int i = 0; i < 20; i++)\r
+ {\r
+ makeButton(ResidueProperties.aa2Triplet.get(ResidueProperties.aa[i]) +\r
+ "", ResidueProperties.aa[i]);\r
+ }\r
+\r
+ makeButton("B", "B");\r
+ makeButton("Z", "Z");\r
+ makeButton("X", "X");\r
+ makeButton("Gap", "-");\r
+ }\r
+\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param evt DOCUMENT ME!\r
+ */\r
+ public void stateChanged(ChangeEvent evt)\r
+ {\r
+ if (selectedButtons != null)\r
+ {\r
+ JButton button;\r
+ for(int i=0; i<selectedButtons.size(); i++)\r
+ {\r
+ button = (JButton)selectedButtons.elementAt(i);\r
+ button.setBackground(colorChooser.getColor());\r
+ button.setForeground( button.getBackground().brighter().brighter().brighter());\r
+ }\r
+ }\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param e DOCUMENT ME!\r
+ */\r
+ public void colourButtonPressed(MouseEvent e)\r
+ {\r
+ if(selectedButtons == null)\r
+ selectedButtons = new Vector();\r
+\r
+ JButton pressed = (JButton) e.getSource();\r
+\r
+ if(e.isShiftDown())\r
+ {\r
+ JButton start, end = (JButton) e.getSource();\r
+ if(selectedButtons.size()>0)\r
+ start = (JButton)selectedButtons.elementAt(selectedButtons.size()-1);\r
+ else\r
+ start = (JButton) e.getSource();\r
+\r
+ int startIndex=0, endIndex=0;\r
+ for(int b=0; b<buttonPanel.getComponentCount(); b++)\r
+ {\r
+ if(buttonPanel.getComponent(b)==start)\r
+ startIndex = b;\r
+ if(buttonPanel.getComponent(b)==end)\r
+ endIndex = b;\r
+ }\r
+\r
+ if(startIndex > endIndex)\r
+ {\r
+ int temp = startIndex;\r
+ startIndex = endIndex;\r
+ endIndex = temp;\r
+ }\r
+\r
+ for(int b=startIndex; b<=endIndex; b++)\r
+ {\r
+ JButton button = (JButton)buttonPanel.getComponent(b);\r
+ if(!selectedButtons.contains(button))\r
+ {\r
+ button.setForeground(button.getBackground().brighter().brighter());\r
+ selectedButtons.add(button);\r
+ }\r
+ }\r
+ }\r
+ else if(!e.isControlDown())\r
+ {\r
+ for(int b=0; b<selectedButtons.size(); b++)\r
+ {\r
+ JButton button = (JButton)selectedButtons.elementAt(b);\r
+ button.setForeground(button.getBackground().darker().darker());\r
+ }\r
+ selectedButtons.clear();\r
+ pressed.setForeground( pressed.getBackground().brighter().brighter());\r
+ selectedButtons.addElement(pressed);\r