-\r
- if (seqGroup != null)\r
- {\r
- frame.setTitle(frame.getTitle() + " (" + seqGroup.getName() + ")");\r
- }\r
-\r
- if (new jalview.util.Platform().isAMac())\r
- {\r
- frame.setSize(760, 370);\r
- }\r
- }\r
-\r
- void resetButtonPanel(boolean caseSensitive)\r
- {\r
- buttonPanel.removeAll();\r
-\r
- if (upperCaseButtons == null)\r
- {\r
- upperCaseButtons = new Vector();\r
- }\r
-\r
- JButton button;\r
- String label;\r
- for (int i = 0; i < 20; i++)\r
- {\r
- if (caseSensitive)\r
- {\r
- label = ResidueProperties.aa[i];\r
- }\r
- else\r
- {\r
- label = ResidueProperties.aa2Triplet.get(ResidueProperties.aa[i])\r
- .toString();\r
- }\r
-\r
- button = makeButton(label, ResidueProperties.aa[i], upperCaseButtons,\r
- i);\r
-\r
- buttonPanel.add(button);\r
- }\r
-\r
- buttonPanel.add(makeButton("B", "B", upperCaseButtons, 20));\r
- buttonPanel.add(makeButton("Z", "Z", upperCaseButtons, 21));\r
- buttonPanel.add(makeButton("X", "X", upperCaseButtons, 22));\r
- buttonPanel.add(makeButton("Gap", "-", upperCaseButtons, 23));\r
-\r
- if (!caseSensitive)\r
- {\r
- gridLayout.setRows(6);\r
- gridLayout.setColumns(4);\r
- }\r
- else\r
- {\r
- gridLayout.setRows(7);\r
- int cols = 7;\r
- gridLayout.setColumns(cols + 1);\r
-\r
- if (lowerCaseButtons == null)\r
- {\r
- lowerCaseButtons = new Vector();\r
- }\r
-\r
- for (int i = 0; i < 20; i++)\r
- {\r
- int row = i / cols + 1;\r
- int index = (row * cols) + i;\r
- button = makeButton(ResidueProperties.aa[i].toLowerCase(),\r
- ResidueProperties.aa[i].toLowerCase(), lowerCaseButtons, i);\r
-\r
- buttonPanel.add(button, index);\r
- }\r
- }\r
-\r
- if (caseSensitive)\r
- {\r
- buttonPanel.add(makeButton("b", "b", lowerCaseButtons, 20));\r
- buttonPanel.add(makeButton("z", "z", lowerCaseButtons, 21));\r
- buttonPanel.add(makeButton("x", "x", lowerCaseButtons, 22));\r
- }\r
-\r
- buttonPanel.validate();\r
- validate();\r
- }\r
-\r
- /**\r
- * DOCUMENT ME!\r
- * \r
- * @param evt\r
- * DOCUMENT ME!\r
- */\r
- public void stateChanged(ChangeEvent evt)\r
- {\r
- if (selectedButtons != null)\r
- {\r
- JButton button = null;\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()\r
- .brighter());\r
- }\r
- if (button == lcaseColour)\r
- {\r
- for (int i = 0; i < lowerCaseButtons.size(); i++)\r
- {\r
- button = (JButton) lowerCaseButtons.elementAt(i);\r
- button.setBackground(colorChooser.getColor());\r
- button.setForeground(button.getBackground().brighter().brighter()\r
- .brighter());\r
- }\r
- }\r
- }\r
- }\r
-\r
- /**\r
- * DOCUMENT ME!\r
- * \r
- * @param e\r
- * DOCUMENT ME!\r
- */\r
- public void colourButtonPressed(MouseEvent e)\r
- {\r
- if (selectedButtons == null)\r
- {\r
- selectedButtons = new Vector();\r
- }\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
- {\r
- start = (JButton) selectedButtons\r
- .elementAt(selectedButtons.size() - 1);\r
- }\r
- else\r
- {\r
- start = (JButton) e.getSource();\r
- }\r
-\r
- int startIndex = 0, endIndex = 0;\r
- for (int b = 0; b < buttonPanel.getComponentCount(); b++)\r
- {\r
- if (buttonPanel.getComponent(b) == start)\r
- {\r
- startIndex = b;\r
- }\r
- if (buttonPanel.getComponent(b) == end)\r
- {\r
- endIndex = b;\r
- }\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
-\r
- }\r
- else if (e.isControlDown())\r
- {\r
- if (selectedButtons.contains(pressed))\r
- {\r
- pressed.setForeground(pressed.getBackground().darker().darker());\r
- selectedButtons.remove(pressed);\r
- }\r
- else\r
- {\r
- pressed.setForeground(pressed.getBackground().brighter().brighter());\r
- selectedButtons.addElement(pressed);\r
- }\r
- }\r
-\r
- if (selectedButtons.size() > 0)\r
- {\r
- colorChooser.setColor(((JButton) selectedButtons.elementAt(0))\r
- .getBackground());\r
- }\r
- }\r
-\r
- /**\r
- * DOCUMENT ME!\r
- * \r
- * @param label\r
- * DOCUMENT ME!\r
- * @param aa\r
- * DOCUMENT ME!\r
- */\r
- JButton makeButton(String label, String aa, Vector caseSensitiveButtons,\r
- int buttonIndex)\r
- {\r
- final JButton button;\r
- Color col;\r
-\r
- if (buttonIndex < caseSensitiveButtons.size())\r
- {\r
- button = (JButton) caseSensitiveButtons.elementAt(buttonIndex);\r
- col = button.getBackground();\r
- }\r
- else\r
- {\r
- button = new JButton();\r
- button.addMouseListener(new java.awt.event.MouseAdapter()\r
- {\r
- public void mouseClicked(MouseEvent e)\r
- {\r
- colourButtonPressed(e);\r
- }\r
- });\r
-\r
- caseSensitiveButtons.addElement(button);\r
-\r
- col = Color.white;\r
- if (oldColourScheme != null)\r
- {\r
- try\r
- {\r
- col = oldColourScheme.findColour(aa.charAt(0), -1, null);\r
- } catch (Exception ex)\r
- {\r
- }\r
- }\r
- }\r
-\r
- if (caseSensitive.isSelected())\r
- {\r
- button.setMargin(new java.awt.Insets(2, 2, 2, 2));\r
- }\r
- else\r
- {\r
- button.setMargin(new java.awt.Insets(2, 14, 2, 14));\r
- }\r
-\r
- button.setBackground(col);\r
- button.setText(label);\r
- button.setForeground(col.darker().darker().darker());\r
- button.setFont(new java.awt.Font("Verdana", Font.BOLD, 10));\r
-\r
- return button;\r
- }\r
-\r
- /**\r
- * DOCUMENT ME!\r
- * \r
- * @param e\r
- * DOCUMENT ME!\r
- */\r
- protected void okButton_actionPerformed(ActionEvent e)\r
- {\r
- applyButton_actionPerformed(null);\r
-\r
- try\r
- {\r
- frame.setClosed(true);\r
- } catch (Exception ex)\r
- {\r
- }\r
- }\r
-\r
- /**\r
- * DOCUMENT ME!\r
- * \r
- * @param e\r
- * DOCUMENT ME!\r
- */\r
- protected void applyButton_actionPerformed(ActionEvent e)\r
- {\r
- UserColourScheme ucs = getSchemeFromButtons();\r
- ucs.setName(schemeName.getText());\r
-\r
- if (seqGroup != null)\r
- {\r
- seqGroup.cs = ucs;\r
- ap.paintAlignment(true);\r
- }\r
- else if (ap != null)\r
- {\r
- ap.alignFrame.changeColour(ucs);\r
- }\r
- else if (jmol != null)\r
- {\r
- jmol.setJalviewColourScheme(ucs);\r
- }\r
- }\r
-\r
- UserColourScheme getSchemeFromButtons()\r
- {\r
-\r
- Color[] newColours = new Color[24];\r
-\r
- for (int i = 0; i < 24; i++)\r
- {\r
- JButton button = (JButton) upperCaseButtons.elementAt(i);\r
- newColours[i] = button.getBackground();\r
- }\r
-\r
- UserColourScheme ucs = new UserColourScheme(newColours);\r
-\r
- if (caseSensitive.isSelected())\r
- {\r
- newColours = new Color[23];\r
- for (int i = 0; i < 23; i++)\r
- {\r
- JButton button = (JButton) lowerCaseButtons.elementAt(i);\r
- newColours[i] = button.getBackground();\r
- }\r
- ucs.setLowerCaseColours(newColours);\r
- }\r
-\r
- if (ap != null)\r
- {\r
- ucs.setThreshold(0, ap.av.getIgnoreGapsConsensus());\r
- }\r
-\r
- return ucs;\r
- }\r
-\r
- /**\r
- * DOCUMENT ME!\r
- * \r
- * @param e\r
- * DOCUMENT ME!\r
- */\r
- protected void loadbutton_actionPerformed(ActionEvent e)\r
- {\r
- upperCaseButtons = new Vector();\r
- lowerCaseButtons = new Vector();\r
-\r
- JalviewFileChooser chooser = new JalviewFileChooser(\r
- jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[]\r
- { "jc" }, new String[]\r
- { "Jalview User Colours" }, "Jalview User Colours");\r
- chooser.setFileView(new jalview.io.JalviewFileView());\r
+
+ if (seqGroup != null)
+ {
+ frame.setTitle(frame.getTitle() + " (" + seqGroup.getName() + ")");
+ }
+
+ if (new jalview.util.Platform().isAMac())
+ {
+ frame.setSize(760, 370);
+ }
+ }
+
+ void resetButtonPanel(boolean caseSensitive)
+ {
+ buttonPanel.removeAll();
+
+ if (upperCaseButtons == null)
+ {
+ upperCaseButtons = new Vector();
+ }
+
+ JButton button;
+ String label;
+ for (int i = 0; i < 20; i++)
+ {
+ if (caseSensitive)
+ {
+ label = ResidueProperties.aa[i];
+ }
+ else
+ {
+ label = ResidueProperties.aa2Triplet.get(ResidueProperties.aa[i])
+ .toString();
+ }
+
+ button = makeButton(label, ResidueProperties.aa[i], upperCaseButtons,
+ i);
+
+ buttonPanel.add(button);
+ }
+
+ buttonPanel.add(makeButton("B", "B", upperCaseButtons, 20));
+ buttonPanel.add(makeButton("Z", "Z", upperCaseButtons, 21));
+ buttonPanel.add(makeButton("X", "X", upperCaseButtons, 22));
+ buttonPanel.add(makeButton("Gap", "-", upperCaseButtons, 23));
+
+ if (!caseSensitive)
+ {
+ gridLayout.setRows(6);
+ gridLayout.setColumns(4);
+ }
+ else
+ {
+ gridLayout.setRows(7);
+ int cols = 7;
+ gridLayout.setColumns(cols + 1);
+
+ if (lowerCaseButtons == null)
+ {
+ lowerCaseButtons = new Vector();
+ }
+
+ for (int i = 0; i < 20; i++)
+ {
+ int row = i / cols + 1;
+ int index = (row * cols) + i;
+ button = makeButton(ResidueProperties.aa[i].toLowerCase(),
+ ResidueProperties.aa[i].toLowerCase(), lowerCaseButtons, i);
+
+ buttonPanel.add(button, index);
+ }
+ }
+
+ if (caseSensitive)
+ {
+ buttonPanel.add(makeButton("b", "b", lowerCaseButtons, 20));
+ buttonPanel.add(makeButton("z", "z", lowerCaseButtons, 21));
+ buttonPanel.add(makeButton("x", "x", lowerCaseButtons, 22));
+ }
+
+ buttonPanel.validate();
+ validate();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param evt
+ * DOCUMENT ME!
+ */
+ public void stateChanged(ChangeEvent evt)
+ {
+ if (selectedButtons != null)
+ {
+ JButton button = null;
+ for (int i = 0; i < selectedButtons.size(); i++)
+ {
+ button = (JButton) selectedButtons.elementAt(i);
+ button.setBackground(colorChooser.getColor());
+ button.setForeground(button.getBackground().brighter().brighter()
+ .brighter());
+ }
+ if (button == lcaseColour)
+ {
+ for (int i = 0; i < lowerCaseButtons.size(); i++)
+ {
+ button = (JButton) lowerCaseButtons.elementAt(i);
+ button.setBackground(colorChooser.getColor());
+ button.setForeground(button.getBackground().brighter().brighter()
+ .brighter());
+ }
+ }
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param e
+ * DOCUMENT ME!
+ */
+ public void colourButtonPressed(MouseEvent e)
+ {
+ if (selectedButtons == null)
+ {
+ selectedButtons = new Vector();
+ }
+
+ JButton pressed = (JButton) e.getSource();
+
+ if (e.isShiftDown())
+ {
+ JButton start, end = (JButton) e.getSource();
+ if (selectedButtons.size() > 0)
+ {
+ start = (JButton) selectedButtons
+ .elementAt(selectedButtons.size() - 1);
+ }
+ else
+ {
+ start = (JButton) e.getSource();
+ }
+
+ int startIndex = 0, endIndex = 0;
+ for (int b = 0; b < buttonPanel.getComponentCount(); b++)
+ {
+ if (buttonPanel.getComponent(b) == start)
+ {
+ startIndex = b;
+ }
+ if (buttonPanel.getComponent(b) == end)
+ {
+ endIndex = b;
+ }
+ }
+
+ if (startIndex > endIndex)
+ {
+ int temp = startIndex;
+ startIndex = endIndex;
+ endIndex = temp;
+ }
+
+ for (int b = startIndex; b <= endIndex; b++)
+ {
+ JButton button = (JButton) buttonPanel.getComponent(b);
+ if (!selectedButtons.contains(button))
+ {
+ button.setForeground(button.getBackground().brighter().brighter());
+ selectedButtons.add(button);
+ }
+ }
+ }
+ else if (!e.isControlDown())
+ {
+ for (int b = 0; b < selectedButtons.size(); b++)
+ {
+ JButton button = (JButton) selectedButtons.elementAt(b);
+ button.setForeground(button.getBackground().darker().darker());
+ }
+ selectedButtons.clear();
+ pressed.setForeground(pressed.getBackground().brighter().brighter());
+ selectedButtons.addElement(pressed);
+
+ }
+ else if (e.isControlDown())
+ {
+ if (selectedButtons.contains(pressed))
+ {
+ pressed.setForeground(pressed.getBackground().darker().darker());
+ selectedButtons.remove(pressed);
+ }
+ else
+ {
+ pressed.setForeground(pressed.getBackground().brighter().brighter());
+ selectedButtons.addElement(pressed);
+ }
+ }
+
+ if (selectedButtons.size() > 0)
+ {
+ colorChooser.setColor(((JButton) selectedButtons.elementAt(0))
+ .getBackground());
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param label
+ * DOCUMENT ME!
+ * @param aa
+ * DOCUMENT ME!
+ */
+ JButton makeButton(String label, String aa, Vector caseSensitiveButtons,
+ int buttonIndex)
+ {
+ final JButton button;
+ Color col;
+
+ if (buttonIndex < caseSensitiveButtons.size())
+ {
+ button = (JButton) caseSensitiveButtons.elementAt(buttonIndex);
+ col = button.getBackground();
+ }
+ else
+ {
+ button = new JButton();
+ button.addMouseListener(new java.awt.event.MouseAdapter()
+ {
+ public void mouseClicked(MouseEvent e)
+ {
+ colourButtonPressed(e);
+ }
+ });
+
+ caseSensitiveButtons.addElement(button);
+
+ col = Color.white;
+ if (oldColourScheme != null)
+ {
+ try
+ {
+ col = oldColourScheme.findColour(aa.charAt(0), -1, null);
+ } catch (Exception ex)
+ {
+ }
+ }
+ }
+
+ if (caseSensitive.isSelected())
+ {
+ button.setMargin(new java.awt.Insets(2, 2, 2, 2));
+ }
+ else
+ {
+ button.setMargin(new java.awt.Insets(2, 14, 2, 14));
+ }
+
+ button.setBackground(col);
+ button.setText(label);
+ button.setForeground(col.darker().darker().darker());
+ button.setFont(new java.awt.Font("Verdana", Font.BOLD, 10));
+
+ return button;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param e
+ * DOCUMENT ME!
+ */
+ protected void okButton_actionPerformed(ActionEvent e)
+ {
+ applyButton_actionPerformed(null);
+
+ try
+ {
+ frame.setClosed(true);
+ } catch (Exception ex)
+ {
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param e
+ * DOCUMENT ME!
+ */
+ protected void applyButton_actionPerformed(ActionEvent e)
+ {
+ UserColourScheme ucs = getSchemeFromButtons();
+ ucs.setName(schemeName.getText());
+
+ if (seqGroup != null)
+ {
+ seqGroup.cs = ucs;
+ ap.paintAlignment(true);
+ }
+ else if (ap != null)
+ {
+ ap.alignFrame.changeColour(ucs);
+ }
+ else if (jmol != null)
+ {
+ jmol.setJalviewColourScheme(ucs);
+ }
+ }
+
+ UserColourScheme getSchemeFromButtons()
+ {
+
+ Color[] newColours = new Color[24];
+
+ for (int i = 0; i < 24; i++)
+ {
+ JButton button = (JButton) upperCaseButtons.elementAt(i);
+ newColours[i] = button.getBackground();
+ }
+
+ UserColourScheme ucs = new UserColourScheme(newColours);
+
+ if (caseSensitive.isSelected())
+ {
+ newColours = new Color[23];
+ for (int i = 0; i < 23; i++)
+ {
+ JButton button = (JButton) lowerCaseButtons.elementAt(i);
+ newColours[i] = button.getBackground();
+ }
+ ucs.setLowerCaseColours(newColours);
+ }
+
+ if (ap != null)
+ {
+ ucs.setThreshold(0, ap.av.getIgnoreGapsConsensus());
+ }
+
+ return ucs;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param e
+ * DOCUMENT ME!
+ */
+ protected void loadbutton_actionPerformed(ActionEvent e)
+ {
+ upperCaseButtons = new Vector();
+ lowerCaseButtons = new Vector();
+
+ JalviewFileChooser chooser = new JalviewFileChooser(
+ jalview.bin.Cache.getProperty("LAST_DIRECTORY"), new String[]
+ { "jc" }, new String[]
+ { "Jalview User Colours" }, "Jalview User Colours");
+ chooser.setFileView(new jalview.io.JalviewFileView());