X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAnnotationColourChooser.java;h=ec609a7d021a76949b9029734547e0ddd44c0064;hb=c19d2a91ca05e052e3408bf5852d88eb5d0608f1;hp=c9e9ee4859b8cdd7d337fcfc07de9688e321fbf0;hpb=e5ecde79316259cf913da454373e9f5ee7488798;p=jalview.git diff --git a/src/jalview/appletgui/AnnotationColourChooser.java b/src/jalview/appletgui/AnnotationColourChooser.java index c9e9ee4..ec609a7 100644 --- a/src/jalview/appletgui/AnnotationColourChooser.java +++ b/src/jalview/appletgui/AnnotationColourChooser.java @@ -1,31 +1,53 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8) - * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b2) + * Copyright (C) 2015 The Jalview Authors * * This file is part of Jalview. * * 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. + * 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 Jalview. If not, see . + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * 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.datamodel.SequenceGroup; +import jalview.schemes.AnnotationColourGradient; +import jalview.schemes.ColourSchemeI; import jalview.util.MessageManager; +import java.awt.BorderLayout; +import java.awt.Button; +import java.awt.Checkbox; +import java.awt.Choice; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.Font; +import java.awt.Frame; +import java.awt.Panel; +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.ItemEvent; +import java.awt.event.ItemListener; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; +import java.util.Hashtable; +import java.util.Vector; + public class AnnotationColourChooser extends Panel implements ActionListener, AdjustmentListener, ItemListener, MouseListener { @@ -81,28 +103,33 @@ public class AnnotationColourChooser extends Panel implements setDefaultMinMax(); + adjusting = true; if (oldcs instanceof AnnotationColourGradient) { AnnotationColourGradient acg = (AnnotationColourGradient) oldcs; - currentColours.setState(acg.isPredefinedColours()); - if (!acg.isPredefinedColours()) + currentColours.setState(acg.isPredefinedColours() + || acg.getBaseColour() != null); + if (!acg.isPredefinedColours() && acg.getBaseColour() == null) { minColour.setBackground(acg.getMinColour()); maxColour.setBackground(acg.getMaxColour()); } + // seqAssociated.setState(acg.isSeqAssociated()); } - adjusting = true; - Vector list = new Vector(); int index = 1; for (int i = 0; i < av.getAlignment().getAlignmentAnnotation().length; i++) { String label = av.getAlignment().getAlignmentAnnotation()[i].label; if (!list.contains(label)) + { list.addElement(label); + } else + { list.addElement(label + "_" + (index++)); + } } for (int i = 0; i < list.size(); i++) @@ -110,9 +137,12 @@ public class AnnotationColourChooser extends Panel implements annotations.addItem(list.elementAt(i).toString()); } - threshold.addItem("No Threshold"); - threshold.addItem("Above Threshold"); - threshold.addItem("Below Threshold"); + threshold.addItem(MessageManager + .getString("label.threshold_feature_no_thereshold")); + threshold.addItem(MessageManager + .getString("label.threshold_feature_above_thereshold")); + threshold.addItem(MessageManager + .getString("label.threshold_feature_below_thereshold")); if (oldcs instanceof AnnotationColourGradient) { @@ -121,17 +151,18 @@ public class AnnotationColourChooser extends Panel implements switch (acg.getAboveThreshold()) { case AnnotationColourGradient.NO_THRESHOLD: - threshold.select("No Threshold"); + threshold.select(0); break; case AnnotationColourGradient.ABOVE_THRESHOLD: - threshold.select("Above Threshold"); + threshold.select(1); break; case AnnotationColourGradient.BELOW_THRESHOLD: - threshold.select("Below Threshold"); + threshold.select(1); break; default: throw new Error( - "Implementation error: don't know about threshold setting for current AnnotationColourGradient."); + MessageManager + .getString("error.implementation_error_dont_know_thereshold_annotationcolourgradient")); } thresholdIsMin.setState(acg.thresholdIsMinMax); thresholdValue.setText("" + acg.getAnnotationThreshold()); @@ -143,7 +174,8 @@ public class AnnotationColourChooser extends Panel implements frame = new Frame(); frame.add(this); - jalview.bin.JalviewLite.addFrame(frame, MessageManager.getString("label.colour_by_annotation"), 560, + jalview.bin.JalviewLite.addFrame(frame, + MessageManager.getString("label.colour_by_annotation"), 560, 175); validate(); } @@ -198,11 +230,13 @@ public class AnnotationColourChooser extends Panel implements thresholdValue.setEnabled(false); thresholdValue.setColumns(5); currentColours.setFont(new java.awt.Font("Verdana", Font.PLAIN, 11)); - currentColours.setLabel(MessageManager.getString("label.use_original_colours")); + currentColours.setLabel(MessageManager + .getString("label.use_original_colours")); currentColours.addItemListener(this); thresholdIsMin.setBackground(Color.white); - thresholdIsMin.setLabel(MessageManager.getString("label.threshold_minmax")); + thresholdIsMin.setLabel(MessageManager + .getString("label.threshold_minmax")); this.setLayout(borderLayout1); @@ -302,7 +336,6 @@ public class AnnotationColourChooser extends Panel implements } else if (evt.getSource() == ok) { - changeColour(); frame.setVisible(false); } else if (evt.getSource() == cancel) @@ -339,14 +372,14 @@ public class AnnotationColourChooser extends Panel implements { if (!adjusting) { - thresholdValue.setText(((float) slider.getValue() / 1000f) + ""); + thresholdValue.setText((slider.getValue() / 1000f) + ""); if (currentColours.getState() && !(av.getGlobalColourScheme() instanceof AnnotationColourGradient)) { changeColour(); } - currentAnnotation.threshold.value = (float) slider.getValue() / 1000f; + currentAnnotation.threshold.value = slider.getValue() / 1000f; ap.paintAlignment(false); } } @@ -400,11 +433,11 @@ public class AnnotationColourChooser extends Panel implements .getSelectedIndex()]; int aboveThreshold = -1; - if (threshold.getSelectedItem().equals("Above Threshold")) + if (threshold.getSelectedIndex() == 1) { aboveThreshold = AnnotationColourGradient.ABOVE_THRESHOLD; } - else if (threshold.getSelectedItem().equals("Below Threshold")) + else if (threshold.getSelectedIndex() == 2) { aboveThreshold = AnnotationColourGradient.BELOW_THRESHOLD; } @@ -465,6 +498,7 @@ public class AnnotationColourChooser extends Panel implements av.setGlobalColourScheme(acg); + // TODO: per group colour propagation not always desired if (av.getAlignment().getGroups() != null) { for (SequenceGroup sg : ap.av.getAlignment().getGroups()) @@ -491,6 +525,7 @@ public class AnnotationColourChooser extends Panel implements } // update colours in linked windows + ap.alignmentChanged(); ap.paintAlignment(true); }