X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAlignFrame.java;h=50ec7e018b1175e7c68cc37278af44a02954140d;hb=053c5f25f135f0eeeb60acad625b246dc66e75fc;hp=c9183d58d793cc0b942a787841e5986d9fbf5d61;hpb=bfd019e68fc472cb1ac9a71e8118adc4eedc6609;p=jalview.git diff --git a/src/jalview/appletgui/AlignFrame.java b/src/jalview/appletgui/AlignFrame.java index c9183d5..50ec7e0 100644 --- a/src/jalview/appletgui/AlignFrame.java +++ b/src/jalview/appletgui/AlignFrame.java @@ -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()); @@ -814,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) { @@ -1745,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); } } @@ -2061,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); } @@ -2266,18 +2294,14 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, TrimRegionCommand trimRegion; if (trimLeft) { - trimRegion = new TrimRegionCommand("Remove Left", - TrimRegionCommand.TRIM_LEFT, seqs, column, - viewport.getAlignment(), viewport.getColumnSelection(), - viewport.getSelectionGroup()); + trimRegion = new TrimRegionCommand("Remove Left", true, seqs, + column, viewport.getAlignment()); viewport.setStartRes(0); } else { - trimRegion = new TrimRegionCommand("Remove Right", - TrimRegionCommand.TRIM_RIGHT, seqs, column, - viewport.getAlignment(), viewport.getColumnSelection(), - viewport.getSelectionGroup()); + trimRegion = new TrimRegionCommand("Remove Right", false, seqs, + column, viewport.getAlignment()); } statusBar.setText(MessageManager.formatMessage( @@ -2581,6 +2605,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, } + @Override public void changeColour(ColourSchemeI cs) { @@ -3731,6 +3756,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, this.add(statusBar, BorderLayout.SOUTH); } + @Override public void setStatus(String string) { statusBar.setText(string);