X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FIdPanel.java;h=3fff67b789d1556e4a91f1b278f34d45dbdfea18;hb=95600b03ceeaf7162219dfa9b0a6bed432228b60;hp=46e5f147c829351d0c59e63c5ded5bf2d5f64227;hpb=3da878124135ff033f42d19d8733891b09e953cd;p=jalview.git diff --git a/src/jalview/gui/IdPanel.java b/src/jalview/gui/IdPanel.java index 46e5f14..3fff67b 100755 --- a/src/jalview/gui/IdPanel.java +++ b/src/jalview/gui/IdPanel.java @@ -20,26 +20,12 @@ */ package jalview.gui; -import jalview.datamodel.AlignmentAnnotation; -import jalview.datamodel.Sequence; -import jalview.datamodel.SequenceFeature; -import jalview.datamodel.SequenceGroup; -import jalview.datamodel.SequenceI; -import jalview.gui.SeqPanel.MousePos; -import jalview.io.SequenceAnnotationReport; -import jalview.util.MessageManager; -import jalview.util.Platform; -import jalview.viewmodel.AlignmentViewport; -import jalview.viewmodel.ViewportRanges; - import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; -import java.awt.event.MouseWheelEvent; -import java.awt.event.MouseWheelListener; import java.util.List; import javax.swing.JPanel; @@ -48,15 +34,23 @@ import javax.swing.SwingUtilities; import javax.swing.Timer; import javax.swing.ToolTipManager; +import jalview.datamodel.AlignmentAnnotation; +import jalview.datamodel.Sequence; +import jalview.datamodel.SequenceGroup; +import jalview.datamodel.SequenceI; +import jalview.gui.SeqPanel.MousePos; +import jalview.io.SequenceAnnotationReport; +import jalview.util.MessageManager; +import jalview.util.Platform; +import jalview.viewmodel.AlignmentViewport; +import jalview.viewmodel.ViewportRanges; + /** * This panel hosts alignment sequence ids and responds to mouse clicks on them, * as well as highlighting ids matched by a search from the Find menu. - * - * @author $author$ - * @version $Revision$ */ public class IdPanel extends JPanel - implements MouseListener, MouseMotionListener, MouseWheelListener + implements MouseListener, MouseMotionListener { private IdCanvas idCanvas; @@ -66,8 +60,6 @@ public class IdPanel extends JPanel ScrollThread scrollThread = null; - String linkImageURL; - int offy; // int width; @@ -88,13 +80,12 @@ public class IdPanel extends JPanel this.av = av; alignPanel = parent; setIdCanvas(new IdCanvas(av)); - linkImageURL = getClass().getResource("/images/link.gif").toString(); - seqAnnotReport = new SequenceAnnotationReport(linkImageURL); + seqAnnotReport = new SequenceAnnotationReport(true); setLayout(new BorderLayout()); add(getIdCanvas(), BorderLayout.CENTER); addMouseListener(this); addMouseMotionListener(this); - addMouseWheelListener(this); + addMouseWheelListener(alignPanel.getSeqPanel()); ToolTipManager.sharedInstance().registerComponent(this); } @@ -135,8 +126,7 @@ public class IdPanel extends JPanel StringBuilder text = new StringBuilder(); text.append("Sequence ").append(String.valueOf(seq + 1)) - .append(" ID: ") - .append(sequence.getName()); + .append(" ID: ").append(sequence.getName()); alignPanel.alignFrame.setStatus(text.toString()); } } @@ -176,38 +166,6 @@ public class IdPanel extends JPanel } /** - * Response to the mouse wheel by scrolling the alignment panel. - */ - @Override - public void mouseWheelMoved(MouseWheelEvent e) - { - e.consume(); - double wheelRotation = e.getPreciseWheelRotation(); - if (wheelRotation > 0) - { - if (e.isShiftDown()) - { - av.getRanges().scrollRight(true); - } - else - { - av.getRanges().scrollUp(false); - } - } - else if (wheelRotation < 0) - { - if (e.isShiftDown()) - { - av.getRanges().scrollRight(false); - } - else - { - av.getRanges().scrollUp(true); - } - } - } - - /** * Handle a mouse click event. Currently only responds to a double-click. The * action is to try to open a browser window at a URL that searches for the * selected sequence id. The search URL is configured in Preferences | @@ -273,6 +231,7 @@ public class IdPanel extends JPanel if (scrollThread != null) { scrollThread.stopScrolling(); + scrollThread = null; } } @@ -317,14 +276,7 @@ public class IdPanel extends JPanel void startScrolling(boolean up) { scrollThread = new ScrollThread(up); - if (!Platform.isJS()) - { - /* - * Java - run in a new thread - */ - scrollThread.start(); - } - else + if (Platform.isJS()) { /* * for JalviewJS using Swing Timer @@ -348,13 +300,22 @@ public class IdPanel extends JPanel { if (scrollThread == null) { - // finished and nulled itself + // IdPanel.stopScrolling called t.stop(); } } }); t.start(); } + else + /** + * Java only + * + * @j2sIgnore + */ + { + scrollThread.start(); + } } /** @@ -379,7 +340,7 @@ public class IdPanel extends JPanel } MousePos pos = alignPanel.getSeqPanel().findMousePosition(e); - + if (e.isPopupTrigger()) // Mac reports this in mousePressed { showPopupMenu(e, pos); @@ -433,28 +394,12 @@ public class IdPanel extends JPanel } Sequence sq = (Sequence) av.getAlignment().getSequenceAt(pos.seqIndex); - - /* - * build a new links menu based on the current links - * and any non-positional features - */ - List features = null; if (sq != null) { - List nlinks = Preferences.sequenceUrlLinks.getLinksForMenu(); - features = sq.getFeatures().getNonPositionalFeatures(); - for (SequenceFeature sf : features) - { - if (sf.links != null) - { - nlinks.addAll(sf.links); - } + PopupMenu pop = new PopupMenu(alignPanel, sq, + Preferences.getGroupURLLinks()); + pop.show(this, e.getX(), e.getY()); } - } - - PopupMenu pop = new PopupMenu(alignPanel, sq, features, - Preferences.getGroupURLLinks()); - pop.show(this, e.getX(), e.getY()); } /** @@ -549,7 +494,7 @@ public class IdPanel extends JPanel { if (scrollThread != null) { - scrollThread.stopScrolling(); + stopScrolling(); } MousePos pos = alignPanel.getSeqPanel().findMousePosition(e); @@ -618,7 +563,6 @@ public class IdPanel extends JPanel { this.up = up; setName("IdPanel$ScrollThread$" + String.valueOf(up)); - start(); } /**