X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fjalview%2Fgui%2FSeqPanel.java;h=4fac4fc091b43aa9df612eff8d589395defd2508;hb=aa213924876640ba82e866da5a750d9cdaa816d2;hp=6a03b5357242c0f3c0c41040ae81328c430d2dfc;hpb=4e665c174de86f7fb68b257ccb2b0aa2d62cb429;p=jalview.git
diff --git a/src/jalview/gui/SeqPanel.java b/src/jalview/gui/SeqPanel.java
index 6a03b53..4fac4fc 100644
--- a/src/jalview/gui/SeqPanel.java
+++ b/src/jalview/gui/SeqPanel.java
@@ -1,23 +1,24 @@
/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
- * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
- *
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
+ * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle
+ *
* This file is part of Jalview.
- *
+ *
* Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
+ * modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License along with Jalview. If not, see .
*/
package jalview.gui;
import java.util.*;
+import java.util.List;
import java.awt.*;
import java.awt.event.*;
@@ -26,12 +27,13 @@ import javax.swing.*;
import jalview.commands.*;
import jalview.datamodel.*;
+import jalview.io.SequenceAnnotationReport;
import jalview.schemes.*;
import jalview.structure.*;
/**
* DOCUMENT ME!
- *
+ *
* @author $author$
* @version $Revision: 1.130 $
*/
@@ -86,7 +88,7 @@ public class SeqPanel extends JPanel implements MouseListener,
StringBuffer keyboardNo2;
java.net.URL linkImageURL;
-
+ private final SequenceAnnotationReport seqARep;
StringBuffer tooltipText = new StringBuffer("");
String tmpString;
@@ -97,7 +99,7 @@ public class SeqPanel extends JPanel implements MouseListener,
/**
* Creates a new SeqPanel object.
- *
+ *
* @param avp
* DOCUMENT ME!
* @param p
@@ -106,6 +108,7 @@ public class SeqPanel extends JPanel implements MouseListener,
public SeqPanel(AlignViewport av, AlignmentPanel ap)
{
linkImageURL = getClass().getResource("/images/link.gif");
+ seqARep=new SequenceAnnotationReport(linkImageURL.toString());
ToolTipManager.sharedInstance().registerComponent(this);
ToolTipManager.sharedInstance().setInitialDelay(0);
ToolTipManager.sharedInstance().setDismissDelay(10000);
@@ -176,7 +179,7 @@ public class SeqPanel extends JPanel implements MouseListener,
res = (x / av.getCharWidth()) + av.getStartRes();
}
- if (av.hasHiddenColumns)
+ if (av.hasHiddenColumns())
{
res = av.getColumnSelection().adjustForHiddenColumns(res);
}
@@ -204,12 +207,12 @@ public class SeqPanel extends JPanel implements MouseListener,
y -= hgap;
seq = Math.min((y % cHeight) / av.getCharHeight(),
- av.alignment.getHeight() - 1);
+ av.getAlignment().getHeight() - 1);
}
else
{
seq = Math.min((y / av.getCharHeight()) + av.getStartSeq(),
- av.alignment.getHeight() - 1);
+ av.getAlignment().getHeight() - 1);
}
return seq;
@@ -297,7 +300,7 @@ public class SeqPanel extends JPanel implements MouseListener,
void setCursorPosition()
{
- SequenceI sequence = (Sequence) av.getAlignment().getSequenceAt(
+ SequenceI sequence = av.getAlignment().getSequenceAt(
seqCanvas.cursorY);
seqCanvas.cursorX = sequence.findIndex(getKeyboardNo1() - 1);
@@ -308,19 +311,19 @@ public class SeqPanel extends JPanel implements MouseListener,
{
seqCanvas.cursorX += dx;
seqCanvas.cursorY += dy;
- if (av.hasHiddenColumns && !av.colSel.isVisible(seqCanvas.cursorX))
+ if (av.hasHiddenColumns() && !av.getColumnSelection().isVisible(seqCanvas.cursorX))
{
int original = seqCanvas.cursorX - dx;
- int maxWidth = av.alignment.getWidth();
+ int maxWidth = av.getAlignment().getWidth();
- while (!av.colSel.isVisible(seqCanvas.cursorX)
+ while (!av.getColumnSelection().isVisible(seqCanvas.cursorX)
&& seqCanvas.cursorX < maxWidth && seqCanvas.cursorX > 0)
{
seqCanvas.cursorX += dx;
}
if (seqCanvas.cursorX >= maxWidth
- || !av.colSel.isVisible(seqCanvas.cursorX))
+ || !av.getColumnSelection().isVisible(seqCanvas.cursorX))
{
seqCanvas.cursorX = original;
}
@@ -335,18 +338,18 @@ public class SeqPanel extends JPanel implements MouseListener,
{
seqCanvas.cursorX = 0;
}
- else if (seqCanvas.cursorX > av.alignment.getWidth() - 1)
+ else if (seqCanvas.cursorX > av.getAlignment().getWidth() - 1)
{
- seqCanvas.cursorX = av.alignment.getWidth() - 1;
+ seqCanvas.cursorX = av.getAlignment().getWidth() - 1;
}
if (seqCanvas.cursorY < 0)
{
seqCanvas.cursorY = 0;
}
- else if (seqCanvas.cursorY > av.alignment.getHeight() - 1)
+ else if (seqCanvas.cursorY > av.getAlignment().getHeight() - 1)
{
- seqCanvas.cursorY = av.alignment.getHeight() - 1;
+ seqCanvas.cursorY = av.getAlignment().getHeight() - 1;
}
endEditing();
@@ -366,7 +369,7 @@ public class SeqPanel extends JPanel implements MouseListener,
}
if (!av.wrapAlignment)
{
- while (seqCanvas.cursorX < av.colSel
+ while (seqCanvas.cursorX < av.getColumnSelection()
.adjustForHiddenColumns(av.startRes))
{
if (!ap.scrollRight(false))
@@ -374,7 +377,7 @@ public class SeqPanel extends JPanel implements MouseListener,
break;
}
}
- while (seqCanvas.cursorX > av.colSel
+ while (seqCanvas.cursorX > av.getColumnSelection()
.adjustForHiddenColumns(av.endRes))
{
if (!ap.scrollRight(true))
@@ -384,7 +387,7 @@ public class SeqPanel extends JPanel implements MouseListener,
}
}
}
- setStatusMessage(av.alignment.getSequenceAt(seqCanvas.cursorY),
+ setStatusMessage(av.getAlignment().getSequenceAt(seqCanvas.cursorY),
seqCanvas.cursorX, seqCanvas.cursorY);
seqCanvas.repaint();
@@ -392,17 +395,17 @@ public class SeqPanel extends JPanel implements MouseListener,
void setSelectionAreaAtCursor(boolean topLeft)
{
- SequenceI sequence = (Sequence) av.getAlignment().getSequenceAt(
+ SequenceI sequence = av.getAlignment().getSequenceAt(
seqCanvas.cursorY);
if (av.getSelectionGroup() != null)
{
- SequenceGroup sg = av.selectionGroup;
+ SequenceGroup sg = av.getSelectionGroup();
// Find the top and bottom of this group
- int min = av.alignment.getHeight(), max = 0;
+ int min = av.getAlignment().getHeight(), max = 0;
for (int i = 0; i < sg.getSize(); i++)
{
- int index = av.alignment.findIndex(sg.getSequenceAt(i));
+ int index = av.getAlignment().findIndex(sg.getSequenceAt(i));
if (index > max)
{
max = index;
@@ -447,7 +450,7 @@ public class SeqPanel extends JPanel implements MouseListener,
sg.getSequences(null).clear();
for (int i = min; i < max; i++)
{
- sg.addSequence(av.alignment.getSequenceAt(i), false);
+ sg.addSequence(av.getAlignment().getSequenceAt(i), false);
}
}
}
@@ -482,7 +485,7 @@ public class SeqPanel extends JPanel implements MouseListener,
editSequence(false, false, seqCanvas.cursorX);
endEditing();
}
-
+
void insertNucAtCursor(boolean group,String nuc){
groupEditing = group;
startseq = seqCanvas.cursorY;
@@ -534,10 +537,11 @@ public class SeqPanel extends JPanel implements MouseListener,
/**
* DOCUMENT ME!
- *
+ *
* @param evt
* DOCUMENT ME!
*/
+ @Override
public void mouseReleased(MouseEvent evt)
{
mouseDragging = false;
@@ -554,10 +558,11 @@ public class SeqPanel extends JPanel implements MouseListener,
/**
* DOCUMENT ME!
- *
+ *
* @param evt
* DOCUMENT ME!
*/
+ @Override
public void mousePressed(MouseEvent evt)
{
lastMousePress = evt.getPoint();
@@ -607,6 +612,7 @@ public class SeqPanel extends JPanel implements MouseListener,
String lastMessage;
+ @Override
public void mouseOverSequence(SequenceI sequence, int index, int pos)
{
String tmp = sequence.hashCode() + " " + index + " " + pos;
@@ -619,6 +625,7 @@ public class SeqPanel extends JPanel implements MouseListener,
lastMessage = tmp;
}
+ @Override
public void highlightSequence(SearchResults results)
{
if (av.followHighlight)
@@ -631,6 +638,7 @@ public class SeqPanel extends JPanel implements MouseListener,
seqCanvas.highlightSearchResults(results);
}
+ @Override
public void updateColours(SequenceI seq, int index)
{
System.out.println("update the seqPanel colours");
@@ -639,10 +647,11 @@ public class SeqPanel extends JPanel implements MouseListener,
/**
* DOCUMENT ME!
- *
+ *
* @param evt
* DOCUMENT ME!
*/
+ @Override
public void mouseMoved(MouseEvent evt)
{
if (editingSeqs)
@@ -673,7 +682,7 @@ public class SeqPanel extends JPanel implements MouseListener,
tooltipText.setLength(6); // Cuts the buffer back to
- SequenceGroup[] groups = av.alignment.findAllGroups(sequence);
+ SequenceGroup[] groups = av.getAlignment().findAllGroups(sequence);
if (groups != null)
{
for (int g = 0; g < groups.length; g++)
@@ -706,7 +715,7 @@ public class SeqPanel extends JPanel implements MouseListener,
SequenceFeature[] features = findFeaturesAtRes(
sequence.getDatasetSequence(),
rpos = sequence.findPosition(res));
- appendFeatures(tooltipText, linkImageURL.toString(), rpos, features,
+ seqARep.appendFeatures(tooltipText, rpos, features,
this.ap.seqPanel.seqCanvas.fr.minmax);
}
if (tooltipText.length() == 6) //
@@ -752,148 +761,12 @@ public class SeqPanel extends JPanel implements MouseListener,
return lastp = p;
}
- /**
- * appends the features at rpos to the given stringbuffer ready for display in
- * a tooltip
- *
- * @param tooltipText2
- * @param linkImageURL
- * @param rpos
- * @param features
- * TODO refactor to Jalview 'utilities' somehow.
- */
- public void appendFeatures(StringBuffer tooltipText2,
- String linkImageURL, int rpos, SequenceFeature[] features)
- {
- appendFeatures(tooltipText2, linkImageURL, rpos, features, null);
- }
-
- public void appendFeatures(StringBuffer tooltipText2, String string,
- int rpos, SequenceFeature[] features, Hashtable minmax)
- {
- String tmpString;
- if (features != null)
- {
- for (int i = 0; i < features.length; i++)
- {
- if (features[i].getType().equals("disulfide bond"))
- {
- if (features[i].getBegin() == rpos
- || features[i].getEnd() == rpos)
- {
- if (tooltipText2.length() > 6)
- {
- tooltipText2.append("
");
- }
- tooltipText2.append("disulfide bond " + features[i].getBegin()
- + ":" + features[i].getEnd());
- if (features[i].links != null)
- {
- tooltipText2.append(" ");
- }
- }
- }
- else
- {
- if (tooltipText2.length() > 6)
- {
- tooltipText2.append("
");
- }
- // TODO: remove this hack to display link only features
- boolean linkOnly = features[i].getValue("linkonly") != null;
- if (!linkOnly)
- {
- tooltipText2.append(features[i].getType() + " ");
- if (rpos != 0)
- {
- // we are marking a positional feature
- tooltipText2.append(features[i].begin);
- }
- if (features[i].begin != features[i].end)
- {
- tooltipText2.append(" " + features[i].end);
- }
-
- if (features[i].getDescription() != null
- && !features[i].description.equals(features[i]
- .getType()))
- {
- tmpString = features[i].getDescription();
- int startTag = tmpString.toUpperCase().indexOf("");
- if (startTag > -1)
- {
- tmpString = tmpString.substring(startTag + 6);
- }
- int endTag = tmpString.toUpperCase().indexOf("");
- if (endTag > -1)
- {
- tmpString = tmpString.substring(0, endTag);
- }
- endTag = tmpString.toUpperCase().indexOf("");
- if (endTag > -1)
- {
- tmpString = tmpString.substring(0, endTag);
- }
-
- if (startTag > -1)
- {
- tooltipText2.append("; " + tmpString);
- }
- else
- {
- if (tmpString.indexOf("<") > -1
- || tmpString.indexOf(">") > -1)
- {
- // The description does not specify html is to
- // be used, so we must remove < > symbols
- tmpString = tmpString.replaceAll("<", "<");
- tmpString = tmpString.replaceAll(">", ">");
-
- tooltipText2.append("; ");
- tooltipText2.append(tmpString);
-
- }
- else
- {
- tooltipText2.append("; " + tmpString);
- }
- }
- }
- // check score should be shown
- if (features[i].getScore() != Float.NaN)
- {
- float[][] rng = (minmax == null) ? null : ((float[][]) minmax
- .get(features[i].getType()));
- if (rng != null && rng[0] != null && rng[0][0] != rng[0][1])
- {
- tooltipText2.append(" Score=" + features[i].getScore());
- }
- }
- if (features[i].getValue("status") != null)
- {
- String status = features[i].getValue("status").toString();
- if (status.length() > 0)
- {
- tooltipText2.append("; (" + features[i].getValue("status")
- + ")");
- }
- }
- }
- if (features[i].links != null)
- {
- tooltipText2.append(" ");
- }
-
- }
- }
- }
- }
String lastTooltip;
/**
* Set status message in alignment panel
- *
+ *
* @param sequence
* aligned sequence object
* @param res
@@ -909,7 +782,7 @@ public class SeqPanel extends JPanel implements MouseListener,
+ sequence.getName());
Object obj = null;
- if (av.alignment.isNucleotide())
+ if (av.getAlignment().isNucleotide())
{
obj = ResidueProperties.nucleotideName.get(sequence.getCharAt(res)
+ "");
@@ -941,10 +814,11 @@ public class SeqPanel extends JPanel implements MouseListener,
/**
* DOCUMENT ME!
- *
+ *
* @param evt
* DOCUMENT ME!
*/
+ @Override
public void mouseDragged(MouseEvent evt)
{
if (mouseWheelPressed)
@@ -1040,15 +914,14 @@ public class SeqPanel extends JPanel implements MouseListener,
boolean fixedColumns = false;
SequenceGroup sg = av.getSelectionGroup();
- SequenceI seq = av.alignment.getSequenceAt(startseq);
+ SequenceI seq = av.getAlignment().getSequenceAt(startseq);
// No group, but the sequence may represent a group
- if (!groupEditing && av.hasHiddenRows)
+ if (!groupEditing && av.hasHiddenRows())
{
- if (av.hiddenRepSequences != null
- && av.hiddenRepSequences.containsKey(seq))
+ if (av.isHiddenRepSequence(seq))
{
- sg = (SequenceGroup) av.hiddenRepSequences.get(seq);
+ sg = av.getRepresentedSequences(seq);
groupEditing = true;
}
}
@@ -1090,7 +963,7 @@ public class SeqPanel extends JPanel implements MouseListener,
// Are we editing within a selection group?
if (groupEditing
- || (sg != null && sg.getSequences(av.hiddenRepSequences)
+ || (sg != null && sg.getSequences(av.getHiddenRepSequences())
.contains(seq)))
{
fixedColumns = true;
@@ -1099,13 +972,12 @@ public class SeqPanel extends JPanel implements MouseListener,
// but the sequence represents a group
if (sg == null)
{
- if (av.hiddenRepSequences == null
- || !av.hiddenRepSequences.containsKey(seq))
+ if (!av.isHiddenRepSequence(seq))
{
endEditing();
return;
}
- sg = (SequenceGroup) av.hiddenRepSequences.get(seq);
+ sg = av.getRepresentedSequences(seq);
}
fixedLeft = sg.getStartRes();
@@ -1132,7 +1004,7 @@ public class SeqPanel extends JPanel implements MouseListener,
}
}
- if (av.hasHiddenColumns)
+ if (av.hasHiddenColumns())
{
fixedColumns = true;
int y1 = av.getColumnSelection().getHiddenBoundaryLeft(startres);
@@ -1162,12 +1034,12 @@ public class SeqPanel extends JPanel implements MouseListener,
if (groupEditing)
{
- Vector vseqs = sg.getSequences(av.hiddenRepSequences);
+ List vseqs = sg.getSequences(av.getHiddenRepSequences());
int g, groupSize = vseqs.size();
SequenceI[] groupSeqs = new SequenceI[groupSize];
for (g = 0; g < groupSeqs.length; g++)
{
- groupSeqs[g] = (SequenceI) vseqs.elementAt(g);
+ groupSeqs[g] = vseqs.get(g);
}
// drag to right
@@ -1176,9 +1048,9 @@ public class SeqPanel extends JPanel implements MouseListener,
// If the user has selected the whole sequence, and is dragging to
// the right, we can still extend the alignment and selectionGroup
if (sg.getStartRes() == 0 && sg.getEndRes() == fixedRight
- && sg.getEndRes() == av.alignment.getWidth() - 1)
+ && sg.getEndRes() == av.getAlignment().getWidth() - 1)
{
- sg.setEndRes(av.alignment.getWidth() + startres - lastres);
+ sg.setEndRes(av.getAlignment().getWidth() + startres - lastres);
fixedRight = sg.getEndRes();
}
@@ -1210,19 +1082,19 @@ public class SeqPanel extends JPanel implements MouseListener,
if (!blank)
{
- if (sg.getSize() == av.alignment.getHeight())
+ if (sg.getSize() == av.getAlignment().getHeight())
{
- if ((av.hasHiddenColumns && startres < av.getColumnSelection()
+ if ((av.hasHiddenColumns() && startres < av.getColumnSelection()
.getHiddenBoundaryRight(startres)))
{
endEditing();
return;
}
- int alWidth = av.alignment.getWidth();
- if (av.hasHiddenRows)
+ int alWidth = av.getAlignment().getWidth();
+ if (av.hasHiddenRows())
{
- int hwidth = av.alignment.getHiddenSequences().getWidth();
+ int hwidth = av.getAlignment().getHiddenSequences().getWidth();
if (hwidth > alWidth)
{
alWidth = hwidth;
@@ -1279,7 +1151,7 @@ public class SeqPanel extends JPanel implements MouseListener,
else
{
editCommand.appendEdit(EditCommand.INSERT_GAP, groupSeqs,
- startres, startres - lastres, av.alignment, true);
+ startres, startres - lastres, av.getAlignment(), true);
}
}
else
@@ -1295,7 +1167,7 @@ public class SeqPanel extends JPanel implements MouseListener,
else
{
editCommand.appendEdit(EditCommand.DELETE_GAP, groupSeqs,
- startres, lastres - startres, av.alignment, true);
+ startres, lastres - startres, av.getAlignment(), true);
}
}
@@ -1303,7 +1175,7 @@ public class SeqPanel extends JPanel implements MouseListener,
else
// ///Editing a single sequence///////////
{
- if (insertGap && !editSeq)
+ if (insertGap)
{
// dragging to the right
if (fixedColumns && fixedRight != -1)
@@ -1312,17 +1184,13 @@ public class SeqPanel extends JPanel implements MouseListener,
{
insertChar(j, new SequenceI[]
{ seq }, fixedRight);
- System.out.println("InsertGap1");
-
}
}
else
{
editCommand.appendEdit(EditCommand.INSERT_GAP, new SequenceI[]
- { seq }, lastres, startres - lastres, av.alignment, true);
- System.out.println("InsertGap2 - lastres: "+lastres+" startres: "+startres);
-
- }
+ { seq }, lastres, startres - lastres, av.getAlignment(), true);
+ }
}
else
{
@@ -1357,7 +1225,7 @@ public class SeqPanel extends JPanel implements MouseListener,
if (max > 0)
{
editCommand.appendEdit(EditCommand.DELETE_GAP, new SequenceI[]
- { seq }, startres, max, av.alignment, true);
+ { seq }, startres, max, av.getAlignment(), true);
}
}
}else{//insertGap==false AND editSeq==TRUE;
@@ -1368,14 +1236,11 @@ public class SeqPanel extends JPanel implements MouseListener,
insertChar(j, new SequenceI[]
{ seq }, fixedRight);
}
- System.out.println("EditSeq1");
-
- }
+ }
else
{
editCommand.appendEdit(EditCommand.INSERT_NUC, new SequenceI[]
- { seq }, lastres, startres - lastres, av.alignment, true);
- System.out.println("EditSeq2");
+ { seq }, lastres, startres - lastres, av.getAlignment(), true);
}
}
}
@@ -1411,9 +1276,9 @@ public class SeqPanel extends JPanel implements MouseListener,
}
editCommand.appendEdit(EditCommand.DELETE_GAP, seq, blankColumn, 1,
- av.alignment, true);
+ av.getAlignment(), true);
- editCommand.appendEdit(EditCommand.INSERT_GAP, seq, j, 1, av.alignment,
+ editCommand.appendEdit(EditCommand.INSERT_GAP, seq, j, 1, av.getAlignment(),
true);
}
@@ -1421,19 +1286,20 @@ public class SeqPanel extends JPanel implements MouseListener,
void deleteChar(int j, SequenceI[] seq, int fixedColumn)
{
- editCommand.appendEdit(EditCommand.DELETE_GAP, seq, j, 1, av.alignment,
+ editCommand.appendEdit(EditCommand.DELETE_GAP, seq, j, 1, av.getAlignment(),
true);
editCommand.appendEdit(EditCommand.INSERT_GAP, seq, fixedColumn, 1,
- av.alignment, true);
+ av.getAlignment(), true);
}
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
+ @Override
public void mouseEntered(MouseEvent e)
{
if (oldSeq < 0)
@@ -1450,10 +1316,11 @@ public class SeqPanel extends JPanel implements MouseListener,
/**
* DOCUMENT ME!
- *
+ *
* @param e
* DOCUMENT ME!
*/
+ @Override
public void mouseExited(MouseEvent e)
{
if (av.getWrapAlignment())
@@ -1467,10 +1334,11 @@ public class SeqPanel extends JPanel implements MouseListener,
}
}
+ @Override
public void mouseClicked(MouseEvent evt)
{
SequenceGroup sg = null;
- SequenceI sequence = av.alignment.getSequenceAt(findSeq(evt));
+ SequenceI sequence = av.getAlignment().getSequenceAt(findSeq(evt));
if (evt.getClickCount() > 1)
{
sg = av.getSelectionGroup();
@@ -1501,23 +1369,35 @@ public class SeqPanel extends JPanel implements MouseListener,
}
}
+ @Override
public void mouseWheelMoved(MouseWheelEvent e)
{
e.consume();
if (e.getWheelRotation() > 0)
{
- ap.scrollUp(false);
+ if (e.isShiftDown())
+ {
+ ap.scrollRight(true);
+
+ } else {
+ ap.scrollUp(false);
+ }
}
else
{
- ap.scrollUp(true);
+ if (e.isShiftDown())
+ {
+ ap.scrollRight(false);
+ } else {
+ ap.scrollUp(true);
+ }
}
// TODO Update tooltip for new position.
}
/**
* DOCUMENT ME!
- *
+ *
* @param evt
* DOCUMENT ME!
*/
@@ -1529,7 +1409,7 @@ public class SeqPanel extends JPanel implements MouseListener,
startWrapBlock = wrappedBlock;
- if (av.wrapAlignment && seq > av.alignment.getHeight())
+ if (av.wrapAlignment && seq > av.getAlignment().getHeight())
{
JOptionPane.showInternalMessageDialog(Desktop.desktop,
"Cannot edit annotations in wrapped view.",
@@ -1542,7 +1422,7 @@ public class SeqPanel extends JPanel implements MouseListener,
return;
}
- SequenceI sequence = (Sequence) av.getAlignment().getSequenceAt(seq);
+ SequenceI sequence = av.getAlignment().getSequenceAt(seq);
if ((sequence == null) || (res > sequence.getLength()))
{
@@ -1553,7 +1433,7 @@ public class SeqPanel extends JPanel implements MouseListener,
if (stretchGroup == null)
{
- stretchGroup = av.alignment.findGroup(sequence);
+ stretchGroup = av.getAlignment().findGroup(sequence);
if ((stretchGroup != null) && (res > stretchGroup.getStartRes())
&& (res < stretchGroup.getEndRes()))
@@ -1571,7 +1451,7 @@ public class SeqPanel extends JPanel implements MouseListener,
{
stretchGroup = null;
- SequenceGroup[] allGroups = av.alignment.findAllGroups(sequence);
+ SequenceGroup[] allGroups = av.getAlignment().findAllGroups(sequence);
if (allGroups != null)
{
@@ -1662,7 +1542,7 @@ public class SeqPanel extends JPanel implements MouseListener,
/**
* DOCUMENT ME!
- *
+ *
* @param evt
* DOCUMENT ME!
*/
@@ -1679,9 +1559,8 @@ public class SeqPanel extends JPanel implements MouseListener,
{
if (stretchGroup.cs instanceof ClustalxColourScheme)
{
- ((ClustalxColourScheme) stretchGroup.cs).resetClustalX(
- stretchGroup.getSequences(av.hiddenRepSequences),
- stretchGroup.getWidth());
+ ((ClustalxColourScheme) stretchGroup.cs).alignmentChanged(
+ stretchGroup,av.getHiddenRepSequences());
}
if (stretchGroup.cs.conservationApplied())
@@ -1706,7 +1585,7 @@ public class SeqPanel extends JPanel implements MouseListener,
/**
* DOCUMENT ME!
- *
+ *
* @param evt
* DOCUMENT ME!
*/
@@ -1725,9 +1604,9 @@ public class SeqPanel extends JPanel implements MouseListener,
return;
}
- if (res >= av.alignment.getWidth())
+ if (res >= av.getAlignment().getWidth())
{
- res = av.alignment.getWidth() - 1;
+ res = av.getAlignment().getWidth() - 1;
}
if (stretchGroup.getEndRes() == res)
@@ -1772,7 +1651,7 @@ public class SeqPanel extends JPanel implements MouseListener,
dragDirection = -1;
}
- while ((y != oldSeq) && (oldSeq > -1) && (y < av.alignment.getHeight()))
+ while ((y != oldSeq) && (oldSeq > -1) && (y < av.getAlignment().getHeight()))
{
// This routine ensures we don't skip any sequences, as the
// selection is quite slow.
@@ -1863,6 +1742,7 @@ public class SeqPanel extends JPanel implements MouseListener,
running = false;
}
+ @Override
public void run()
{
running = true;
@@ -1877,7 +1757,7 @@ public class SeqPanel extends JPanel implements MouseListener,
}
if (mouseDragging && (evt.getY() >= getHeight())
- && (av.alignment.getHeight() > av.getEndSeq()))
+ && (av.getAlignment().getHeight() > av.getEndSeq()))
{
running = ap.scrollUp(false);
}
@@ -1905,6 +1785,7 @@ public class SeqPanel extends JPanel implements MouseListener,
/**
* modify current selection according to a received message.
*/
+ @Override
public void selection(SequenceGroup seqsel, ColumnSelection colsel,
SelectionSource source)
{
@@ -1930,15 +1811,15 @@ public class SeqPanel extends JPanel implements MouseListener,
SequenceGroup sgroup = null;
if (seqsel != null && seqsel.getSize()>0)
{
- if (av.alignment == null)
+ if (av.getAlignment() == null)
{
jalview.bin.Cache.log.warn("alignviewport av SeqSetId="
+ av.getSequenceSetId() + " ViewId=" + av.getViewId()
+ " 's alignment is NULL! returning immediatly.");
return;
}
- sgroup = seqsel.intersect(av.alignment,
- (av.hasHiddenRows) ? av.hiddenRepSequences : null);
+ sgroup = seqsel.intersect(av.getAlignment(),
+ (av.hasHiddenRows()) ? av.getHiddenRepSequences() : null);
if ((sgroup == null || sgroup.getSize() == 0)
|| (colsel == null || colsel.size() == 0))
{
@@ -1963,29 +1844,29 @@ public class SeqPanel extends JPanel implements MouseListener,
// so import the new colsel.
if (colsel == null || colsel.size() == 0)
{
- if (av.colSel != null)
+ if (av.getColumnSelection() != null)
{
- av.colSel.clear();
+ av.getColumnSelection().clear();
repaint=true;
}
}
else
{
// TODO: shift colSel according to the intersecting sequences
- if (av.colSel == null)
+ if (av.getColumnSelection() == null)
{
- av.colSel = new ColumnSelection(colsel);
+ av.setColumnSelection(new ColumnSelection(colsel));
}
else
{
- av.colSel.setElementsFrom(colsel);
+ av.getColumnSelection().setElementsFrom(colsel);
}
}
av.isColSelChanged(true);
repaint = true;
}
- if (copycolsel && av.hasHiddenColumns
- && (av.colSel == null || av.colSel.getHiddenColumns() == null))
+ if (copycolsel && av.hasHiddenColumns()
+ && (av.getColumnSelection() == null || av.getColumnSelection().getHiddenColumns() == null))
{
System.err.println("Bad things");
}