selectHMM.setText(MessageManager.getString("label.select_hmm"));
selectHMM.addActionListener(new ActionListener()
{
-
@Override
public void actionPerformed(ActionEvent e)
{
- selectHMM_actionPerformed(e);
+ selectHMM_actionPerformed(sequence);
}
});
add(selectHMM);
}
-
if (alignPanel.av.getSelectionGroup() != null
&& alignPanel.av.getSelectionGroup().getSize() > 1)
{
jMenu1.add(displayNonconserved);
}
-
- protected void selectHMM_actionPerformed(ActionEvent e)
+ protected void selectHMM_actionPerformed(SequenceI seq)
{
- SequenceI hmm = ap.av.getSequenceSelection()[0];
- ap.alignFrame.setSelectedHMMSequence(hmm);
+ // TODO move this to Viewport
+ if (seq.isHMMConsensusSequence())
+ {
+ ap.alignFrame.setSelectedHMMSequence(seq);
+ }
}
/**
protected void hideInsertions_actionPerformed(ActionEvent actionEvent)
{
-
- HiddenColumns hidden = new HiddenColumns();
- BitSet inserts = new BitSet(), mask = new BitSet();
-
- // set mask to preserve existing hidden columns outside selected group
- if (ap.av.hasHiddenColumns())
- {
- ap.av.getAlignment().getHiddenColumns().markHiddenRegions(mask);
- }
+ HiddenColumns hidden = ap.av.getAlignment().getHiddenColumns();
+ BitSet inserts = new BitSet();
boolean markedPopup = false;
// mark inserts in current selection
{
// mark just the columns in the selection group to be hidden
inserts.set(ap.av.getSelectionGroup().getStartRes(),
- ap.av.getSelectionGroup().getEndRes() + 1);
-
- // and clear that part of the mask
- mask.andNot(inserts);
+ ap.av.getSelectionGroup().getEndRes() + 1); // TODO why +1?
// now clear columns without gaps
for (SequenceI sq : ap.av.getSelectionGroup().getSequences())
}
inserts.and(sq.getInsertionsAsBits());
}
- }
- else
- {
- // initially, mark all columns to be hidden
- inserts.set(0, ap.av.getAlignment().getWidth());
-
- // and clear out old hidden regions completely
- mask.clear();
+ hidden.clearAndHideColumns(inserts, ap.av.getSelectionGroup().getStartRes(),
+ ap.av.getSelectionGroup().getEndRes());
}
// now mark for sequence under popup if we haven't already done it
- if (!markedPopup && sequence != null)
+ else if (!markedPopup && sequence != null)
{
- inserts.and(sequence.getInsertionsAsBits());
- }
-
- // finally, preserve hidden regions outside selection
- inserts.or(mask);
+ inserts.or(sequence.getInsertionsAsBits());
- // and set hidden columns accordingly
- hidden.hideMarkedBits(inserts);
-
- ap.av.getAlignment().setHiddenColumns(hidden);
+ // and set hidden columns accordingly
+ hidden.hideColumns(inserts);
+ }
refresh();
}