/*
- * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1)
- * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
+ * This file is part of Jalview.
*
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
*/
package jalview.appletgui;
-import java.util.*;
-
-import java.awt.*;
-import java.awt.event.*;
-
-import jalview.datamodel.*;
-import jalview.schemes.*;
+import jalview.api.FeatureColourI;
+import jalview.datamodel.SequenceGroup;
+import jalview.schemes.ColourSchemeI;
+import jalview.schemes.FeatureColour;
+import jalview.schemes.ResidueProperties;
+import jalview.schemes.UserColourScheme;
+import jalview.util.MessageManager;
+
+import java.awt.Button;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Container;
+import java.awt.Dialog;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.GridLayout;
+import java.awt.Label;
+import java.awt.Panel;
+import java.awt.Rectangle;
+import java.awt.Scrollbar;
+import java.awt.TextField;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.AdjustmentEvent;
+import java.awt.event.AdjustmentListener;
+import java.awt.event.FocusEvent;
+import java.awt.event.FocusListener;
+import java.awt.event.MouseEvent;
+import java.util.Vector;
public class UserDefinedColours extends Panel implements ActionListener,
- AdjustmentListener
+ AdjustmentListener, FocusListener
{
AlignmentPanel ap;
Button selectedButton;
- Vector oldColours = new Vector();
+ Vector<Color> oldColours = new Vector<Color>();
ColourSchemeI oldColourScheme;
String originalLabel;
- Object originalColour;
+ FeatureColourI originalColour;
int R = 0, G = 0, B = 0;
public UserDefinedColours(FeatureRenderer fr, Frame alignframe)
{
caller = fr;
- originalColour = fr.colourPanel.getBackground();
+ originalColour = new FeatureColour(fr.colourPanel.getBackground());
originalLabel = "Feature Colour";
setForDialog("Select Feature Colour", alignframe);
setTargetColour(fr.colourPanel.getBackground());
*
* @param caller
* - handles events
- * @param col1
+ * @param col
* - original colour
* @param alignframe
* - the parent Frame for the dialog
* @param title
* - window title
*/
- public UserDefinedColours(Component caller, Color col1, Frame alignframe,
+ public UserDefinedColours(Component caller, Color col, Frame alignframe,
String title)
{
this.caller = caller;
- originalColour = col1;
+ originalColour = new FeatureColour(col);
originalLabel = title;
setForDialog(title, alignframe);
- setTargetColour(col1);
+ setTargetColour(col);
dialog.setVisible(true);
}
*/
public UserDefinedColours(Object caller, String label, Color colour)
{
- this(caller, label, colour, colour);
+ this(caller, label, new FeatureColour(colour), colour);
}
/**
* @param graduatedColor
*/
public UserDefinedColours(FeatureSettings me, String type,
- GraduatedColor graduatedColor)
+ FeatureColourI graduatedColor)
{
- this(me, type, graduatedColor, graduatedColor.getMaxColor());
+ this(me, type, graduatedColor, graduatedColor.getMaxColour());
}
- private UserDefinedColours(Object caller, String label, Object ocolour,
- Color colour)
+ private UserDefinedColours(Object caller, String label,
+ FeatureColourI ocolour, Color colour)
{
this.caller = caller;
originalColour = ocolour;
setTargetColour(colour);
okcancelPanel.setBounds(new Rectangle(0, 113, 400, 35));
- frame.setTitle("User Defined Colours - " + label);
+ frame.setTitle(MessageManager.getString("label.user_defined_colours")
+ + " - " + label);
frame.setSize(420, 200);
}
// // not 1.1 compatible!
// dialog = new Dialog(((JVDialog)alignframe), title, true);
// } else {
- throw new Error("Unsupported owner for User Colour scheme dialog.");
+ throw new Error(
+ MessageManager
+ .getString("label.error_unsupported_owwner_user_colour_scheme"));
}
dialog.add(this);
int width = 400;
dialog.setBounds(alignframe.getBounds().x
- + (alignframe.getSize().width - width) / 2, alignframe
- .getBounds().y
- + (alignframe.getSize().height - height) / 2, width, height);
+ + (alignframe.getSize().width - width) / 2,
+ alignframe.getBounds().y
+ + (alignframe.getSize().height - height) / 2, width,
+ height);
}
+ @Override
public void actionPerformed(ActionEvent evt)
{
- if (evt.getSource() == okButton)
+ final Object source = evt.getSource();
+ if (source == okButton)
{
okButton_actionPerformed();
}
- else if (evt.getSource() == applyButton)
+ else if (source == applyButton)
{
applyButton_actionPerformed();
}
- else if (evt.getSource() == cancelButton)
+ else if (source == cancelButton)
{
cancelButton_actionPerformed();
}
- else if (evt.getSource() == rText)
+ else if (source == rText)
{
rText_actionPerformed();
}
- else if (evt.getSource() == gText)
+ else if (source == gText)
{
gText_actionPerformed();
}
- else if (evt.getSource() == bText)
+ else if (source == bText)
{
bText_actionPerformed();
}
}
+ @Override
public void adjustmentValueChanged(AdjustmentEvent evt)
{
if (evt.getSource() == rScroller)
}
frame = new Frame();
frame.add(this);
- jalview.bin.JalviewLite.addFrame(frame, "User defined colours", 420,
+ jalview.bin.JalviewLite.addFrame(frame,
+ MessageManager.getString("label.user_defined_colours"), 420,
345);
if (seqGroup != null)
{
try
{
- col = oldColourScheme.findColour(aa.charAt(0), -1);
+ col = oldColourScheme.findColour(aa.charAt(0), -1, null);
} catch (Exception ex)
{
}
button.setFont(new java.awt.Font("Verdana", 1, 10));
button.addMouseListener(new java.awt.event.MouseAdapter()
{
+ @Override
public void mousePressed(MouseEvent e)
{
colourButtonPressed(e);
{
applyButton_actionPerformed();
if (dialog != null)
+ {
dialog.setVisible(false);
+ }
frame.setVisible(false);
}
{
if (caller instanceof FeatureSettings)
{
- ((FeatureSettings) caller).setUserColour(originalLabel, getColor());
+ ((FeatureSettings) caller).setUserColour(originalLabel,
+ new FeatureColour(getColor()));
}
else if (caller instanceof AnnotationColourChooser)
{
}
else if (caller instanceof FeatureRenderer)
{
- ((FeatureRenderer) caller).colourPanel.updateColor(getColor());
+ ((FeatureRenderer) caller).colourPanel
+ .updateColor(new FeatureColour(getColor()));
}
else if (caller instanceof FeatureColourChooser)
{
UserColourScheme ucs = new UserColourScheme(newColours);
if (ap != null)
{
- ucs.setThreshold(0, ap.av.getIgnoreGapsConsensus());
+ ucs.setThreshold(0, ap.av.isIgnoreGapsConsensus());
}
if (ap != null)
if (originalLabel.equals("Min Colour"))
{
((AnnotationColourChooser) caller)
- .minColour_actionPerformed((Color) originalColour);
+ .minColour_actionPerformed(originalColour.getColour());
}
else
{
((AnnotationColourChooser) caller)
- .maxColour_actionPerformed((Color) originalColour);
+ .maxColour_actionPerformed(originalColour.getColour());
}
}
else if (caller instanceof FeatureRenderer)
if (originalLabel.indexOf("inimum") > -1)
{
((FeatureColourChooser) caller)
- .minColour_actionPerformed((Color) originalColour);
+ .minColour_actionPerformed(originalColour.getColour());
}
else
{
((FeatureColourChooser) caller)
- .maxColour_actionPerformed((Color) originalColour);
+ .maxColour_actionPerformed(originalColour.getColour());
}
}
if (dialog != null)
+ {
dialog.setVisible(false);
+ }
frame.setVisible(false);
return;
Color[] newColours = new Color[24];
for (int i = 0; i < 24; i++)
{
- newColours[i] = (Color) oldColours.elementAt(i);
+ newColours[i] = oldColours.elementAt(i);
buttonPanel.getComponent(i).setBackground(newColours[i]);
}
gridLayout.setColumns(6);
gridLayout.setRows(4);
okButton.setFont(new java.awt.Font("Verdana", 0, 11));
- okButton.setLabel("OK");
+ okButton.setLabel(MessageManager.getString("action.ok"));
okButton.addActionListener(this);
applyButton.setFont(new java.awt.Font("Verdana", 0, 11));
- applyButton.setLabel("Apply");
+ applyButton.setLabel(MessageManager.getString("action.apply"));
applyButton.addActionListener(this);
cancelButton.setFont(new java.awt.Font("Verdana", 0, 11));
- cancelButton.setLabel("Cancel");
+ cancelButton.setLabel(MessageManager.getString("action.cancel"));
cancelButton.addActionListener(this);
this.setBackground(new Color(212, 208, 223));
okcancelPanel.setBounds(new Rectangle(0, 265, 400, 35));
rText.setText("0 ");
rText.setBounds(new Rectangle(156, 27, 53, 19));
rText.addActionListener(this);
+ rText.addFocusListener(this);
label4.setAlignment(Label.RIGHT);
label4.setText("G");
label4.setBounds(new Rectangle(15, 56, 20, 15));
gText.setText("0 ");
gText.setBounds(new Rectangle(156, 52, 53, 20));
gText.addActionListener(this);
+ gText.addFocusListener(this);
label5.setAlignment(Label.RIGHT);
label5.setText("B");
label5.setBounds(new Rectangle(14, 82, 20, 15));
bText.setText("0 ");
bText.setBounds(new Rectangle(157, 78, 52, 20));
bText.addActionListener(this);
+ bText.addFocusListener(this);
target.setBackground(Color.black);
target.setBounds(new Rectangle(229, 26, 134, 79));
this.add(okcancelPanel, null);
okcancelPanel.add(okButton, null);
okcancelPanel.add(applyButton, null);
okcancelPanel.add(cancelButton, null);
+ this.add(rText);
+ this.add(gText);
+ this.add(bText);
this.add(buttonPanel, null);
this.add(target, null);
this.add(gScroller);
this.add(label5);
this.add(label4);
this.add(label1);
- this.add(gText);
- this.add(rText);
- this.add(bText);
+ }
+
+ @Override
+ public void focusGained(FocusEvent e)
+ {
+ // noop
+ }
+
+ /**
+ * This method applies any change to an RGB value if the user tabs out of the
+ * field instead of pressing Enter
+ */
+ @Override
+ public void focusLost(FocusEvent e)
+ {
+ Component c = e.getComponent();
+ if (c == rText)
+ {
+ rText_actionPerformed();
+ }
+ else
+ {
+ if (c == gText)
+ {
+ gText_actionPerformed();
+ }
+ else
+ {
+ if (c == bText)
+ {
+ bText_actionPerformed();
+ }
+ }
+ }
}
}