X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=bed434d086a56c63ac4ec158fce511c1cc278cdd;hb=22d7179d1f4f20362bf10160fed8cc83712ae406;hp=681a7002562f87a2c123629b52a963c7ce7abe48;hpb=e2e2b85d7a8e3d7ed6926ef1bf55eb2328e744d1;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 681a700..bed434d 100644 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -88,6 +88,7 @@ import jalview.schemes.ResidueColourScheme; 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; @@ -162,6 +163,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, AlignViewport viewport; + ViewportRanges vpRanges; + public AlignViewControllerI avc; List alignPanels = new ArrayList(); @@ -333,6 +336,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) @@ -368,7 +372,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, @Override public void actionPerformed(ActionEvent e) { - new TreeChooser(AlignFrame.this); + openTreePcaDialog(); } }); buildColourMenu(); @@ -650,8 +654,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; @@ -689,8 +695,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: @@ -700,8 +706,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; } @@ -2151,7 +2157,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. @@ -2555,7 +2561,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 { @@ -2622,13 +2628,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()); @@ -2661,12 +2667,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()); @@ -2754,6 +2760,14 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, */ newap.av.replaceMappings(viewport.getAlignment()); + /* + * start up cDNA consensus (if applicable) now mappings are in place + */ + if (newap.av.initComplementConsensus()) + { + newap.refresh(true); // adjust layout of annotations + } + newap.av.viewName = getNewViewName(viewTitle); addAlignmentPanel(newap, true); @@ -3331,7 +3345,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, */ if (ResidueColourScheme.USER_DEFINED.equals(name)) { - new UserDefinedColours(alignPanel, null); + new UserDefinedColours(alignPanel); return; } @@ -3352,10 +3366,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, public void changeColour(ColourSchemeI cs) { // TODO: pull up to controller method - if (cs != null) - { - ColourMenuHelper.setColourSelected(colourMenu, cs.getSchemeName()); - } + ColourMenuHelper.setColourSelected(colourMenu, cs); viewport.setGlobalColourScheme(cs); @@ -3441,7 +3452,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray(); AlignmentSorter.sortByPID(viewport.getAlignment(), viewport - .getAlignment().getSequenceAt(0), null); + .getAlignment().getSequenceAt(0)); addHistoryItem(new OrderCommand("Pairwise Sort", oldOrder, viewport.getAlignment())); alignPanel.paintAlignment(true); @@ -3643,21 +3654,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } else { - // are the visible sequences aligned? - if (!viewport.getAlignment().isAligned(false)) - { - JvOptionPane - .showMessageDialog( - Desktop.desktop, - MessageManager - .getString("label.sequences_must_be_aligned_before_creating_tree"), - MessageManager - .getString("label.sequences_not_aligned"), - JvOptionPane.WARNING_MESSAGE); - - return; - } - if (viewport.getAlignment().getHeight() < 2) { return; @@ -5628,10 +5624,19 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, colourMenu.add(annotationColour); ColourSchemeI colourScheme = viewport.getGlobalColourScheme(); - String schemeName = colourScheme == null ? null : colourScheme - .getSchemeName(); + ColourMenuHelper.setColourSelected(colourMenu, colourScheme); + } - ColourMenuHelper.setColourSelected(colourMenu, schemeName); + /** + * Open a dialog (if not already open) that allows the user to select and + * calculate PCA or Tree analysis + */ + protected void openTreePcaDialog() + { + if (alignPanel.getCalculationDialog() == null) + { + new CalculationChooser(AlignFrame.this); + } } }