X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAnnotationLabels.java;h=fdb3975704379fa3ce0b1aeece782ad0d08c8d83;hb=aec85d6dfc1dd5970a50a53dc9d161635d1e9960;hp=b553f5644c999d949dfb30db5d4332d28bfc32ce;hpb=7ab5d6b0ba5fec1ea4a4239e79c476d841622485;p=jalview.git diff --git a/src/jalview/gui/AnnotationLabels.java b/src/jalview/gui/AnnotationLabels.java index b553f56..fdb3975 100755 --- a/src/jalview/gui/AnnotationLabels.java +++ b/src/jalview/gui/AnnotationLabels.java @@ -43,21 +43,21 @@ import jalview.util.MessageManager; public class AnnotationLabels extends JPanel implements MouseListener, MouseMotionListener, ActionListener { - static String TOGGLE_LABELSCALE = "Scale Label to Column"; + String TOGGLE_LABELSCALE = MessageManager.getString("label.scale_label_to_column"); - static String ADDNEW = "Add New Row"; + String ADDNEW = MessageManager.getString("label.add_new_row"); - static String EDITNAME = "Edit Label/Description"; + String EDITNAME = MessageManager.getString("label.edit_label_description"); - static String HIDE = "Hide This Row"; + String HIDE = MessageManager.getString("label.hide_row"); - static String DELETE = "Delete This Row"; + String DELETE = MessageManager.getString("label.delete_row"); - static String SHOWALL = "Show All Hidden Rows"; + String SHOWALL = MessageManager.getString("label.show_all_hidden_rows"); - static String OUTPUT_TEXT = "Export Annotation"; + String OUTPUT_TEXT = MessageManager.getString("label.export_annotation"); - static String COPYCONS_SEQ = "Copy Consensus Sequence"; + String COPYCONS_SEQ = MessageManager.getString("label.copy_consensus_sequence"); boolean resizePanel = false; @@ -509,17 +509,40 @@ public class AnnotationLabels extends JPanel implements MouseListener, } else if (aa[selectedRow].sequenceRef != null) { - Vector sr = new Vector(); - sr.addElement(aa[selectedRow].sequenceRef); if (evt.getClickCount() == 1) { - ap.seqPanel.ap.idPanel.highlightSearchResults(sr); + ap.seqPanel.ap.idPanel.highlightSearchResults(Arrays + .asList(new SequenceI[] + { aa[selectedRow].sequenceRef })); } else if (evt.getClickCount() >= 2) { ap.seqPanel.ap.idPanel.highlightSearchResults(null); - SequenceGroup sg = new SequenceGroup(); - sg.addSequence(aa[selectedRow].sequenceRef, false); + SequenceGroup sg = ap.av.getSelectionGroup(); + if (sg!=null) + { + // we make a copy rather than edit the current selection if no modifiers pressed + // see Enhancement JAL-1557 + if (!(evt.isControlDown() || evt.isShiftDown())) + { + sg = new SequenceGroup(sg); + sg.clear(); + sg.addSequence(aa[selectedRow].sequenceRef, false); + } else { + if (evt.isControlDown()) + { + sg.addOrRemove(aa[selectedRow].sequenceRef, true); + } else { + // notionally, we should also add intermediate sequences from last added sequence ? + sg.addSequence(aa[selectedRow].sequenceRef, true); + } + } + } else { + sg = new SequenceGroup(); + sg.setStartRes(0); + sg.setEndRes(ap.av.getAlignment().getWidth()-1); + sg.addSequence(aa[selectedRow].sequenceRef, false); + } ap.av.setSelectionGroup(sg); ap.av.sendSelection(); ap.paintAlignment(false);