X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSeqPanel.java;h=db7aa36e3bb6684aba6d76cdf755c18764111f2b;hb=3965e9e3bc4ca05dcc82b8dc72c380f208c9a1e6;hp=36fb052ed0eabc3147587fd0d26d1cb70b176887;hpb=134576f5b34894218bdc4c5ce5e27fa18ad973bd;p=jalview.git diff --git a/src/jalview/gui/SeqPanel.java b/src/jalview/gui/SeqPanel.java index 36fb052..db7aa36 100644 --- a/src/jalview/gui/SeqPanel.java +++ b/src/jalview/gui/SeqPanel.java @@ -35,6 +35,7 @@ import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; import jalview.io.SequenceAnnotationReport; +import jalview.renderer.ResidueShaderI; import jalview.schemes.ResidueProperties; import jalview.structure.SelectionListener; import jalview.structure.SelectionSource; @@ -60,7 +61,6 @@ import java.awt.event.MouseWheelListener; import java.util.ArrayList; import java.util.List; -import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.SwingUtilities; import javax.swing.ToolTipManager; @@ -209,7 +209,7 @@ public class SeqPanel extends JPanel implements MouseListener, } wrappedBlock = y / cHeight; - wrappedBlock += av.getStartRes() / cwidth; + wrappedBlock += av.getRanges().getStartRes() / cwidth; res = wrappedBlock * cwidth + x / av.getCharWidth(); @@ -222,11 +222,11 @@ public class SeqPanel extends JPanel implements MouseListener, // right-hand gutter x = seqCanvas.getX() + seqCanvas.getWidth(); } - res = (x / av.getCharWidth()) + av.getStartRes(); - if (res > av.getEndRes()) + res = (x / av.getCharWidth()) + av.getRanges().getStartRes(); + if (res > av.getRanges().getEndRes()) { // moused off right - res = av.getEndRes(); + res = av.getRanges().getEndRes(); } } @@ -262,7 +262,9 @@ public class SeqPanel extends JPanel implements MouseListener, } else { - seq = Math.min((y / av.getCharHeight()) + av.getStartSeq(), av + seq = Math.min((y / av.getCharHeight()) + + av.getRanges().getStartSeq(), + av .getAlignment().getHeight() - 1); } @@ -385,18 +387,18 @@ public class SeqPanel extends JPanel implements MouseListener, } else { - while (seqCanvas.cursorY < av.startSeq) + while (seqCanvas.cursorY < av.getRanges().getStartSeq()) { ap.scrollUp(true); } - while (seqCanvas.cursorY + 1 > av.endSeq) + while (seqCanvas.cursorY + 1 > av.getRanges().getEndSeq()) { ap.scrollUp(false); } if (!av.getWrapAlignment()) { while (seqCanvas.cursorX < av.getColumnSelection() - .adjustForHiddenColumns(av.startRes)) + .adjustForHiddenColumns(av.getRanges().getStartRes())) { if (!ap.scrollRight(false)) { @@ -404,7 +406,7 @@ public class SeqPanel extends JPanel implements MouseListener, } } while (seqCanvas.cursorX > av.getColumnSelection() - .adjustForHiddenColumns(av.endRes)) + .adjustForHiddenColumns(av.getRanges().getEndRes())) { if (!ap.scrollRight(true)) { @@ -1566,10 +1568,10 @@ public class SeqPanel extends JPanel implements MouseListener, if (av.getWrapAlignment() && seq > av.getAlignment().getHeight()) { - JOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager + JvOptionPane.showInternalMessageDialog(Desktop.desktop, MessageManager .getString("label.cannot_edit_annotations_in_wrapped_view"), MessageManager.getString("label.wrapped_view_no_edit"), - JOptionPane.WARNING_MESSAGE); + JvOptionPane.WARNING_MESSAGE); return; } @@ -1587,42 +1589,15 @@ public class SeqPanel extends JPanel implements MouseListener, stretchGroup = av.getSelectionGroup(); - if (stretchGroup == null) + if (stretchGroup == null || !stretchGroup.contains(sequence, res)) { - stretchGroup = av.getAlignment().findGroup(sequence); - - if ((stretchGroup != null) && (res > stretchGroup.getStartRes()) - && (res < stretchGroup.getEndRes())) + stretchGroup = av.getAlignment().findGroup(sequence, res); + if (stretchGroup != null) { + // only update the current selection if the popup menu has a group to + // focus on av.setSelectionGroup(stretchGroup); } - else - { - stretchGroup = null; - } - } - else if (!stretchGroup.getSequences(null).contains(sequence) - || (stretchGroup.getStartRes() > res) - || (stretchGroup.getEndRes() < res)) - { - stretchGroup = null; - - SequenceGroup[] allGroups = av.getAlignment().findAllGroups(sequence); - - if (allGroups != null) - { - for (int i = 0; i < allGroups.length; i++) - { - if ((allGroups[i].getStartRes() <= res) - && (allGroups[i].getEndRes() >= res)) - { - stretchGroup = allGroups[i]; - break; - } - } - } - - av.setSelectionGroup(stretchGroup); } if (evt.isPopupTrigger()) // Mac: mousePressed @@ -1663,15 +1638,16 @@ public class SeqPanel extends JPanel implements MouseListener, if (av.getConservationSelected()) { - SliderPanel.setConservationSlider(ap, av.getGlobalColourScheme(), - "Background"); + SliderPanel.setConservationSlider(ap, av.getResidueShading(), + ap.getViewName()); } if (av.getAbovePIDThreshold()) { - SliderPanel.setPIDSliderSource(ap, av.getGlobalColourScheme(), - "Background"); + SliderPanel.setPIDSliderSource(ap, av.getResidueShading(), + ap.getViewName()); } + // TODO: stretchGroup will always be not null. Is this a merge error ? if ((stretchGroup != null) && (stretchGroup.getEndRes() == res)) { // Edit end res position of selected group @@ -1741,15 +1717,15 @@ public class SeqPanel extends JPanel implements MouseListener, stretchGroup.cs.alignmentChanged(stretchGroup, av.getHiddenRepSequences()); + ResidueShaderI groupColourScheme = stretchGroup.getGroupColourScheme(); + String name = stretchGroup.getName(); if (stretchGroup.cs.conservationApplied()) { - SliderPanel.setConservationSlider(ap, stretchGroup.cs, - stretchGroup.getName()); + SliderPanel.setConservationSlider(ap, groupColourScheme, name); } - else + if (stretchGroup.cs.getThreshold() > 0) { - SliderPanel.setPIDSliderSource(ap, stretchGroup.cs, - stretchGroup.getName()); + SliderPanel.setPIDSliderSource(ap, groupColourScheme, name); } } PaintRefresher.Refresh(this, av.getSequenceSetId()); @@ -1798,9 +1774,9 @@ public class SeqPanel extends JPanel implements MouseListener, changeStartRes = true; } - if (res < av.getStartRes()) + if (res < av.getRanges().getStartRes()) { - res = av.getStartRes(); + res = av.getRanges().getStartRes(); } if (changeEndRes) @@ -1934,13 +1910,15 @@ public class SeqPanel extends JPanel implements MouseListener, { if (evt != null) { - if (mouseDragging && (evt.getY() < 0) && (av.getStartSeq() > 0)) + if (mouseDragging && (evt.getY() < 0) + && (av.getRanges().getStartSeq() > 0)) { running = ap.scrollUp(true); } if (mouseDragging && (evt.getY() >= getHeight()) - && (av.getAlignment().getHeight() > av.getEndSeq())) + && (av.getAlignment().getHeight() > av.getRanges() + .getEndSeq())) { running = ap.scrollUp(false); }