import jalview.datamodel.ColumnSelection;
import jalview.datamodel.HiddenColumns;
import jalview.datamodel.SequenceGroup;
-import jalview.datamodel.SequenceI;
import jalview.renderer.ScaleRenderer;
import jalview.renderer.ScaleRenderer.ScaleMark;
import jalview.util.MessageManager;
protected void rightMouseButtonPressed(MouseEvent evt, final int res)
{
JPopupMenu pop = new JPopupMenu();
- if (reveal != null)
+
+ /*
+ * grab the hidden range in case mouseMoved nulls it
+ */
+ final int[] hiddenRange = reveal;
+ if (hiddenRange != null)
{
JMenuItem item = new JMenuItem(
MessageManager.getString("label.reveal"));
@Override
public void actionPerformed(ActionEvent e)
{
- av.showColumn(reveal[0]);
+ av.showColumn(hiddenRange[0]);
reveal = null;
+ ap.updateLayout();
ap.paintAlignment(true, true);
av.sendSelection();
}
{
av.showAllHiddenColumns();
reveal = null;
+ ap.updateLayout();
ap.paintAlignment(true, true);
av.sendSelection();
}
av.setSelectionGroup(null);
}
+ ap.updateLayout();
ap.paintAlignment(true, true);
av.sendSelection();
}
}
av.getColumnSelection().addElement(res);
- SequenceGroup sg = new SequenceGroup();
- // try to be as quick as possible
- SequenceI[] iVec = av.getAlignment().getSequencesArray();
- for (int i = 0; i < iVec.length; i++)
- {
- sg.addSequence(iVec[i], false);
- iVec[i] = null;
- }
- iVec = null;
+ SequenceGroup sg = new SequenceGroup(av.getAlignment().getSequences());
sg.setStartRes(res);
sg.setEndRes(res);
}
stretchingGroup = false;
ap.paintAlignment(false, false);
+ av.isSelectionGroupChanged(true);
+ av.isColSelChanged(true);
av.sendSelection();
}
/**
* Action on dragging the mouse in the scale panel is to expand or shrink the
- * selection group range (including any hidden columns that it spans)
+ * selection group range (including any hidden columns that it spans). Note
+ * that the selection is only broadcast at the start of the drag (on
+ * mousePressed) and at the end (on mouseReleased), to avoid overload
+ * redrawing of other views.
*
* @param evt
*/