X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSeqPanel.java;h=968d302f14a82487df658a927262e80954bb05c7;hb=6403068c0c328cfb63af451f7fa1bd568fa0fdd3;hp=7502812c46564d8588f13ddcd907280e5ac5f7a4;hpb=8a6fa9ea9900d0f106529c3f6283e7f9d76dd2cb;p=jalview.git diff --git a/src/jalview/gui/SeqPanel.java b/src/jalview/gui/SeqPanel.java old mode 100755 new mode 100644 index 7502812..968d302 --- a/src/jalview/gui/SeqPanel.java +++ b/src/jalview/gui/SeqPanel.java @@ -33,7 +33,7 @@ import jalview.structure.*; * DOCUMENT ME! * * @author $author$ - * @version $Revision$ + * @version $Revision: 1.130 $ */ public class SeqPanel extends JPanel implements MouseListener, MouseMotionListener, MouseWheelListener, SequenceListener, @@ -123,7 +123,7 @@ public class SeqPanel extends JPanel implements MouseListener, addMouseMotionListener(this); addMouseListener(this); addMouseWheelListener(this); - ssm = StructureSelectionManager.getStructureSelectionManager(); + ssm = StructureSelectionManager.getStructureSelectionManager(Desktop.instance); ssm.addStructureViewerListener(this); ssm.addSelectionListener(this); } @@ -168,6 +168,11 @@ public class SeqPanel extends JPanel implements MouseListener, } else { + if (x>seqCanvas.getWidth()+seqCanvas.getWidth()) + { + // make sure we calculate relative to visible alignment, rather than right-hand gutter + x = seqCanvas.getX()+seqCanvas.getWidth(); + } res = (x / av.getCharWidth()) + av.getStartRes(); } @@ -601,7 +606,7 @@ public class SeqPanel extends JPanel implements MouseListener, if (lastMessage == null || !lastMessage.equals(tmp)) { // System.err.println("mouseOver Sequence: "+tmp); - ssm.mouseOverSequence(sequence, index, pos); + ssm.mouseOverSequence(sequence, index, pos, av); } lastMessage = tmp; } @@ -610,8 +615,10 @@ public class SeqPanel extends JPanel implements MouseListener, { if (av.followHighlight) { - ap.scrollToPosition(results, false); + if (ap.scrollToPosition(results, false)) + { seqCanvas.revalidate(); + } } seqCanvas.highlightSearchResults(results); } @@ -804,17 +811,20 @@ public class SeqPanel extends JPanel implements MouseListener, .getType())) { tmpString = features[i].getDescription(); - int startTag = tmpString.toUpperCase().indexOf(""); + String tmp2up=tmpString.toUpperCase(); + int startTag = tmp2up.indexOf(""); if (startTag > -1) { tmpString = tmpString.substring(startTag + 6); + tmp2up = tmp2up.substring(startTag+6); } - int endTag = tmpString.toUpperCase().indexOf(""); + int endTag = tmp2up.indexOf(""); if (endTag > -1) { tmpString = tmpString.substring(0, endTag); + tmp2up = tmp2up.substring(0, endTag); } - endTag = tmpString.toUpperCase().indexOf(""); + endTag = tmp2up.indexOf(""); if (endTag > -1) { tmpString = tmpString.substring(0, endTag); @@ -1875,6 +1885,7 @@ public class SeqPanel extends JPanel implements MouseListener, // shared between viewports. if (av == source || !av.followSelection + || (av.isSelectionGroupChanged(false) || av.isColSelChanged(false)) || (source instanceof AlignViewport && ((AlignViewport) source) .getSequenceSetId().equals(av.getSequenceSetId()))) { @@ -1885,10 +1896,10 @@ public class SeqPanel extends JPanel implements MouseListener, // rules are: colsel is copied if there is a real intersection between // sequence selection boolean repaint = false, copycolsel = true; - if (av.selectionGroup == null || !av.isSelectionGroupChanged()) + // if (!av.isSelectionGroupChanged(false)) { SequenceGroup sgroup = null; - if (seqsel != null) + if (seqsel != null && seqsel.getSize()>0) { if (av.alignment == null) { @@ -1900,7 +1911,7 @@ public class SeqPanel extends JPanel implements MouseListener, sgroup = seqsel.intersect(av.alignment, (av.hasHiddenRows) ? av.hiddenRepSequences : null); if ((sgroup == null || sgroup.getSize() == 0) - && (colsel == null || colsel.size() == 0)) + || (colsel == null || colsel.size() == 0)) { // don't copy columns if the region didn't intersect. copycolsel = false; @@ -1914,9 +1925,10 @@ public class SeqPanel extends JPanel implements MouseListener, { av.setSelectionGroup(null); } - repaint = av.isSelectionGroupChanged(); + av.isSelectionGroupChanged(true); + repaint = true; } - if (copycolsel && (av.colSel == null || !av.isColSelChanged())) + if (copycolsel) { // the current selection is unset or from a previous message // so import the new colsel. @@ -1925,6 +1937,7 @@ public class SeqPanel extends JPanel implements MouseListener, if (av.colSel != null) { av.colSel.clear(); + repaint=true; } } else @@ -1939,7 +1952,8 @@ public class SeqPanel extends JPanel implements MouseListener, av.colSel.setElementsFrom(colsel); } } - repaint |= av.isColSelChanged(); + av.isColSelChanged(true); + repaint = true; } if (copycolsel && av.hasHiddenColumns && (av.colSel == null || av.colSel.getHiddenColumns() == null))