import javax.swing.ToolTipManager;
import jalview.api.AlignViewportI;
-import jalview.bin.Cache;
+import jalview.bin.Console;
import jalview.commands.EditCommand;
import jalview.commands.EditCommand.Action;
import jalview.commands.EditCommand.Edit;
ToolTipManager.sharedInstance().registerComponent(this);
ToolTipManager.sharedInstance().setInitialDelay(0);
ToolTipManager.sharedInstance().setDismissDelay(10000);
-
-
+
this.av = viewport;
setBackground(Color.white);
return new MousePos(col, seqIndex, annIndex);
}
+
/**
* Returns the aligned sequence position (base 0) at the mouse position, or
* the closest visible one
void moveCursor(int dx, int dy)
{
- moveCursor(dx, dy,false);
+ moveCursor(dx, dy, false);
}
+
void moveCursor(int dx, int dy, boolean nextWord)
{
HiddenColumns hidden = av.getAlignment().getHiddenColumns();
if (nextWord)
{
int maxWidth = av.getAlignment().getWidth();
- int maxHeight=av.getAlignment().getHeight();
- SequenceI seqAtRow = av.getAlignment().getSequenceAt(seqCanvas.cursorY);
+ int maxHeight = av.getAlignment().getHeight();
+ SequenceI seqAtRow = av.getAlignment()
+ .getSequenceAt(seqCanvas.cursorY);
// look for next gap or residue
- boolean isGap = Comparison.isGap(seqAtRow.getCharAt(seqCanvas.cursorX));
- int p = seqCanvas.cursorX,lastP,r=seqCanvas.cursorY,lastR;
+ boolean isGap = Comparison
+ .isGap(seqAtRow.getCharAt(seqCanvas.cursorX));
+ int p = seqCanvas.cursorX, lastP, r = seqCanvas.cursorY, lastR;
do
{
lastP = p;
p = nextVisible(hidden, maxWidth, p, dx);
} while ((dx != 0 ? p != lastP : r != lastR)
&& isGap == Comparison.isGap(seqAtRow.getCharAt(p)));
- seqCanvas.cursorX=p;
- seqCanvas.cursorY=r;
- } else {
+ seqCanvas.cursorX = p;
+ seqCanvas.cursorY = r;
+ }
+ else
+ {
int maxWidth = av.getAlignment().getWidth();
- seqCanvas.cursorX = nextVisible(hidden, maxWidth, seqCanvas.cursorX, dx);
+ seqCanvas.cursorX = nextVisible(hidden, maxWidth, seqCanvas.cursorX,
+ dx);
seqCanvas.cursorY += dy;
}
scrollToVisible(false);
}
- private int nextVisible(HiddenColumns hidden,int maxWidth, int original, int dx)
+ private int nextVisible(HiddenColumns hidden, int maxWidth, int original,
+ int dx)
{
- int newCursorX=original+dx;
+ int newCursorX = original + dx;
if (av.hasHiddenColumns() && !hidden.isVisible(newCursorX))
{
int visx = hidden.absoluteToVisibleColumn(newCursorX - dx);
}
}
newCursorX = (newCursorX < 0) ? 0 : newCursorX;
- if (newCursorX >= maxWidth
- || !hidden.isVisible(newCursorX))
+ if (newCursorX >= maxWidth || !hidden.isVisible(newCursorX))
{
newCursorX = original;
}
return newCursorX;
}
+
/**
* Scroll to make the cursor visible in the viewport.
*
if (av.getAlignment().getHiddenColumns().isVisible(seqCanvas.cursorX))
{
setStatusMessage(av.getAlignment().getSequenceAt(seqCanvas.cursorY),
- seqCanvas.cursorX, seqCanvas.cursorY);
+ seqCanvas.cursorX, seqCanvas.cursorY);
}
if (repaintNeeded)
}
}
-
void setSelectionAreaAtCursor(boolean topLeft)
{
SequenceI sequence = av.getAlignment().getSequenceAt(seqCanvas.cursorY);
SequenceI seq = match.getSequence();
SequenceI ds = seq.getDatasetSequence() == null ? seq
: seq.getDatasetSequence();
- MappedFeatures mf = fr2
- .findComplementFeaturesAtResidue(ds, pos);
+ MappedFeatures mf = fr2.findComplementFeaturesAtResidue(ds, pos);
if (mf != null)
{
for (SequenceFeature sf : mf.features)
{
List<SequenceFeature> features = ap.getFeatureRenderer()
.findFeaturesAtColumn(sequence, column + 1);
- unshownFeatures = seqARep.appendFeatures(tooltipText, pos,
- features, this.ap.getSeqPanel().seqCanvas.fr,
- MAX_TOOLTIP_LENGTH);
+ unshownFeatures = seqARep.appendFeatures(tooltipText, pos, features,
+ this.ap.getSeqPanel().seqCanvas.fr, MAX_TOOLTIP_LENGTH);
/*
* add features in CDS/protein complement at the corresponding
pos);
if (mf != null)
{
- unshownFeatures += seqARep.appendFeatures(tooltipText,
- pos, mf, fr2, MAX_TOOLTIP_LENGTH);
+ unshownFeatures += seqARep.appendFeatures(tooltipText, pos, mf,
+ fr2, MAX_TOOLTIP_LENGTH);
}
}
}
if (!textString.equals(lastTooltip))
{
lastTooltip = textString;
- lastFormattedTooltip = JvSwingUtils.wrapTooltip(true,
- textString);
+ lastFormattedTooltip = JvSwingUtils.wrapTooltip(true, textString);
setToolTipText(lastFormattedTooltip);
}
}
String tooltip = AnnotationPanel.buildToolTip(anns[rowIndex], column,
anns);
- if (!tooltip.equals(lastTooltip))
+ if (tooltip == null ? tooltip != lastTooltip
+ : !tooltip.equals(lastTooltip))
{
lastTooltip = tooltip;
lastFormattedTooltip = tooltip == null ? null
tempTip.setTipText(lastFormattedTooltip);
int tipWidth = (int) tempTip.getPreferredSize().getWidth();
-
- // was x += (w - x < 200) ? -(w / 2) : 5;
+
+ // was x += (w - x < 200) ? -(w / 2) : 5;
x = (x + tipWidth < w ? x + 10 : w - tipWidth);
Point p = new Point(x, y + av.getCharHeight()); // BH 2018 was - 20?
* changed, so selective redraws can be applied (ie. only structures, only
* overview, etc)
*/
- private boolean updateOverviewAndStructs = false; // TODO: refactor to avcontroller
+ private boolean updateOverviewAndStructs = false; // TODO: refactor to
+ // avcontroller
/**
* set if av.getSelectionGroup() refers to a group that is defined on the
* Sequence number (if known), and sequence name.
*/
String seqno = seqIndex == -1 ? "" : " " + (seqIndex + 1);
- text.append("Sequence").append(seqno).append(" ID: ")
- .append(seqName);
+ text.append("Sequence").append(seqno).append(" ID: ").append(seqName);
String residue = null;
String label = null;
if (groupEditing)
{
- message.append("Edit group:");
+ message.append("Edit group:");
label = MessageManager.getString("action.edit_group");
}
else
{
- message.append("Edit sequence: " + seq.getName());
+ message.append("Edit sequence: " + seq.getName());
label = seq.getName();
if (label.length() > 10)
{
{
for (int j = 0; j < startres - editLastRes; j++)
{
- if (!Comparison
- .isGap(groupSeqs[g].getCharAt(fixedRight - j)))
+ if (!Comparison.isGap(groupSeqs[g].getCharAt(fixedRight - j)))
{
blank = false;
break;
* highlight the first feature at the position on the alignment
*/
SearchResultsI highlight = new SearchResults();
- highlight.addResult(sequence, features.get(0).getBegin(), features
- .get(0).getEnd());
+ highlight.addResult(sequence, features.get(0).getBegin(),
+ features.get(0).getEnd());
seqCanvas.highlightSearchResults(highlight, true);
/*
return;
}
- res = Math.min(res, av.getAlignment().getWidth()-1);
+ res = Math.min(res, av.getAlignment().getWidth() - 1);
if (stretchGroup.getEndRes() == res)
{
{
if (av.getAlignment() == null)
{
- Cache.warn("alignviewport av SeqSetId=" + av.getSequenceSetId()
+ Console.warn("alignviewport av SeqSetId=" + av.getSequenceSetId()
+ " ViewId=" + av.getViewId()
+ " 's alignment is NULL! returning immediately.");
return;