*/
package jalview.appletgui;
+import jalview.api.FeatureColourI;
import jalview.api.FeatureSettingsControllerI;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.SequenceFeature;
-import jalview.schemes.AnnotationColourGradient;
-import jalview.schemes.GraduatedColor;
import jalview.util.MessageManager;
import java.awt.BorderLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Enumeration;
-import java.util.Hashtable;
import java.util.List;
+import java.util.Map;
import java.util.Vector;
public class FeatureSettings extends Panel implements ItemListener,
final FeatureSettings me = this;
frame.addWindowListener(new WindowAdapter()
{
+ @Override
public void windowClosing(WindowEvent e)
{
if (me.av.featureSettings == me)
width, height);
}
+ @Override
public void paint(Graphics g)
{
g.setColor(Color.black);
60);
}
- protected void popupSort(final MyCheckbox check, final Hashtable minmax,
+ protected void popupSort(final MyCheckbox check,
+ final Map<String, float[][]> minmax,
int x, int y)
{
final String type = check.type;
- final Object typeCol = fr.getFeatureStyle(type);
- java.awt.PopupMenu men = new PopupMenu(MessageManager.formatMessage(
+ final FeatureColourI typeCol = fr.getFeatureStyle(type);
+ PopupMenu men = new PopupMenu(MessageManager.formatMessage(
"label.settings_for_type", new String[] { type }));
- java.awt.MenuItem scr = new MenuItem(
+ MenuItem scr = new MenuItem(
MessageManager.getString("label.sort_by_score"));
men.add(scr);
final FeatureSettings me = this;
scr.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
me.ap.alignFrame.avc
dens.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
me.ap.alignFrame.avc
men.add(dens);
if (minmax != null)
{
- final Object typeMinMax = minmax.get(type);
+ final float[][] typeMinMax = minmax.get(type);
/*
* final java.awt.CheckboxMenuItem chb = new
* java.awt.CheckboxMenuItem("Vary Height"); // this is broken at the
*
* }); men.add(chb);
*/
- if (typeMinMax != null && ((float[][]) typeMinMax)[0] != null)
+ if (typeMinMax != null && typeMinMax[0] != null)
{
// graduated colourschemes for those where minmax exists for the
// positional features
MenuItem mxcol = new MenuItem(
- (typeCol instanceof Color) ? "Graduated Colour"
+ (typeCol.isSimpleColour()) ? "Graduated Colour"
: "Single Colour");
men.add(mxcol);
mxcol.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent e)
{
- if (typeCol instanceof Color)
+ if (typeCol.isSimpleColour())
{
new FeatureColourChooser(me, type);
// write back the current colour object to update the table
}
else
{
- new UserDefinedColours(me, check.type,
- ((GraduatedColor) typeCol));
+ new UserDefinedColours(me, check.type, typeCol);
}
}
{
SequenceFeature[] tmpfeatures;
String group = null, type;
- Vector visibleChecks = new Vector();
+ Vector<String> visibleChecks = new Vector<String>();
AlignmentI alignment = av.getAlignment();
for (int i = 0; i < alignment.getHeight(); i++)
{
// now add checkboxes which should be visible,
// if they have not already been added
- Enumeration en = visibleChecks.elements();
+ Enumeration<String> en = visibleChecks.elements();
while (en.hasMoreElements())
{
}
}
+ @Override
public void actionPerformed(ActionEvent evt)
{
for (int i = 0; i < featurePanel.getComponentCount(); i++)
private ItemListener groupItemListener = new ItemListener()
{
+ @Override
public void itemStateChanged(ItemEvent evt)
{
Checkbox source = (Checkbox) evt.getSource();
};
};
+ @Override
public void itemStateChanged(ItemEvent evt)
{
selectionChanged();
boolean dragging = false;
+ @Override
public void mousePressed(MouseEvent evt)
{
}
+ @Override
public void mouseDragged(MouseEvent evt)
{
if (((Component) evt.getSource()).getParent() != featurePanel)
dragging = true;
}
+ @Override
public void mouseReleased(MouseEvent evt)
{
if (((Component) evt.getSource()).getParent() != featurePanel)
}
}
- public void setUserColour(String feature, Object originalColour)
+ public void setUserColour(String feature, FeatureColourI originalColour)
{
- if (originalColour instanceof Color
- || originalColour instanceof GraduatedColor)
- {
- fr.setColour(feature, originalColour);
- }
- else
- {
- throw new Error(
- MessageManager
- .getString("error.implementation_error_unsupported_feature_colour_object"));
- }
+ fr.setColour(feature, originalColour);
refreshTable();
}
ap.paintAlignment(true);
}
+ @Override
public void mouseEntered(MouseEvent evt)
{
}
+ @Override
public void mouseExited(MouseEvent evt)
{
}
+ @Override
public void mouseClicked(MouseEvent evt)
{
MyCheckbox check = (MyCheckbox) evt.getSource();
if (evt.getClickCount() > 1)
{
- Object fcol = fr.getFeatureStyle(check.type);
- if (fcol instanceof Color)
+ FeatureColourI fcol = fr.getFeatureStyle(check.type);
+ if (fcol.isSimpleColour())
{
- new UserDefinedColours(this, check.type, (Color) fcol);
+ new UserDefinedColours(this, check.type, fcol.getColour());
}
else
{
}
}
+ @Override
public void mouseMoved(MouseEvent evt)
{
}
+ @Override
public void adjustmentValueChanged(AdjustmentEvent evt)
{
fr.setTransparency((100 - transparency.getValue()) / 100f);
boolean hasLink;
- GraduatedColor gcol;
-
- Color col;
+ FeatureColourI col;
- public void updateColor(Object newcol)
+ public void updateColor(FeatureColourI newcol)
{
- if (newcol instanceof Color)
+ col = newcol;
+ if (col.isSimpleColour())
{
- col = (Color) newcol;
- gcol = null;
- }
- else if (newcol instanceof GraduatedColor)
- {
- gcol = (GraduatedColor) newcol;
- col = null;
- }
- else
- {
- throw new Error(
- MessageManager
- .getString("error.invalid_colour_for_mycheckbox"));
- }
- if (col != null)
- {
- setBackground(col);
+ setBackground(col.getColour());
}
else
{
String vlabel = type;
- if (gcol.getThreshType() != AnnotationColourGradient.NO_THRESHOLD)
+ if (col.isAboveThreshold())
+ {
+ vlabel += " (>)";
+ }
+ else if (col.isBelowThreshold())
{
- vlabel += " "
- + ((gcol.getThreshType() == AnnotationColourGradient.ABOVE_THRESHOLD) ? "(>)"
- : "(<)");
+ vlabel += " (<)";
}
- if (gcol.isColourByLabel())
+ if (col.isColourByLabel())
{
setBackground(Color.white);
vlabel += " (by Label)";
}
else
{
- setBackground(gcol.getMinColor());
+ setBackground(col.getMinColour());
}
this.setLabel(vlabel);
}
}
public MyCheckbox(String type, boolean selected, boolean b,
- Object featureStyle)
+ FeatureColourI featureStyle)
{
this(type, selected, b);
updateColor(featureStyle);
}
+ @Override
public void paint(Graphics g)
{
Dimension d = getSize();
- if (gcol != null)
+ if (col.isColourByLabel())
{
- if (gcol.isColourByLabel())
- {
- g.setColor(Color.white);
- g.fillRect(d.width / 2, 0, d.width / 2, d.height);
- /*
- * g.setColor(Color.black); Font f=g.getFont().deriveFont(9);
- * g.setFont(f);
- *
- * // g.setFont(g.getFont().deriveFont( //
- * AffineTransform.getScaleInstance( //
- * width/g.getFontMetrics().stringWidth("Label"), //
- * height/g.getFontMetrics().getHeight()))); g.drawString("Label",
- * width/2, 0);
- */
+ g.setColor(Color.white);
+ g.fillRect(d.width / 2, 0, d.width / 2, d.height);
+ /*
+ * g.setColor(Color.black); Font f=g.getFont().deriveFont(9);
+ * g.setFont(f);
+ *
+ * // g.setFont(g.getFont().deriveFont( //
+ * AffineTransform.getScaleInstance( //
+ * width/g.getFontMetrics().stringWidth("Label"), //
+ * height/g.getFontMetrics().getHeight()))); g.drawString("Label",
+ * width/2, 0);
+ */
- }
- else
- {
- Color maxCol = gcol.getMaxColor();
- g.setColor(maxCol);
- g.fillRect(d.width / 2, 0, d.width / 2, d.height);
+ }
+ else if (col.isGraduatedColour())
+ {
+ Color maxCol = col.getMaxColour();
+ g.setColor(maxCol);
+ g.fillRect(d.width / 2, 0, d.width / 2, d.height);
- }
}
if (hasLink)