X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=445e967ea5e1e16a5ac809a6f73e8bcee041473f;hb=c437fc72420baf7b045d417fb6cabcebe87987c5;hp=cf6a901ec488015e62f8b67884740b7bccb97f81;hpb=424f6f03e8fb5e40cceca09fc8ffd72b41e3a9e4;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index cf6a901..445e967 100644 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -86,6 +86,7 @@ import jalview.schemes.ResidueProperties; import jalview.schemes.TCoffeeColourScheme; import jalview.util.MessageManager; import jalview.viewmodel.AlignmentViewport; +import jalview.viewmodel.ViewportRanges; import jalview.ws.DBRefFetcher; import jalview.ws.DBRefFetcher.FetchFinishedListenerI; import jalview.ws.jws1.Discoverer; @@ -160,6 +161,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, AlignViewport viewport; + ViewportRanges vpRanges; + public AlignViewControllerI avc; List alignPanels = new ArrayList(); @@ -331,6 +334,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, progressBar = new ProgressBar(this.statusPanel, this.statusBar); } + vpRanges = viewport.getRanges(); avc = new jalview.controller.AlignViewController(this, viewport, alignPanel); if (viewport.getAlignmentConservationAnnotation() == null) @@ -640,8 +644,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, new String[] { (viewport.cursorMode ? "on" : "off") })); if (viewport.cursorMode) { - alignPanel.getSeqPanel().seqCanvas.cursorX = viewport.startRes; - alignPanel.getSeqPanel().seqCanvas.cursorY = viewport.startSeq; + alignPanel.getSeqPanel().seqCanvas.cursorX = vpRanges + .getStartRes(); + alignPanel.getSeqPanel().seqCanvas.cursorY = vpRanges + .getStartSeq(); } alignPanel.getSeqPanel().seqCanvas.repaint(); break; @@ -679,8 +685,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } else { - alignPanel.setScrollValues(viewport.startRes, viewport.startSeq - - viewport.endSeq + viewport.startSeq); + alignPanel.setScrollValues(vpRanges.getStartRes(), + 2 * vpRanges.getStartSeq() - vpRanges.getEndSeq()); } break; case KeyEvent.VK_PAGE_DOWN: @@ -690,8 +696,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } else { - alignPanel.setScrollValues(viewport.startRes, viewport.startSeq - + viewport.endSeq - viewport.startSeq); + alignPanel.setScrollValues(vpRanges.getStartRes(), + vpRanges.getEndSeq()); } break; } @@ -2141,7 +2147,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { // propagate alignment changed. - viewport.setEndSeq(alignment.getHeight()); + vpRanges.setEndSeq(alignment.getHeight()); if (annotationAdded) { // Duplicate sequence annotation in all views. @@ -2545,7 +2551,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { trimRegion = new TrimRegionCommand("Remove Left", true, seqs, column, viewport.getAlignment()); - viewport.setStartRes(0); + vpRanges.setStartRes(0); } else { @@ -2612,13 +2618,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, // This is to maintain viewport position on first residue // of first sequence SequenceI seq = viewport.getAlignment().getSequenceAt(0); - int startRes = seq.findPosition(viewport.startRes); + int startRes = seq.findPosition(vpRanges.getStartRes()); // ShiftList shifts; // viewport.getAlignment().removeGaps(shifts=new ShiftList()); // edit.alColumnChanges=shifts.getInverse(); // if (viewport.hasHiddenColumns) // viewport.getColumnSelection().compensateForEdits(shifts); - viewport.setStartRes(seq.findIndex(startRes) - 1); + vpRanges.setStartRes(seq.findIndex(startRes) - 1); viewport.firePropertyChange("alignment", null, viewport.getAlignment() .getSequences()); @@ -2651,12 +2657,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, // This is to maintain viewport position on first residue // of first sequence SequenceI seq = viewport.getAlignment().getSequenceAt(0); - int startRes = seq.findPosition(viewport.startRes); + int startRes = seq.findPosition(vpRanges.getStartRes()); addHistoryItem(new RemoveGapsCommand("Remove Gaps", seqs, start, end, viewport.getAlignment())); - viewport.setStartRes(seq.findIndex(startRes) - 1); + vpRanges.setStartRes(seq.findIndex(startRes) - 1); viewport.firePropertyChange("alignment", null, viewport.getAlignment() .getSequences()); @@ -3359,7 +3365,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, protected void modifyPID_actionPerformed() { SliderPanel.setPIDSliderSource(alignPanel, - viewport.getViewportColourScheme(), alignPanel.getViewName()); + viewport.getResidueShading(), alignPanel.getViewName()); SliderPanel.showPIDSlider(); } @@ -3370,7 +3376,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, protected void modifyConservation_actionPerformed() { SliderPanel.setConservationSlider(alignPanel, - viewport.getViewportColourScheme(), alignPanel.getViewName()); + viewport.getResidueShading(), alignPanel.getViewName()); SliderPanel.showConservationSlider(); } @@ -3382,7 +3388,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { modifyConservation.setEnabled(selected); viewport.setConservationSelected(selected); - viewport.getViewportColourScheme().setConservationApplied(selected); + viewport.getResidueShading().setConservationApplied(selected); changeColour(viewport.getGlobalColourScheme()); if (selected) @@ -3405,7 +3411,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, viewport.setAbovePIDThreshold(selected); if (!selected) { - viewport.getViewportColourScheme().setThreshold(0, + viewport.getResidueShading().setThreshold(0, viewport.isIgnoreGapsConsensus()); } @@ -4838,7 +4844,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, if (viewport.getConservationSelected()) { SliderPanel.setConservationSlider(alignPanel, - viewport.getViewportColourScheme(), alignPanel.getViewName()); + viewport.getResidueShading(), alignPanel.getViewName()); } else { @@ -4847,7 +4853,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, if (viewport.getAbovePIDThreshold()) { SliderPanel.setPIDSliderSource(alignPanel, - viewport.getViewportColourScheme(), alignPanel.getViewName()); + viewport.getResidueShading(), alignPanel.getViewName()); } else { @@ -5699,6 +5705,23 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, ColourMenuHelper.setColourSelected(colourMenu, schemeName); } + + /** + * Disable inapplicable items in the Select menu when it is clicked + */ + @Override + protected void configureSelectMenu() + { + createGroup.setEnabled(false); + unGroup.setEnabled(false); + SequenceGroup sg = viewport.getSelectionGroup(); + if (sg != null) + { + List groups = viewport.getAlignment().getGroups(); + createGroup.setEnabled(groups == null || !groups.contains(sg)); + unGroup.setEnabled(groups != null && groups.contains(sg)); + } + } } class PrintThread extends Thread