X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSeqPanel.java;h=bf36325be844589ae80057e617fe47c3c138a82f;hb=a9177efb4097815d9a8031aa22700c61a7d6260a;hp=111b4c0112b6fec9a47ad37b7a90535fbb99f171;hpb=ea7aa18440e6140ec7485e6cefdfb1dffb945580;p=jalview.git diff --git a/src/jalview/gui/SeqPanel.java b/src/jalview/gui/SeqPanel.java index 111b4c0..bf36325 100644 --- a/src/jalview/gui/SeqPanel.java +++ b/src/jalview/gui/SeqPanel.java @@ -137,7 +137,7 @@ public class SeqPanel extends JPanel MousePos o = (MousePos) obj; boolean b = (column == o.column && seqIndex == o.seqIndex && annotationIndex == o.annotationIndex); - // System.out.println(obj + (b ? "= " : "!= ") + this); + // jalview.bin.Console.outPrintln(obj + (b ? "= " : "!= ") + this); return b; } @@ -343,6 +343,15 @@ public class SeqPanel extends JPanel } /** + * @param evt + * @return absolute column in alignment nearest to the mouse pointer + */ + int findAlignmentColumn(MouseEvent evt) + { + return findNearestColumn(evt, true); + } + + /** * Returns the aligned sequence position (base 0) at the mouse position, or * the closest visible one *
@@ -354,6 +363,17 @@ public class SeqPanel extends JPanel
*/
int findColumn(MouseEvent evt)
{
+ return findNearestColumn(evt, false);
+ }
+
+ /**
+ * @param nearestColumn
+ * when false returns negative values for out of bound positions - -1
+ * for scale left/right, <-1 if far to right
+ * @return nearest absolute column to mouse pointer
+ */
+ private int findNearestColumn(MouseEvent evt, boolean nearestColumn)
+ {
int res = 0;
int x = evt.getX();
@@ -377,7 +397,14 @@ public class SeqPanel extends JPanel
if (x < 0)
{
// mouse is over left scale
- return -1;
+ if (!nearestColumn)
+ {
+ return -1;
+ }
+ else
+ {
+ x = 0;
+ }
}
int cwidth = seqCanvas.getWrappedCanvasWidth(this.getWidth());
@@ -387,8 +414,15 @@ public class SeqPanel extends JPanel
}
if (x >= cwidth * charWidth)
{
- // mouse is over right scale
- return -1;
+ if (!nearestColumn)
+ {
+ // mouse is over right scale
+ return -1;
+ }
+ else
+ {
+ x = cwidth * charWidth - 1;
+ }
}
wrappedBlock = y / cHeight;
@@ -405,8 +439,14 @@ public class SeqPanel extends JPanel
* rather than right-hand gutter
*/
x = Math.min(x, seqCanvas.getX() + seqCanvas.getWidth());
+ if (nearestColumn)
+ {
+ x = Math.max(x, 0);
+ }
+
res = (x / charWidth) + startRes;
res = Math.min(res, av.getRanges().getEndRes());
+
}
if (av.hasHiddenColumns())
@@ -881,7 +921,7 @@ public class SeqPanel extends JPanel
if (lastMessage == null || !lastMessage.equals(tmp))
{
- // System.err.println("mouseOver Sequence: "+tmp);
+ // jalview.bin.Console.errPrintln("mouseOver Sequence: "+tmp);
ssm.mouseOverSequence(sequence, index, pos, av);
}
lastMessage = tmp;
@@ -1006,7 +1046,7 @@ public class SeqPanel extends JPanel
@Override
public void updateColours(SequenceI seq, int index)
{
- System.out.println("update the seqPanel colours");
+ jalview.bin.Console.outPrintln("update the seqPanel colours");
// repaint();
}
@@ -1148,7 +1188,7 @@ public class SeqPanel extends JPanel
}
if (unshownFeatures > 0)
{
- tooltipText.append("
").append("... ").append("")
+ tooltipText.append("
... ")
.append(MessageManager.formatMessage(
"label.features_not_shown", unshownFeatures))
.append("");
@@ -1175,6 +1215,7 @@ public class SeqPanel extends JPanel
final int column = pos.column;
final int rowIndex = pos.annotationIndex;
+ // TODO - get yOffset for annotation, too
if (column < 0 || !av.getWrapAlignment() || !av.isShowAnnotation()
|| rowIndex < 0)
{
@@ -1183,7 +1224,7 @@ public class SeqPanel extends JPanel
AlignmentAnnotation[] anns = av.getAlignment().getAlignmentAnnotation();
String tooltip = AnnotationPanel.buildToolTip(anns[rowIndex], column,
- anns);
+ anns, 0, av, ap);
if (tooltip == null ? tooltip != lastTooltip
: !tooltip.equals(lastTooltip))
{
@@ -1194,7 +1235,7 @@ public class SeqPanel extends JPanel
}
String msg = AnnotationPanel.getStatusMessage(av.getAlignment(), column,
- anns[rowIndex]);
+ anns[rowIndex], 0, av);
ap.alignFrame.setStatus(msg);
}
@@ -2860,7 +2901,7 @@ public class SeqPanel extends JPanel
if (copycolsel && av.hasHiddenColumns()
&& (av.getAlignment().getHiddenColumns() == null))
{
- System.err.println("Bad things");
+ jalview.bin.Console.errPrintln("Bad things");
}
if (repaint) // always true!
{
@@ -2930,6 +2971,8 @@ public class SeqPanel extends JPanel
* if hidden column selection has changed
*/
ap.paintAlignment(hiddenChanged, hiddenChanged);
+ // propagate any selection changes
+ PaintRefresher.Refresh(ap, av.getSequenceSetId());
return true;
}