{
boolean toggleSeqs = !evt.isControlDown();
boolean toggleCols = !evt.isShiftDown();
-
- boolean hide = false;
- SequenceGroup sg = viewport.getSelectionGroup();
- // TODO: document ctrl-shift-h for show visible selected area and fix hack so columns for the current selected region get transferred.
- 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(null);
- sg = viewport.getSelectionGroup();
- toggleSeqs = true;
-
- }
-
- if (sg!=null && sg.getStartRes()>=0 && sg.getStartRes()<=sg.getEndRes()&& (viewport.colSel==null || viewport.colSel.getSelected()==null || viewport.colSel.getSelected().size()==0))
- {
- // synthesize a column selection if none exists. this happens if a single region has been selected rather than whole columns.
- if (viewport.colSel==null)
- {
- viewport.colSel = new ColumnSelection();
- }
- for (int cspos = sg.getStartRes(); cspos<=sg.getEndRes(); cspos++) {
- viewport.colSel.addElement(cspos);
- }
- }
- // finally invert the column selection and get the new sequence selection.
- invertColSel_actionPerformed(null);
- toggleCols = true;
- }
- }
-
- if (toggleSeqs)
- {
- if (sg != null
- && sg.getSize() != viewport.alignment.getHeight())
- {
- hideSelSequences_actionPerformed(null);
- hide = true;
- }
- else if (!(toggleCols && viewport.colSel.getSelected().size() > 0))
- {
- showAllSeqs_actionPerformed(null);
- }
- }
-
- if (toggleCols)
- {
- if (viewport.colSel.getSelected().size() > 0)
- {
- hideSelColumns_actionPerformed(null);
- if (!toggleSeqs)
- {
- viewport.selectionGroup = sg;
- }
- }
- else if (!hide)
- {
- showAllColumns_actionPerformed(null);
- }
- }
- break;
+ toggleHiddenRegions(toggleSeqs,toggleCols);
+ break;
}
case KeyEvent.VK_PAGE_UP:
if (viewport.wrapAlignment)
showTranslation.setVisible(nucleotide);
conservationMenuItem.setEnabled(!nucleotide);
modifyConservation.setEnabled(!nucleotide);
-
+ showGroupConservation.setEnabled(!nucleotide);
// Remember AlignFrame always starts as protein
if (!nucleotide)
{
showUnconservedMenuItem.setSelected(av.showUnconserved);
showGroupConsensus.setSelected(av.showGroupConsensus);
showGroupConservation.setSelected(av.showGroupConservation);
+ showConsensusHistogram.setSelected(av.showConsensusHistogram);
+ showSequenceLogo.setSelected(av.showSequenceLogo);
setColourSelected(ColourSchemeProperty.getColourName(av
.getGlobalColourScheme()));
{
if (fileName != null)
{
+ // TODO: work out how to recover feature settings for correct view(s) when file is reloaded.
if (currentFileFormat.equals("Jalview"))
{
JInternalFrame[] frames = Desktop.desktop.getAllFrames();
protocol, currentFileFormat);
newframe.setBounds(bounds);
-
+ if (featureSettings!=null && featureSettings.isShowing()) {
+ final Rectangle fspos = featureSettings.frame.getBounds();
+ // TODO: need a 'show feature settings' function that takes bounds - need to refactor Desktop.addFrame
+ newframe.featureSettings_actionPerformed(null);
+ final FeatureSettings nfs = newframe.featureSettings;
+ SwingUtilities.invokeLater(new Runnable() {
+ public void run()
+ {
+ nfs.frame.setBounds(fspos);
+ }
+ });
+ this.featureSettings.close();
+ this.featureSettings=null;
+ }
this.closeMenuItem_actionPerformed(true);
}
}
viewport.hideAllSelectedSeqs();
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(null);
+ sg = viewport.getSelectionGroup();
+ toggleSeqs = true;
+
+ }
+ viewport.expandColSelection(sg,true);
+ // finally invert the column selection and get the new sequence selection.
+ invertColSel_actionPerformed(null);
+ toggleCols = true;
+ }
+ }
+
+ if (toggleSeqs)
+ {
+ if (sg != null
+ && sg.getSize() != viewport.alignment.getHeight())
+ {
+ hideSelSequences_actionPerformed(null);
+ hide = true;
+ }
+ else if (!(toggleCols && viewport.colSel.getSelected().size() > 0))
+ {
+ showAllSeqs_actionPerformed(null);
+ }
+ }
+
+ if (toggleCols)
+ {
+ if (viewport.colSel.getSelected().size() > 0)
+ {
+ hideSelColumns_actionPerformed(null);
+ if (!toggleSeqs)
+ {
+ viewport.selectionGroup = sg;
+ }
+ }
+ else if (!hide)
+ {
+ showAllColumns_actionPerformed(null);
+ }
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see jalview.jbgui.GAlignFrame#hideAllButSelection_actionPerformed(java.awt.event.ActionEvent)
+ */
+ public void hideAllButSelection_actionPerformed(ActionEvent e)
+ {
+ toggleHiddenRegions(false, false);
+ }
+
+ /* (non-Javadoc)
+ * @see jalview.jbgui.GAlignFrame#hideAllSelection_actionPerformed(java.awt.event.ActionEvent)
+ */
+ public void hideAllSelection_actionPerformed(ActionEvent e)
+ {
+ SequenceGroup sg = viewport.getSelectionGroup();
+ viewport.expandColSelection(sg,false);
+ viewport.hideAllSelectedSeqs();
+ viewport.hideSelectedColumns();
+ alignPanel.paintAlignment(true);
+ }
+
+ /* (non-Javadoc)
+ * @see jalview.jbgui.GAlignFrame#showAllhidden_actionPerformed(java.awt.event.ActionEvent)
+ */
+ public void showAllhidden_actionPerformed(ActionEvent e)
+ {
+ viewport.showAllHiddenColumns();
+ viewport.showAllHiddenSeqs();
+ alignPanel.paintAlignment(true);
+ }
public void hideSelColumns_actionPerformed(ActionEvent e)
{
}
else
{
- // are the sequences aligned?
- if (!viewport.alignment.isAligned())
+ // are the visible sequences aligned?
+ if (!viewport.alignment.isAligned(false))
{
JOptionPane
.showMessageDialog(
// jobs
// TODO: viewport.alignment.isAligned is a global state - the local
// selection may well be aligned - we preserve 2.0.8 behaviour for moment.
- if (!viewport.alignment.isAligned())
+ if (!viewport.alignment.isAligned(false))
{
seqs.setSequences(new SeqCigar[]
{ seqs.getSequences()[0] });
.getServiceClient(sh);
impl.attachWSMenuEntry(seqsrchmenu, this);
}
- // finally, add the whole shebang onto the webservices menu
wsmenu.add(seqsrchmenu);
}
+ // finally, add the whole shebang onto the webservices menu
resetWebServiceMenu();
for (int i = 0, j = wsmenu.size(); i < j; i++)
{
{
webService.removeAll();
build_fetchdbmenu(webService);
+ build_urlServiceMenu(webService);
+ }
+
+ /**
+ * construct any groupURL type service menu entries.
+ * @param webService
+ */
+ private void build_urlServiceMenu(JMenu webService)
+ {
+ jalview.ws.EnfinEnvision2OneWay.getInstance().attachWSMenuEntry(webService, this);
}
/*
// update the min/max ranges where necessary
alignPanel.seqPanel.seqCanvas.fr.findAllFeatures(true);
}
+ if (featureSettings!=null)
+ {
+ featureSettings.setTableData();
+ }
alignPanel.paintAlignment(true);
}
protected void showGroupConsensus_actionPerformed(ActionEvent e)
{
viewport.setShowGroupConsensus(showGroupConsensus.getState());
- alignPanel.updateAnnotation();
+ alignPanel.updateAnnotation(applyAutoAnnotationSettings.getState());
}
protected void showGroupConservation_actionPerformed(ActionEvent e)
{
viewport.setShowGroupConservation(showGroupConservation.getState());
- alignPanel.updateAnnotation();
+ alignPanel.updateAnnotation(applyAutoAnnotationSettings.getState());
+ }
+
+ /* (non-Javadoc)
+ * @see jalview.jbgui.GAlignFrame#showConsensusHistogram_actionPerformed(java.awt.event.ActionEvent)
+ */
+ protected void showConsensusHistogram_actionPerformed(ActionEvent e)
+ {
+ viewport.setShowConsensusHistogram(showConsensusHistogram.getState());
+ alignPanel.updateAnnotation(applyAutoAnnotationSettings.getState());
+ }
+
+ /* (non-Javadoc)
+ * @see jalview.jbgui.GAlignFrame#showConsensusProfile_actionPerformed(java.awt.event.ActionEvent)
+ */
+ protected void showSequenceLogo_actionPerformed(ActionEvent e)
+ {
+ viewport.setShowSequenceLogo(showSequenceLogo.getState());
+ alignPanel.updateAnnotation(applyAutoAnnotationSettings.getState());
+ }
+ protected void applyAutoAnnotationSettings_actionPerformed(ActionEvent e)
+ {
+ alignPanel.updateAnnotation(applyAutoAnnotationSettings.getState());
}
/*