updateEditMenuBar();
}
- Hashtable progressBars;
+ Hashtable progressBars, progressBarHandlers;
/*
* (non-Javadoc)
if (progressBars == null)
{
progressBars = new Hashtable();
+ progressBarHandlers = new Hashtable();
}
JPanel progressPanel;
{
statusBar.setText(message);
}
-
+ if (progressBarHandlers.contains(new Long(id)))
+ {
+ progressBarHandlers.remove(new Long(id));
+ }
layout.setRows(layout.getRows() - 1);
}
else
setMenusForViewport();
validate();
}
+ public void registerHandler(final long id, final IProgressIndicatorHandler handler)
+ {
+ if (progressBarHandlers==null || !progressBars.contains(new Long(id)))
+ {
+ throw new Error("call setProgressBar before registering the progress bar's handler.");
+ }
+ progressBarHandlers.put(new Long(id), handler);
+ final JPanel progressPanel = (JPanel) progressBars.get(new Long(id));
+ if (handler.canCancel())
+ {
+ JButton cancel = new JButton("Cancel");
+ final IProgressIndicator us=this;
+ cancel.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e)
+ {
+ handler.cancelActivity(id);
+ us.setProgressBar("Cancelled "+((JLabel)progressPanel.getComponent(0)).getText(), id);
+ }
+ });
+ progressPanel.add(cancel, BorderLayout.EAST);
+ }
+ }
/**
*
* @return true if any progress bars are still active
public void padGapsMenuitem_actionPerformed(ActionEvent e)
{
viewport.padGaps = padGapsMenuitem.isSelected();
-
viewport.firePropertyChange("alignment", null, viewport.getAlignment()
.getSequences());
}
-
+
+ //else
+ {
+ // if (justifySeqs>0)
+ {
+ // alignment.justify(justifySeqs!=RIGHT_JUSTIFY);
+ }
+ }
+ //}
+
/**
* DOCUMENT ME!
*
}
/**
- * DOCUMENT ME!
+ * Set or clear 'Show Sequence Features'
*
* @param evt
* DOCUMENT ME!
alignPanel.getOverviewPanel().updateOverviewImage();
}
}
+ /**
+ * Set or clear 'Show Sequence Features'
+ *
+ * @param evt
+ * DOCUMENT ME!
+ */
+ public void showSeqFeaturesHeight_actionPerformed(ActionEvent evt)
+ {
+ viewport.setShowSequenceFeaturesHeight(showSeqFeaturesHeight.isSelected());
+ if (viewport.getShowSequenceFeaturesHeight())
+ {
+ // ensure we're actually displaying features
+ viewport.setShowSequenceFeatures(true);
+ showSeqFeatures.setSelected(true);
+ }
+ alignPanel.paintAlignment(true);
+ if (alignPanel.getOverviewPanel() != null)
+ {
+ alignPanel.getOverviewPanel().updateOverviewImage();
+ }
+ }
/**
* DOCUMENT ME!
addHistoryItem(new OrderCommand("ID Sort", oldOrder, viewport.alignment));
alignPanel.paintAlignment(true);
}
+ /**
+ * DOCUMENT ME!
+ *
+ * @param e
+ * DOCUMENT ME!
+ */
+ public void sortLengthMenuItem_actionPerformed(ActionEvent e)
+ {
+ SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
+ AlignmentSorter.sortByLength(viewport.getAlignment());
+ addHistoryItem(new OrderCommand("Length Sort", oldOrder, viewport.alignment));
+ alignPanel.paintAlignment(true);
+ }
/**
* DOCUMENT ME!
private void resetWebServiceMenu()
{
webService.removeAll();
- // Temporary hack - DBRef Fetcher always top level ws entry.
- JMenuItem rfetch = new JMenuItem("Fetch DB References");
- rfetch
- .setToolTipText("Retrieve and parse sequence database records for the alignment or the currently selected sequences");
- webService.add(rfetch);
- rfetch.addActionListener(new ActionListener()
- {
-
- public void actionPerformed(ActionEvent e)
- {
- new Thread(new Runnable()
- {
-
- public void run()
- {
- new jalview.ws.DBRefFetcher(alignPanel.av
- .getSequenceSelection(), alignPanel.alignFrame)
- .fetchDBRefs(false);
- }
- }).start();
-
- }
-
- });
+ build_fetchdbmenu(webService);
}
/*
}
return false;
}
+ protected void build_fetchdbmenu(JMenu webService) {
+ // Temporary hack - DBRef Fetcher always top level ws entry.
+ // TODO We probably want to store a sequence database checklist in preferences and have checkboxes.. rather than individual sources selected here
+ JMenu rfetch = new JMenu("Fetch DB References");
+ rfetch
+ .setToolTipText("Retrieve and parse sequence database records for the alignment or the currently selected sequences");
+ webService.add(rfetch);
+
+ JMenuItem fetchr = new JMenuItem("Standard Databases");
+ fetchr.setToolTipText("Fetch from EMBL/EMBLCDS or Uniprot/PDB and any selected DAS sources");
+ fetchr.addActionListener(new ActionListener()
+ {
+
+ public void actionPerformed(ActionEvent e)
+ {
+ new Thread(new Runnable()
+ {
+
+ public void run()
+ {
+ new jalview.ws.DBRefFetcher(alignPanel.av
+ .getSequenceSelection(), alignPanel.alignFrame)
+ .fetchDBRefs(false);
+ }
+ }).start();
+
+ }
+
+ });
+ rfetch.add(fetchr);
+ JMenu dfetch = new JMenu();
+ rfetch.add(dfetch);
+ jalview.ws.SequenceFetcher sf = SequenceFetcher.getSequenceFetcherSingleton(this);
+ String[] otherdb = sf.getOrderedSupportedSources();
+ // sf.getDbInstances(jalview.ws.dbsources.DasSequenceSource.class);
+ // jalview.util.QuickSort.sort(otherdb, otherdb);
+ int comp=0,mcomp=15;
+ String mname=null;
+ if (otherdb!=null && otherdb.length>0)
+ {
+ for (int i=0; i<otherdb.length; i++)
+ {
+ String dbname =sf.getSourceProxy(otherdb[i]).getDbName();
+ if (mname == null)
+ {
+ mname = "from '"+dbname+"'";
+ }
+ fetchr = new JMenuItem(otherdb[i]);
+ final String[] dassource = new String[] { otherdb[i] };
+ fetchr.addActionListener(new ActionListener()
+ {
+
+ public void actionPerformed(ActionEvent e)
+ {
+ new Thread(new Runnable()
+ {
+
+ public void run()
+ {
+ new jalview.ws.DBRefFetcher(alignPanel.av
+ .getSequenceSelection(), alignPanel.alignFrame, dassource)
+ .fetchDBRefs(false);
+ }
+ }).start();
+ }
+
+ });
+ fetchr.setToolTipText("Retrieve from "+dbname);
+ dfetch.add(fetchr);
+ if (comp++==mcomp || i==(otherdb.length-1))
+ {
+ dfetch.setText(mname+" to '"+dbname+"'");
+ rfetch.add(dfetch);
+ dfetch = new JMenu();
+ mname = null;
+ comp=0;
+ }
+ }
+ }
+ }
+ /**
+ * Left justify the whole alignment.
+ */
+ protected void justifyLeftMenuItem_actionPerformed(ActionEvent e)
+ {
+ AlignmentI al = viewport.getAlignment();
+ al.justify(false);
+ viewport.firePropertyChange("alignment", null, al);
+ }
+ /**
+ * Right justify the whole alignment.
+ */
+ protected void justifyRightMenuItem_actionPerformed(ActionEvent e)
+ {
+ AlignmentI al = viewport.getAlignment();
+ al.justify(true);
+ viewport.firePropertyChange("alignment", null, al);
+ }
+ public void setShowSeqFeatures(boolean b)
+ {
+ showSeqFeatures.setSelected(true);
+ viewport.setShowSequenceFeatures(true);
+ }
}
class PrintThread extends Thread