X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSeqPanel.java;fp=src%2Fjalview%2Fgui%2FSeqPanel.java;h=fdb75a45da75fa023787a8f4da47aabc5e4971f5;hb=586ade46bdcd05ff028a1cff82c3c527326d28ec;hp=d22ddd4bfae8e092fae20171500a716fd534141b;hpb=adcef27f5747b4e70e89a56c3735bc3afb8ce9bf;p=jalview.git diff --git a/src/jalview/gui/SeqPanel.java b/src/jalview/gui/SeqPanel.java index d22ddd4..fdb75a4 100644 --- a/src/jalview/gui/SeqPanel.java +++ b/src/jalview/gui/SeqPanel.java @@ -87,6 +87,7 @@ public class SeqPanel extends JPanel SequenceListener, SelectionListener { /* + * * a class that holds computed mouse position * - column of the alignment (0...) * - sequence offset (0...) @@ -242,6 +243,7 @@ public class SeqPanel extends JPanel */ public SeqPanel(AlignViewport viewport, AlignmentPanel alignPanel) { + setName("SeqPanel"); seqARep = new SequenceAnnotationReport(true); ToolTipManager.sharedInstance().registerComponent(this); ToolTipManager.sharedInstance().setInitialDelay(0); @@ -290,8 +292,7 @@ public class SeqPanel extends JPanel int alignmentHeight = av.getAlignment().getHeight(); if (av.getWrapAlignment()) { - seqCanvas.calculateWrappedGeometry(seqCanvas.getWidth(), - seqCanvas.getHeight()); + seqCanvas.calculateWrappedGeometry(); /* * yPos modulo height of repeating width @@ -423,8 +424,7 @@ public class SeqPanel extends JPanel if (editCommand != null && editCommand.getSize() > 0) { ap.alignFrame.addHistoryItem(editCommand); - av.firePropertyChange("alignment", null, - av.getAlignment().getSequences()); + ap.av.notifyAlignment(); } } finally { @@ -1141,7 +1141,8 @@ public class SeqPanel extends JPanel String tooltip = AnnotationPanel.buildToolTip(anns[rowIndex], column, anns); - if (!tooltip.equals(lastTooltip)) + boolean tooltipChanged = tooltip == null ? lastTooltip != null : !tooltip.equals(lastTooltip); + if (tooltipChanged) { lastTooltip = tooltip; lastFormattedTooltip = tooltip == null ? null @@ -2899,4 +2900,45 @@ public class SeqPanel extends JPanel { return lastSearchResults; } + + /** + * scroll to the given row/column - or nearest visible location + * + * @param row + * @param column + */ + public void scrollTo(int row, int column) + { + + row = row < 0 ? ap.av.getRanges().getStartSeq() : row; + column = column < 0 ? ap.av.getRanges().getStartRes() : column; + ap.scrollTo(column, column, row, true, true); + } + + /** + * scroll to the given row - or nearest visible location + * + * @param row + */ + public void scrollToRow(int row) + { + + row = row < 0 ? ap.av.getRanges().getStartSeq() : row; + ap.scrollTo(ap.av.getRanges().getStartRes(), + ap.av.getRanges().getStartRes(), row, true, true); + } + + /** + * scroll to the given column - or nearest visible location + * + * @param column + */ + public void scrollToColumn(int column) + { + + column = column < 0 ? ap.av.getRanges().getStartRes() : column; + ap.scrollTo(column, column, ap.av.getRanges().getStartSeq(), true, + true); + } + }