X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSeqPanel.java;h=4a43798975f89f99535fcf4f1523567d638e7a78;hb=3cdecbd752fe2d2d8c7b48ba36343c5188f30c40;hp=6a9c8eea469804a6e7da09686cdf29943b91fae0;hpb=227ee1c1c69c228b67d408a0a83ae51bf5811272;p=jalview.git
diff --git a/src/jalview/gui/SeqPanel.java b/src/jalview/gui/SeqPanel.java
index 6a9c8ee..4a43798 100644
--- a/src/jalview/gui/SeqPanel.java
+++ b/src/jalview/gui/SeqPanel.java
@@ -21,6 +21,7 @@
package jalview.gui;
import jalview.commands.EditCommand;
+import jalview.commands.EditCommand.Action;
import jalview.datamodel.ColumnSelection;
import jalview.datamodel.SearchResults;
import jalview.datamodel.Sequence;
@@ -112,7 +113,7 @@ public class SeqPanel extends JPanel implements MouseListener,
private final SequenceAnnotationReport seqARep;
- StringBuffer tooltipText = new StringBuffer("");
+ StringBuffer tooltipText = new StringBuffer();
String tmpString;
@@ -164,16 +165,17 @@ public class SeqPanel extends JPanel implements MouseListener,
int res = 0;
int x = evt.getX();
- if (av.wrapAlignment)
+ if (av.getWrapAlignment())
{
- int hgap = av.charHeight;
- if (av.scaleAboveWrapped)
+ int hgap = av.getCharHeight();
+ if (av.getScaleAboveWrapped())
{
- hgap += av.charHeight;
+ hgap += av.getCharHeight();
}
- int cHeight = av.getAlignment().getHeight() * av.charHeight + hgap
+ int cHeight = av.getAlignment().getHeight() * av.getCharHeight()
+ + hgap
+ seqCanvas.getAnnotationHeight();
int y = evt.getY();
@@ -217,15 +219,16 @@ public class SeqPanel extends JPanel implements MouseListener,
int seq = 0;
int y = evt.getY();
- if (av.wrapAlignment)
+ if (av.getWrapAlignment())
{
- int hgap = av.charHeight;
- if (av.scaleAboveWrapped)
+ int hgap = av.getCharHeight();
+ if (av.getScaleAboveWrapped())
{
- hgap += av.charHeight;
+ hgap += av.getCharHeight();
}
- int cHeight = av.getAlignment().getHeight() * av.charHeight + hgap
+ int cHeight = av.getAlignment().getHeight() * av.getCharHeight()
+ + hgap
+ seqCanvas.getAnnotationHeight();
y -= hgap;
@@ -242,45 +245,6 @@ public class SeqPanel extends JPanel implements MouseListener,
return seq;
}
- SequenceFeature[] findFeaturesAtRes(SequenceI sequence, int res)
- {
- Vector tmp = new Vector();
- SequenceFeature[] features = sequence.getSequenceFeatures();
- if (features != null)
- {
- for (int i = 0; i < features.length; i++)
- {
- if (av.getFeaturesDisplayed() == null
- || !av.getFeaturesDisplayed().containsKey(
- features[i].getType()))
- {
- continue;
- }
-
- if (features[i].featureGroup != null
- && seqCanvas.fr.featureGroups != null
- && seqCanvas.fr.featureGroups
- .containsKey(features[i].featureGroup)
- && !((Boolean) seqCanvas.fr.featureGroups
- .get(features[i].featureGroup)).booleanValue())
- {
- continue;
- }
-
- if ((features[i].getBegin() <= res)
- && (features[i].getEnd() >= res))
- {
- tmp.addElement(features[i]);
- }
- }
- }
-
- features = new SequenceFeature[tmp.size()];
- tmp.copyInto(features);
-
- return features;
- }
-
void endEditing()
{
if (editCommand != null && editCommand.getSize() > 0)
@@ -380,7 +344,7 @@ public class SeqPanel extends JPanel implements MouseListener,
}
endEditing();
- if (av.wrapAlignment)
+ if (av.getWrapAlignment())
{
ap.scrollToWrappedVisible(seqCanvas.cursorX);
}
@@ -394,7 +358,7 @@ public class SeqPanel extends JPanel implements MouseListener,
{
ap.scrollUp(false);
}
- if (!av.wrapAlignment)
+ if (!av.getWrapAlignment())
{
while (seqCanvas.cursorX < av.getColumnSelection()
.adjustForHiddenColumns(av.startRes))
@@ -728,11 +692,6 @@ public class SeqPanel extends JPanel implements MouseListener,
{
if (groups[g].getStartRes() <= res && groups[g].getEndRes() >= res)
{
- if (tooltipText.length() > 6)
- {
- tooltipText.append("
");
- }
-
if (!groups[g].getName().startsWith("JTreeGroup")
&& !groups[g].getName().startsWith("JGroup"))
{
@@ -748,14 +707,14 @@ public class SeqPanel extends JPanel implements MouseListener,
}
// use aa to see if the mouse pointer is on a
- if (av.showSequenceFeatures)
+ if (av.isShowSequenceFeatures())
{
int rpos;
- SequenceFeature[] features = findFeaturesAtRes(
+ List features = ap.getFeatureRenderer().findFeaturesAtRes(
sequence.getDatasetSequence(),
rpos = sequence.findPosition(res));
seqARep.appendFeatures(tooltipText, rpos, features,
- this.ap.seqPanel.seqCanvas.fr.minmax);
+ this.ap.getSeqPanel().seqCanvas.fr.getMinMax());
}
if (tooltipText.length() == 6) //
{
@@ -764,11 +723,13 @@ public class SeqPanel extends JPanel implements MouseListener,
}
else
{
- tooltipText.append("");
if (lastTooltip == null
|| !lastTooltip.equals(tooltipText.toString()))
{
- setToolTipText(tooltipText.toString());
+ String formatedTooltipText = JvSwingUtils.wrapTooltip(true,
+ tooltipText.toString());
+ // String formatedTooltipText = tooltipText.toString();
+ setToolTipText(formatedTooltipText);
lastTooltip = tooltipText.toString();
}
@@ -861,7 +822,7 @@ public class SeqPanel extends JPanel implements MouseListener,
{
if (mouseWheelPressed)
{
- int oldWidth = av.charWidth;
+ int oldWidth = av.getCharWidth();
// Which is bigger, left-right or up-down?
if (Math.abs(evt.getY() - lastMousePress.getY()) > Math.abs(evt
@@ -884,25 +845,25 @@ public class SeqPanel extends JPanel implements MouseListener,
}
av.setFont(new Font(av.font.getName(), av.font.getStyle(), fontSize));
- av.charWidth = oldWidth;
+ av.setCharWidth(oldWidth);
ap.fontChanged();
}
else
{
- if (evt.getX() < lastMousePress.getX() && av.charWidth > 1)
+ if (evt.getX() < lastMousePress.getX() && av.getCharWidth() > 1)
{
- av.charWidth--;
+ av.setCharWidth(av.getCharWidth() - 1);
}
else if (evt.getX() > lastMousePress.getX())
{
- av.charWidth++;
+ av.setCharWidth(av.getCharWidth() + 1);
}
ap.paintAlignment(false);
}
FontMetrics fm = getFontMetrics(av.getFont());
- av.validCharWidth = fm.charWidth('M') <= av.charWidth;
+ av.validCharWidth = fm.charWidth('M') <= av.getCharWidth();
lastMousePress = evt.getPoint();
@@ -1190,7 +1151,7 @@ public class SeqPanel extends JPanel implements MouseListener,
}
else
{
- editCommand.appendEdit(EditCommand.INSERT_GAP, groupSeqs,
+ editCommand.appendEdit(Action.INSERT_GAP, groupSeqs,
startres, startres - lastres, av.getAlignment(), true);
}
}
@@ -1206,7 +1167,7 @@ public class SeqPanel extends JPanel implements MouseListener,
}
else
{
- editCommand.appendEdit(EditCommand.DELETE_GAP, groupSeqs,
+ editCommand.appendEdit(Action.DELETE_GAP, groupSeqs,
startres, lastres - startres, av.getAlignment(), true);
}
@@ -1228,7 +1189,7 @@ public class SeqPanel extends JPanel implements MouseListener,
}
else
{
- editCommand.appendEdit(EditCommand.INSERT_GAP, new SequenceI[]
+ editCommand.appendEdit(Action.INSERT_GAP, new SequenceI[]
{ seq }, lastres, startres - lastres, av.getAlignment(), true);
}
}
@@ -1265,7 +1226,7 @@ public class SeqPanel extends JPanel implements MouseListener,
if (max > 0)
{
- editCommand.appendEdit(EditCommand.DELETE_GAP,
+ editCommand.appendEdit(Action.DELETE_GAP,
new SequenceI[]
{ seq }, startres, max, av.getAlignment(), true);
}
@@ -1283,7 +1244,7 @@ public class SeqPanel extends JPanel implements MouseListener,
}
else
{
- editCommand.appendEdit(EditCommand.INSERT_NUC, new SequenceI[]
+ editCommand.appendEdit(Action.INSERT_NUC, new SequenceI[]
{ seq }, lastres, startres - lastres, av.getAlignment(), true);
}
}
@@ -1319,10 +1280,10 @@ public class SeqPanel extends JPanel implements MouseListener,
}
}
- editCommand.appendEdit(EditCommand.DELETE_GAP, seq, blankColumn, 1,
+ editCommand.appendEdit(Action.DELETE_GAP, seq, blankColumn, 1,
av.getAlignment(), true);
- editCommand.appendEdit(EditCommand.INSERT_GAP, seq, j, 1,
+ editCommand.appendEdit(Action.INSERT_GAP, seq, j, 1,
av.getAlignment(), true);
}
@@ -1330,10 +1291,10 @@ public class SeqPanel extends JPanel implements MouseListener,
void deleteChar(int j, SequenceI[] seq, int fixedColumn)
{
- editCommand.appendEdit(EditCommand.DELETE_GAP, seq, j, 1,
+ editCommand.appendEdit(Action.DELETE_GAP, seq, j, 1,
av.getAlignment(), true);
- editCommand.appendEdit(EditCommand.INSERT_GAP, seq, fixedColumn, 1,
+ editCommand.appendEdit(Action.INSERT_GAP, seq, fixedColumn, 1,
av.getAlignment(), true);
}
@@ -1392,21 +1353,21 @@ public class SeqPanel extends JPanel implements MouseListener,
av.setSelectionGroup(null);
}
- SequenceFeature[] features = findFeaturesAtRes(
+ List features = seqCanvas.getFeatureRenderer().findFeaturesAtRes(
sequence.getDatasetSequence(),
sequence.findPosition(findRes(evt)));
- if (features != null && features.length > 0)
+ if (features != null && features.size()> 0)
{
SearchResults highlight = new SearchResults();
- highlight.addResult(sequence, features[0].getBegin(),
- features[0].getEnd());
+ highlight.addResult(sequence, features.get(0).getBegin(),
+ features.get(0).getEnd());
seqCanvas.highlightSearchResults(highlight);
}
- if (features != null && features.length > 0)
+ if (features != null && features.size()> 0)
{
seqCanvas.getFeatureRenderer().amendFeatures(new SequenceI[]
- { sequence }, features, false, ap);
+ { sequence }, features.toArray(new SequenceFeature[features.size()]), false, ap);
seqCanvas.highlightSearchResults(null);
}
@@ -1457,7 +1418,7 @@ public class SeqPanel extends JPanel implements MouseListener,
startWrapBlock = wrappedBlock;
- if (av.wrapAlignment && seq > av.getAlignment().getHeight())
+ if (av.getWrapAlignment() && seq > av.getAlignment().getHeight())
{
JOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager
.getString("label.cannot_edit_annotations_in_wrapped_view"),
@@ -1521,16 +1482,16 @@ public class SeqPanel extends JPanel implements MouseListener,
if (javax.swing.SwingUtilities.isRightMouseButton(evt))
{
- SequenceFeature[] allFeatures = findFeaturesAtRes(
+ List allFeatures = ap.getFeatureRenderer().findFeaturesAtRes(
sequence.getDatasetSequence(), sequence.findPosition(res));
Vector links = new Vector();
- for (int i = 0; i < allFeatures.length; i++)
+ for (SequenceFeature sf:allFeatures)
{
- if (allFeatures[i].links != null)
+ if (sf.links != null)
{
- for (int j = 0; j < allFeatures[i].links.size(); j++)
+ for (int j = 0; j < sf.links.size(); j++)
{
- links.addElement(allFeatures[i].links.elementAt(j));
+ links.addElement(sf.links.elementAt(j));
}
}
}