X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAlignFrame.java;h=3f0d73667f83e60537de6409005f48182d638d6c;hb=838e4f91d4a53dd315640dbc9ff6ef7a815ee576;hp=3996dee7d549cfd308e1e4da3fefbfc1db5c4162;hpb=4d7f98a6dd54d9863ba449ec79dcd95d25ed863d;p=jalview.git diff --git a/src/jalview/appletgui/AlignFrame.java b/src/jalview/appletgui/AlignFrame.java index 3996dee..3f0d736 100644 --- a/src/jalview/appletgui/AlignFrame.java +++ b/src/jalview/appletgui/AlignFrame.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) - * Copyright (C) $$Year-Rel$$ The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b1) + * Copyright (C) 2015 The Jalview Authors * * This file is part of Jalview. * @@ -75,6 +75,7 @@ import java.awt.BorderLayout; import java.awt.Canvas; import java.awt.CheckboxMenuItem; import java.awt.Color; +import java.awt.FlowLayout; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Frame; @@ -83,6 +84,7 @@ import java.awt.Label; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; +import java.awt.Panel; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.FocusEvent; @@ -232,8 +234,10 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, normSequenceLogo.setState(viewport.isNormaliseSequenceLogo()); applyToAllGroups.setState(viewport.getColourAppliesToAllGroups()); annotationPanelMenuItem.setState(viewport.isShowAnnotation()); - showAlignmentAnnotations.setState(viewport.isShowAnnotation()); - showSequenceAnnotations.setState(viewport.isShowAnnotation()); + showAlignmentAnnotations.setEnabled(annotationPanelMenuItem.getState()); + showSequenceAnnotations.setEnabled(annotationPanelMenuItem.getState()); + showAlignmentAnnotations.setState(true); + showSequenceAnnotations.setState(false); seqLimits.setState(viewport.getShowJVSuffix()); @@ -302,6 +306,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, alignPanel.annotationSpaceFillerHolder.addKeyListener(this); alignPanel.alabels.addKeyListener(this); + setAnnotationsVisibility(); + if (addToDisplay) { addToDisplay(embedded); @@ -812,8 +818,11 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, } else if (source == annotationPanelMenuItem) { - viewport.setShowAnnotation(annotationPanelMenuItem.getState()); - alignPanel.setAnnotationVisible(annotationPanelMenuItem.getState()); + boolean showAnnotations = annotationPanelMenuItem.getState(); + showAlignmentAnnotations.setEnabled(showAnnotations); + showSequenceAnnotations.setEnabled(showAnnotations); + viewport.setShowAnnotation(showAnnotations); + alignPanel.setAnnotationVisible(showAnnotations); } else if (source == sequenceFeatures) { @@ -913,7 +922,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, /** * Set the visibility state of sequence-related and/or alignment-related - * annotations depending on checkbox selections. Repaint after calling. + * annotations depending on checkbox selections, and repaint. * * @param visible */ @@ -1743,9 +1752,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, viewport, complement); complement.getAlignment().moveSelectedSequencesByOne(mappedSelection, up ? null : complement.getHiddenRepSequences(), up); - // TODO need to trigger a repaint of the complementary panel - how? - // would prefer to handle in SplitFrame but it is not overriding key - // listener chiz + getSplitFrame().getComplement(this).alignPanel.paintAlignment(true); } } @@ -2059,9 +2066,32 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, seqs.addElement(seq); } - // If the cut affects all sequences, remove highlighted columns + /* + * If the cut affects all sequences, warn, remove highlighted columns + */ if (sg.getSize() == viewport.getAlignment().getHeight()) { + boolean isEntireAlignWidth = (((sg.getEndRes() - sg.getStartRes()) + 1) == viewport + .getAlignment().getWidth()) ? true : false; + if (isEntireAlignWidth) + { + String title = MessageManager.getString("label.delete_all"); + Panel infoPanel = new Panel(); + infoPanel.setLayout(new FlowLayout()); + infoPanel + .add(new Label(MessageManager.getString("warn.delete_all"))); + + final JVDialog dialog = new JVDialog(this, title, true, 400, 200); + dialog.setMainPanel(infoPanel); + dialog.ok.setLabel(MessageManager.getString("action.ok")); + dialog.cancel.setLabel(MessageManager.getString("action.cancel")); + dialog.setVisible(true); + + if (!dialog.accept) + { + return; + } + } viewport.getColumnSelection().removeElements(sg.getStartRes(), sg.getEndRes() + 1); } @@ -3357,8 +3387,11 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, MessageManager.getString("label.sort_annotations_by_label")); showAutoFirst = new CheckboxMenuItem( MessageManager.getString("label.show_first")); + showAutoFirst.setState(false); // pending applet parameter + setShowAutoCalculatedAbove(showAutoFirst.getState()); showAutoLast = new CheckboxMenuItem( MessageManager.getString("label.show_last")); + showAutoLast.setState(!showAutoFirst.getState()); showAlignmentAnnotations.addItemListener(this); showSequenceAnnotations.addItemListener(this); sortAnnBySequence.addItemListener(this);