Merge remote-tracking branch 'origin/releases/Release_2_10_4_Branch' into merges... merges/JAL-2906_update2_11_from_2_10_4
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Thu, 8 Mar 2018 14:06:44 +0000 (14:06 +0000)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Thu, 8 Mar 2018 14:06:44 +0000 (14:06 +0000)
1  2 
src/jalview/gui/IdPanel.java
src/jalview/gui/SeqPanel.java

@@@ -108,7 -108,8 +108,7 @@@ public class IdPanel extends JPane
        SequenceI sequence = av.getAlignment().getSequenceAt(seq);
        StringBuilder tip = new StringBuilder(64);
        seqAnnotReport.createTooltipAnnotationReport(tip, sequence,
 -              av.isShowDBRefs(), av.isShowNPFeats(),
 -              sp.seqCanvas.fr.getMinMax());
 +              av.isShowDBRefs(), av.isShowNPFeats(), sp.seqCanvas.fr);
        setToolTipText(JvSwingUtils.wrapTooltip(true,
                sequence.getDisplayId(true) + " " + tip.toString()));
      }
    public void mouseWheelMoved(MouseWheelEvent e)
    {
      e.consume();
-     if (e.getWheelRotation() > 0)
+     double wheelRotation = e.getPreciseWheelRotation();
+     if (wheelRotation > 0)
      {
        if (e.isShiftDown())
        {
          av.getRanges().scrollUp(false);
        }
      }
-     else
+     else if (wheelRotation < 0)
      {
        if (e.isShiftDown())
        {
       *  and any non-positional features
       */
      List<String> nlinks = Preferences.sequenceUrlLinks.getLinksForMenu();
 -    for (SequenceFeature sf : sq.getFeatures().getNonPositionalFeatures())
 +    List<SequenceFeature> features = sq.getFeatures().getNonPositionalFeatures();
 +    for (SequenceFeature sf : features)
      {
        if (sf.links != null)
        {
        }
      }
  
 -    PopupMenu pop = new PopupMenu(alignPanel, sq, nlinks,
 +    PopupMenu pop = new PopupMenu(alignPanel, sq, features,
              Preferences.getGroupURLLinks());
      pop.show(this, e.getX(), e.getY());
    }
@@@ -59,6 -59,7 +59,6 @@@ import java.awt.event.MouseListener
  import java.awt.event.MouseMotionListener;
  import java.awt.event.MouseWheelEvent;
  import java.awt.event.MouseWheelListener;
 -import java.util.ArrayList;
  import java.util.Collections;
  import java.util.List;
  
@@@ -75,11 -76,12 +75,11 @@@ import javax.swing.ToolTipManager
  public class SeqPanel extends JPanel
          implements MouseListener, MouseMotionListener, MouseWheelListener,
          SequenceListener, SelectionListener
 -
  {
 -  /** DOCUMENT ME!! */
 +  private static final int MAX_TOOLTIP_LENGTH = 300;
 +
    public SeqCanvas seqCanvas;
  
 -  /** DOCUMENT ME!! */
    public AlignmentPanel ap;
  
    /*
    SearchResultsI lastSearchResults;
  
    /**
 -   * Creates a new SeqPanel object.
 +   * Creates a new SeqPanel object
     * 
 -   * @param avp
 -   *          DOCUMENT ME!
 -   * @param p
 -   *          DOCUMENT ME!
 +   * @param viewport
 +   * @param alignPanel
     */
 -  public SeqPanel(AlignViewport av, AlignmentPanel ap)
 +  public SeqPanel(AlignViewport viewport, AlignmentPanel alignPanel)
    {
      linkImageURL = getClass().getResource("/images/link.gif");
      seqARep = new SequenceAnnotationReport(linkImageURL.toString());
      ToolTipManager.sharedInstance().registerComponent(this);
      ToolTipManager.sharedInstance().setInitialDelay(0);
      ToolTipManager.sharedInstance().setDismissDelay(10000);
 -    this.av = av;
 +    this.av = viewport;
      setBackground(Color.white);
  
 -    seqCanvas = new SeqCanvas(ap);
 +    seqCanvas = new SeqCanvas(alignPanel);
      setLayout(new BorderLayout());
      add(seqCanvas, BorderLayout.CENTER);
  
 -    this.ap = ap;
 +    this.ap = alignPanel;
  
 -    if (!av.isDataset())
 +    if (!viewport.isDataset())
      {
        addMouseMotionListener(this);
        addMouseListener(this);
        addMouseWheelListener(this);
 -      ssm = av.getStructureSelectionManager();
 +      ssm = viewport.getStructureSelectionManager();
        ssm.addStructureViewerListener(this);
        ssm.addSelectionListener(this);
      }
        List<SequenceFeature> features = ap.getFeatureRenderer()
                .findFeaturesAtColumn(sequence, column + 1);
        seqARep.appendFeatures(tooltipText, pos, features,
 -              this.ap.getSeqPanel().seqCanvas.fr.getMinMax());
 +              this.ap.getSeqPanel().seqCanvas.fr);
      }
      if (tooltipText.length() == 6) // <html>
      {
      }
      else
      {
 +      if (tooltipText.length() > MAX_TOOLTIP_LENGTH) // constant
 +      {
 +        tooltipText.setLength(MAX_TOOLTIP_LENGTH);
 +        tooltipText.append("...");
 +      }
        String textString = tooltipText.toString();
        if (lastTooltip == null || !lastTooltip.equals(textString))
        {
    public void mouseWheelMoved(MouseWheelEvent e)
    {
      e.consume();
-     if (e.getWheelRotation() > 0)
+     double wheelRotation = e.getPreciseWheelRotation();
+     if (wheelRotation > 0)
      {
        if (e.isShiftDown())
        {
          av.getRanges().scrollUp(false);
        }
      }
-     else
+     else if (wheelRotation < 0)
      {
        if (e.isShiftDown())
        {
      final int column = findColumn(evt);
      final int seq = findSeq(evt);
      SequenceI sequence = av.getAlignment().getSequenceAt(seq);
 -    List<SequenceFeature> allFeatures = ap.getFeatureRenderer()
 +    List<SequenceFeature> features = ap.getFeatureRenderer()
              .findFeaturesAtColumn(sequence, column + 1);
 -    List<String> links = new ArrayList<>();
 -    for (SequenceFeature sf : allFeatures)
 -    {
 -      if (sf.links != null)
 -      {
 -        for (String link : sf.links)
 -        {
 -          links.add(link);
 -        }
 -      }
 -    }
  
 -    PopupMenu pop = new PopupMenu(ap, null, links);
 +    PopupMenu pop = new PopupMenu(ap, null, features);
      pop.show(this, evt.getX(), evt.getY());
    }