{
boolean toggleSeqs = !evt.isControlDown();
boolean toggleCols = !evt.isShiftDown();
- boolean hide = false;
- SequenceGroup sg = viewport.getSelectionGroup();
-
- if (toggleSeqs)
- {
- if (sg != null && sg.getSize() != viewport.alignment.getHeight())
- {
- hide = true;
- viewport.hideAllSelectedSeqs();
- }
- else if (!(toggleCols && viewport.colSel.getSelected().size() > 0))
- {
- viewport.showAllHiddenSeqs();
- }
- }
-
- if (toggleCols)
- {
- if (viewport.colSel.getSelected().size() > 0)
- {
- viewport.hideSelectedColumns();
- if (!toggleSeqs)
- {
- viewport.selectionGroup = sg;
- }
- }
- else if (!hide)
- {
- viewport.showAllHiddenColumns();
- }
- }
+ toggleHiddenRegions(toggleSeqs, toggleCols);
break;
}
{
if (evt.isAltDown())
{
- viewport.invertColumnSelection();
+ invertColSel_actionPerformed();
}
else
{
- this.invertSequenceMenuItem_actionPerformed();
+ invertSequenceMenuItem_actionPerformed();
}
}
break;
}
alignPanel.paintAlignment(true);
}
+ /**
+ * called by key handler and the hide all/show all menu items
+ * @param toggleSeqs
+ * @param toggleCols
+ */
+ private void toggleHiddenRegions(boolean toggleSeqs,
+ boolean toggleCols)
+ {
+ boolean hide = false;
+ SequenceGroup sg = viewport.getSelectionGroup();
+ if (!toggleSeqs && !toggleCols)
+ {
+ // Hide everything by the current selection - this is a hack - we do the
+ // invert and then hide
+ // first check that there will be visible columns after the invert.
+ if ((viewport.colSel != null
+ && viewport.colSel.getSelected() != null && viewport.colSel
+ .getSelected().size() > 0)
+ || (sg != null && sg.getSize() > 0 && sg.getStartRes() <= sg
+ .getEndRes()))
+ {
+ // now invert the sequence set, if required - empty selection implies
+ // that no hiding is required.
+ if (sg != null)
+ {
+ invertSequenceMenuItem_actionPerformed();
+ sg = viewport.getSelectionGroup();
+ toggleSeqs = true;
+
+ }
+ viewport.expandColSelection(sg, true);
+ // finally invert the column selection and get the new sequence
+ // selection and indicate it should be hidden.
+ invertColSel_actionPerformed();
+ toggleCols = true;
+ }
+ }
+
+ if (toggleSeqs)
+ {
+ if (sg != null && sg.getSize() != viewport.alignment.getHeight())
+ {
+ hide = true;
+ viewport.hideAllSelectedSeqs();
+ }
+ else if (!(toggleCols && viewport.colSel.getSelected().size() > 0))
+ {
+ viewport.showAllHiddenSeqs();
+ }
+ }
+ if (toggleCols)
+ {
+ if (viewport.colSel.getSelected().size() > 0)
+ {
+ viewport.hideSelectedColumns();
+ if (!toggleSeqs)
+ {
+ viewport.selectionGroup = sg;
+ }
+ }
+ else if (!hide)
+ {
+ viewport.showAllHiddenColumns();
+ }
+ }
+ }
public void keyReleased(KeyEvent evt)
{
}
else if (source == showSeqs)
{
viewport.showAllHiddenSeqs();
+ alignPanel.paintAlignment(true);
}
else if (source == hideColumns)
{
&& viewport.getSelectionGroup() != null)
{
viewport.hideAllSelectedSeqs();
+ alignPanel.paintAlignment(true);
+ }
+ else if (source == hideAllButSelection) {
+ toggleHiddenRegions(false,false);
+ alignPanel.paintAlignment(true);
+ }
+ else if (source == hideAllSelection) {
+ SequenceGroup sg = viewport.getSelectionGroup();
+ viewport.expandColSelection(sg, false);
+ viewport.hideAllSelectedSeqs();
+ viewport.hideSelectedColumns();
+ alignPanel.paintAlignment(true);
+ }
+ else if (source == showAllHidden) {
+ viewport.showAllHiddenColumns();
+ viewport.showAllHiddenSeqs();
+ alignPanel.paintAlignment(true);
}
else if (source == featureSettings)
{
PaintRefresher.Refresh(alignPanel, viewport.getSequenceSetId());
}
+ public void invertColSel_actionPerformed()
+ {
+ viewport.invertColumnSelection();
+ alignPanel.paintAlignment(true);
+ PaintRefresher.Refresh(alignPanel, viewport.getSequenceSetId());
+ }
void trimAlignment(boolean trimLeft)
{
menu2.setLabel("Hide");
hideColumns.setLabel("Selected Columns");
hideSequences.setLabel("Selected Sequences");
+ hideAllButSelection.setLabel("All but Selected Region (Shift+Ctrl+H)");
+ hideAllSelection.setLabel("Selected Region");
+ showAllHidden.setLabel("All Sequences and Columns");
invertColSel.addActionListener(this);
showColumns.addActionListener(this);
showSeqs.addActionListener(this);
hideColumns.addActionListener(this);
hideSequences.addActionListener(this);
+ hideAllButSelection.addActionListener(this);
+ hideAllSelection.addActionListener(this);
+ showAllHidden.addActionListener(this);
formatMenu.setLabel("Format");
selectMenu.setLabel("Select");
newView.setLabel("New View");
helpMenu.add(about);
menu1.add(showColumns);
menu1.add(showSeqs);
+ menu1.add(showAllHidden);
menu2.add(hideColumns);
menu2.add(hideSequences);
+ menu2.add(hideAllSelection);
+ menu2.add(hideAllButSelection);
formatMenu.add(font);
formatMenu.add(seqLimits);
formatMenu.add(wrapMenuItem);
MenuItem hideSequences = new MenuItem();
+ MenuItem hideAllButSelection = new MenuItem();
+ MenuItem hideAllSelection = new MenuItem();
+ MenuItem showAllHidden = new MenuItem();
+
Menu formatMenu = new Menu();
Menu selectMenu = new Menu();