X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSeqPanel.java;h=968d302f14a82487df658a927262e80954bb05c7;hb=0b98ba19a0f12809fc43899cf299e0408d30d587;hp=8acdcc63000851657cb5f1c5cb868b390ec05358;hpb=153dd62dc91da13ae732600e6ea55ddbe15eab39;p=jalview.git diff --git a/src/jalview/gui/SeqPanel.java b/src/jalview/gui/SeqPanel.java old mode 100755 new mode 100644 index 8acdcc6..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(); } @@ -198,8 +203,8 @@ public class SeqPanel extends JPanel implements MouseListener, y -= hgap; - seq = Math.min((y % cHeight) / av.getCharHeight(), av.alignment - .getHeight() - 1); + seq = Math.min((y % cHeight) / av.getCharHeight(), + av.alignment.getHeight() - 1); } else { @@ -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); } @@ -688,8 +695,9 @@ public class SeqPanel extends JPanel implements MouseListener, if (av.showSequenceFeatures) { int rpos; - SequenceFeature[] features = findFeaturesAtRes(sequence - .getDatasetSequence(), rpos = sequence.findPosition(res)); + SequenceFeature[] features = findFeaturesAtRes( + sequence.getDatasetSequence(), + rpos = sequence.findPosition(res)); appendFeatures(tooltipText, linkImageURL.toString(), rpos, features, this.ap.seqPanel.seqCanvas.fr.minmax); } @@ -803,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); @@ -937,8 +948,7 @@ public class SeqPanel extends JPanel implements MouseListener, // Which is bigger, left-right or up-down? if (Math.abs(evt.getY() - lastMousePress.getY()) > Math.abs(evt - .getX() - - lastMousePress.getX())) + .getX() - lastMousePress.getX())) { int fontSize = av.font.getSize(); @@ -956,9 +966,7 @@ public class SeqPanel extends JPanel implements MouseListener, fontSize = 1; } - av - .setFont(new Font(av.font.getName(), av.font.getStyle(), - fontSize)); + av.setFont(new Font(av.font.getName(), av.font.getStyle(), fontSize)); av.charWidth = oldWidth; ap.fontChanged(); } @@ -1443,14 +1451,15 @@ public class SeqPanel extends JPanel implements MouseListener, av.setSelectionGroup(null); } - SequenceFeature[] features = findFeaturesAtRes(sequence - .getDatasetSequence(), sequence.findPosition(findRes(evt))); + SequenceFeature[] features = findFeaturesAtRes( + sequence.getDatasetSequence(), + sequence.findPosition(findRes(evt))); if (features != null && features.length > 0) { SearchResults highlight = new SearchResults(); - highlight.addResult(sequence, features[0].getBegin(), features[0] - .getEnd()); + highlight.addResult(sequence, features[0].getBegin(), + features[0].getEnd()); seqCanvas.highlightSearchResults(highlight); } if (features != null && features.length > 0) @@ -1554,8 +1563,8 @@ public class SeqPanel extends JPanel implements MouseListener, if (javax.swing.SwingUtilities.isRightMouseButton(evt)) { - SequenceFeature[] allFeatures = findFeaturesAtRes(sequence - .getDatasetSequence(), sequence.findPosition(res)); + SequenceFeature[] allFeatures = findFeaturesAtRes( + sequence.getDatasetSequence(), sequence.findPosition(res)); Vector links = new Vector(); for (int i = 0; i < allFeatures.length; i++) { @@ -1641,20 +1650,20 @@ 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).resetClustalX( + stretchGroup.getSequences(av.hiddenRepSequences), + stretchGroup.getWidth()); } if (stretchGroup.cs.conservationApplied()) { - SliderPanel.setConservationSlider(ap, stretchGroup.cs, stretchGroup - .getName()); + SliderPanel.setConservationSlider(ap, stretchGroup.cs, + stretchGroup.getName()); } else { - SliderPanel.setPIDSliderSource(ap, stretchGroup.cs, stretchGroup - .getName()); + SliderPanel.setPIDSliderSource(ap, stretchGroup.cs, + stretchGroup.getName()); } } PaintRefresher.Refresh(this, av.getSequenceSetId()); @@ -1876,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()))) { @@ -1883,12 +1893,13 @@ public class SeqPanel extends JPanel implements MouseListener, } // do we want to thread this ? (contention with seqsel and colsel locks, I // suspect) - // 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()) + // rules are: colsel is copied if there is a real intersection between + // sequence selection + boolean repaint = false, copycolsel = true; + // if (!av.isSelectionGroupChanged(false)) { SequenceGroup sgroup = null; - if (seqsel != null) + if (seqsel != null && seqsel.getSize()>0) { if (av.alignment == null) { @@ -1899,10 +1910,11 @@ 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)) + if ((sgroup == null || sgroup.getSize() == 0) + || (colsel == null || colsel.size() == 0)) { // don't copy columns if the region didn't intersect. - copycolsel=false; + copycolsel = false; } } if (sgroup != null && sgroup.getSize() > 0) @@ -1913,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. @@ -1924,6 +1937,7 @@ public class SeqPanel extends JPanel implements MouseListener, if (av.colSel != null) { av.colSel.clear(); + repaint=true; } } else @@ -1938,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))