/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1)
+ * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
public class AlignFrame extends GAlignFrame implements DropTargetListener,
IProgressIndicator
{
+
/** DOCUMENT ME!! */
public static final int DEFAULT_WIDTH = 700;
String fileName = null;
/**
- * Creates a new AlignFrame object.
+ * Creates a new AlignFrame object with specific width and height.
*
* @param al
- * DOCUMENT ME!
+ * @param width
+ * @param height
*/
public AlignFrame(AlignmentI al, int width, int height)
{
}
/**
+ * Creates a new AlignFrame object with specific width, height and
+ * sequenceSetId
+ *
+ * @param al
+ * @param width
+ * @param height
+ * @param sequenceSetId
+ */
+ public AlignFrame(AlignmentI al, int width, int height,
+ String sequenceSetId)
+ {
+ this(al, null, width, height, sequenceSetId);
+ }
+
+ /**
+ * Creates a new AlignFrame object with specific width, height and
+ * sequenceSetId
+ *
+ * @param al
+ * @param width
+ * @param height
+ * @param sequenceSetId
+ * @param viewId
+ */
+ public AlignFrame(AlignmentI al, int width, int height,
+ String sequenceSetId, String viewId)
+ {
+ this(al, null, width, height, sequenceSetId, viewId);
+ }
+
+ /**
* new alignment window with hidden columns
*
* @param al
- * AlignmentI
+ * AlignmentI
* @param hiddenColumns
- * ColumnSelection or null
+ * ColumnSelection or null
+ * @param width
+ * Width of alignment frame
+ * @param height
+ * height of frame.
*/
public AlignFrame(AlignmentI al, ColumnSelection hiddenColumns,
int width, int height)
{
- this.setSize(width, height);
- viewport = new AlignViewport(al, hiddenColumns);
+ this(al, hiddenColumns, width, height, null);
+ }
+
+ /**
+ * Create alignment frame for al with hiddenColumns, a specific width and
+ * height, and specific sequenceId
+ *
+ * @param al
+ * @param hiddenColumns
+ * @param width
+ * @param height
+ * @param sequenceSetId
+ * (may be null)
+ */
+ public AlignFrame(AlignmentI al, ColumnSelection hiddenColumns,
+ int width, int height, String sequenceSetId)
+ {
+ this(al, hiddenColumns, width, height, sequenceSetId, null);
+ }
+
+ /**
+ * Create alignment frame for al with hiddenColumns, a specific width and
+ * height, and specific sequenceId
+ *
+ * @param al
+ * @param hiddenColumns
+ * @param width
+ * @param height
+ * @param sequenceSetId
+ * (may be null)
+ * @param viewId
+ * (may be null)
+ */
+ public AlignFrame(AlignmentI al, ColumnSelection hiddenColumns,
+ int width, int height, String sequenceSetId, String viewId)
+ {
+ setSize(width, height);
+ viewport = new AlignViewport(al, hiddenColumns, sequenceSetId, viewId);
alignPanel = new AlignmentPanel(this, viewport);
* Make a new AlignFrame from exisiting alignmentPanels
*
* @param ap
- * AlignmentPanel
+ * AlignmentPanel
* @param av
- * AlignViewport
+ * AlignViewport
*/
public AlignFrame(AlignmentPanel ap)
{
init();
}
+ /**
+ * initalise the alignframe from the underlying viewport data and the
+ * configurations
+ */
void init()
{
if (viewport.conservation == null)
* button functionality.
*
* @param file
- * valid filename
+ * valid filename
* @param format
- * format of file
+ * format of file
*/
public void setFileName(String file, String format)
{
* loading from Jalview2XML.java
*
* @param av
- * AlignViewport
+ * AlignViewport
*/
void setMenusFromViewport(AlignViewport av)
{
annotationPanelMenuItem.setState(av.showAnnotation);
viewBoxesMenuItem.setSelected(av.showBoxes);
viewTextMenuItem.setSelected(av.showText);
-
+ showUnconservedMenuItem.setSelected(av.showUnconserved);
setColourSelected(ColourSchemeProperty.getColourName(av
.getGlobalColourScheme()));
showSeqFeatures.setSelected(av.showSequenceFeatures);
hiddenMarkers.setState(av.showHiddenMarkers);
applyToAllGroups.setState(av.colourAppliesToAllGroups);
+ showNpFeatsMenuitem.setSelected(av.isShowNpFeats());
+ showDbRefsMenuitem.setSelected(av.isShowDbRefs());
setShowProductsEnabled();
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
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 save_actionPerformed(ActionEvent e)
{
if (fileName == null
- || (currentFileFormat == null || jalview.io.AppletFormatAdapter
- .isValidFormat(currentFileFormat, true))
+ || (currentFileFormat == null || !jalview.io.FormatAdapter
+ .isValidIOFormat(currentFileFormat, true))
|| fileName.startsWith("http"))
{
saveAs_actionPerformed(null);
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void saveAs_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void outputText_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void htmlMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void createPNG(File f)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void createEPS(File f)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void printMenuItem_actionPerformed(ActionEvent e)
{
}
/**
- * DOCUMENT ME!
+ * Close the current view or all views in the alignment frame. If the frame
+ * only contains one view then the alignment will be removed from memory.
*
- * @param e
- * DOCUMENT ME!
+ * @param closeAllTabs
*/
public void closeMenuItem_actionPerformed(boolean closeAllTabs)
{
{
if (closeAllTabs)
{
- for (int i = 0; i < alignPanels.size(); i++)
+ if (this.isClosed())
{
- AlignmentPanel ap = (AlignmentPanel) alignPanels.elementAt(i);
- jalview.structure.StructureSelectionManager
- .getStructureSelectionManager()
- .removeStructureViewerListener(ap.seqPanel, null);
- PaintRefresher.RemoveComponent(ap.seqPanel.seqCanvas);
- PaintRefresher.RemoveComponent(ap.idPanel.idCanvas);
- PaintRefresher.RemoveComponent(ap);
- ap.av.alignment = null;
+ // really close all the windows - otherwise wait till
+ // setClosed(true) is called
+ for (int i = 0; i < alignPanels.size(); i++)
+ {
+ AlignmentPanel ap = (AlignmentPanel) alignPanels.elementAt(i);
+ ap.closePanel();
+ }
}
}
else
{
- int index = tabbedPane.getSelectedIndex();
-
- alignPanels.removeElement(alignPanel);
- PaintRefresher.RemoveComponent(alignPanel.seqPanel.seqCanvas);
- PaintRefresher.RemoveComponent(alignPanel.idPanel.idCanvas);
- PaintRefresher.RemoveComponent(alignPanel);
- viewport.alignment = null;
- alignPanel = null;
- viewport = null;
-
- tabbedPane.removeTabAt(index);
- tabbedPane.validate();
-
- if (index == tabbedPane.getTabCount())
- {
- index--;
- }
-
- this.tabSelectionChanged(index);
+ closeView(alignPanel);
}
}
}
/**
+ * close alignPanel2 and shuffle tabs appropriately.
+ *
+ * @param alignPanel2
+ */
+ public void closeView(AlignmentPanel alignPanel2)
+ {
+ int index = tabbedPane.getSelectedIndex();
+ int closedindex = tabbedPane.indexOfComponent(alignPanel2);
+ alignPanels.removeElement(alignPanel2);
+ // Unnecessary
+ // if (viewport == alignPanel2.av)
+ // {
+ // viewport = null;
+ // }
+ alignPanel2.closePanel();
+ alignPanel2 = null;
+
+ tabbedPane.removeTabAt(closedindex);
+ tabbedPane.validate();
+
+ if (index > closedindex || index == tabbedPane.getTabCount())
+ {
+ // modify currently selected tab index if necessary.
+ index--;
+ }
+
+ this.tabSelectionChanged(index);
+ }
+
+ /**
* DOCUMENT ME!
*/
void updateEditMenuBar()
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void undoMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void redoMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param up
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void moveSelectedSequences(boolean up)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void copy_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void pasteNew_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void pasteThis_actionPerformed(ActionEvent e)
{
* Paste contents of Jalview clipboard
*
* @param newAlignment
- * true to paste to a new alignment, otherwise add to this.
+ * true to paste to a new alignment, otherwise add to this.
*/
void paste(boolean newAlignment)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void cut_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void delete_actionPerformed(ActionEvent evt)
{
viewport.alignment));
viewport.setSelectionGroup(null);
+ viewport.sendSelection();
viewport.alignment.deleteGroup(sg);
viewport.firePropertyChange("alignment", null, viewport.getAlignment()
.getSequences());
-
if (viewport.getAlignment().getHeight() < 1)
{
try
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void deleteGroups_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void selectAllSequenceMenuItem_actionPerformed(ActionEvent e)
{
sg.setEndRes(viewport.alignment.getWidth() - 1);
viewport.setSelectionGroup(sg);
+ viewport.sendSelection();
alignPanel.paintAlignment(true);
PaintRefresher.Refresh(alignPanel, viewport.getSequenceSetId());
}
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void deselectAllSequenceMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void invertSequenceMenuItem_actionPerformed(ActionEvent e)
{
}
alignPanel.paintAlignment(true);
-
+ viewport.sendSelection();
PaintRefresher.Refresh(alignPanel, viewport.getSequenceSetId());
}
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void remove2LeftMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void remove2RightMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void removeGappedColumnMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void removeAllGapsMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
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!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void findMenuItem_actionPerformed(ActionEvent e)
{
newap.av.viewName = newViewName;
- addAlignmentPanel(newap, false);
+ addAlignmentPanel(newap, true);
if (alignPanels.size() == 2)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void font_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void seqLimit_actionPerformed(ActionEvent e)
{
alignPanel.paintAlignment(true);
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see jalview.jbgui.GAlignFrame#followHighlight_actionPerformed()
+ */
+ protected void followHighlight_actionPerformed()
+ {
+ if (viewport.followHighlight = this.followHighlightMenuItem.getState())
+ {
+ alignPanel.scrollToPosition(
+ alignPanel.seqPanel.seqCanvas.searchResults, false);
+ }
+ }
+
/**
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void colourTextMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void wrapMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void scaleAbove_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void scaleLeft_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void scaleRight_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void viewBoxesMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void viewTextMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void renderGapsMenuItem_actionPerformed(ActionEvent e)
{
}
/**
- * DOCUMENT ME!
+ * Set or clear 'Show Sequence Features'
*
* @param evt
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void showSeqFeatures_actionPerformed(ActionEvent evt)
{
}
/**
+ * 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!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void annotationPanelMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void overviewMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void noColourmenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void clustalColour_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void zappoColour_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void taylorColour_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void hydrophobicityColour_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void helixColour_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void strandColour_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void turnColour_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void buriedColour_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void nucleotideColour_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void applyToAllGroups_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param cs
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void changeColour(ColourSchemeI cs)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void modifyPID_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void modifyConservation_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void conservationMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void abovePIDThreshold_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void userDefinedColour_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void PIDColour_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void BLOSUM62Colour_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void sortPairwiseMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void sortIDMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * 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!
+ *
+ * @param e
+ * DOCUMENT ME!
*/
public void sortGroupMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void removeRedundancyMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void pairwiseAlignmentMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void PCAMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void averageDistanceTreeMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void neighbourTreeMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void njTreeBlosumMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void avTreeBlosumMenuItem_actionPerformed(ActionEvent e)
{
* DOCUMENT ME!
*
* @param type
- * DOCUMENT ME!
+ * DOCUMENT ME!
* @param pwType
- * DOCUMENT ME!
+ * DOCUMENT ME!
* @param title
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
void NewTreePanel(String type, String pwType, String title)
{
* DOCUMENT ME!
*
* @param title
- * DOCUMENT ME!
+ * DOCUMENT ME!
* @param order
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
public void addSortByOrderMenuItem(String title,
final AlignmentOrder order)
* Add a new sort by annotation score menu item
*
* @param sort
- * the menu to add the option to
+ * the menu to add the option to
* @param scoreLabel
- * the label used to retrieve scores for each sequence on the
- * alignment
+ * the label used to retrieve scores for each sequence on the
+ * alignment
*/
public void addSortByAnnotScoreMenuItem(JMenu sort,
final String scoreLabel)
* modified.
*
* @param treePanel
- * Displayed tree window.
+ * Displayed tree window.
* @param title
- * SortBy menu item title.
+ * SortBy menu item title.
*/
public void buildTreeMenu()
{
* DOCUMENT ME!
*
* @param e
- * DOCUMENT ME!
+ * DOCUMENT ME!
*/
protected void LoadtreeMenuItem_actionPerformed(ActionEvent e)
{
* current alignment view
*
* @param nf
- * the tree
+ * the tree
* @param title
- * tree viewer title
+ * tree viewer title
* @param input
- * Associated alignment input data (or null)
+ * Associated alignment input data (or null)
* @param w
- * width
+ * width
* @param h
- * height
+ * height
* @param x
- * position
+ * position
* @param y
- * position
+ * position
* @return TreePanel handle
*/
public TreePanel ShowNewickTree(NewickFile nf, String title,
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);
}
/*
showProducts.removeAll();
final boolean dna = viewport.getAlignment().isNucleotide();
final Alignment ds = dataset;
- String[] ptypes = CrossRef.findSequenceXrefTypes(dna, selection,
- dataset);
+ String[] ptypes = (selection == null || selection.length == 0) ? null
+ : CrossRef.findSequenceXrefTypes(dna, selection, dataset);
// Object[] prods =
// CrossRef.buildXProductsList(viewport.getAlignment().isNucleotide(),
// selection, dataset, true);
}
Alignment al = new Alignment(sprods);
AlignedCodonFrame[] cf = prods.getCodonFrames();
+ al.setDataset(ds);
for (int s = 0; cf != null && s < cf.length; s++)
{
al.addCodonFrame(cf[s]);
cf[s] = null;
}
- al.setDataset(ds);
AlignFrame naf = new AlignFrame(al, DEFAULT_WIDTH,
DEFAULT_HEIGHT);
String newtitle = "" + ((fdna) ? "Proteins " : "Nucleotides ")
* Try to load a features file onto the alignment.
*
* @param file
- * contents or path to retrieve file
+ * contents or path to retrieve file
* @param type
- * access mode of file (see jalview.io.AlignFile)
+ * access mode of file (see jalview.io.AlignFile)
* @return true if features file was parsed corectly.
*/
public boolean parseFeaturesFile(String file, String type)
{
viewport.showSequenceFeatures = true;
showSeqFeatures.setSelected(true);
+ if (alignPanel.seqPanel.seqCanvas.fr != null)
+ {
+ // update the min/max ranges where necessary
+ alignPanel.seqPanel.seqCanvas.fr.findAllFeatures(true);
+ }
alignPanel.paintAlignment(true);
}
* AlignFrame.
*
* @param file
- * either a filename or a URL string.
+ * either a filename or a URL string.
*/
public void loadJalviewDataFile(String file)
{
buildSortByAnnotationScoresMenu();
}
}
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * jalview.jbgui.GAlignFrame#showDbRefs_actionPerformed(java.awt.event.ActionEvent
+ * )
+ */
+ protected void showDbRefs_actionPerformed(ActionEvent e)
+ {
+ viewport.setShowDbRefs(showDbRefsMenuitem.isSelected());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @seejalview.jbgui.GAlignFrame#showNpFeats_actionPerformed(java.awt.event.
+ * ActionEvent)
+ */
+ protected void showNpFeats_actionPerformed(ActionEvent e)
+ {
+ viewport.setShowNpFeats(showNpFeatsMenuitem.isSelected());
+ }
+
+ /**
+ * find the viewport amongst the tabs in this alignment frame and close that
+ * tab
+ *
+ * @param av
+ */
+ public boolean closeView(AlignViewport av)
+ {
+ if (viewport == av)
+ {
+ this.closeMenuItem_actionPerformed(false);
+ return true;
+ }
+ Component[] comp = tabbedPane.getComponents();
+ for (int i = 0; comp != null && i < comp.length; i++)
+ {
+ if (comp[i] instanceof AlignmentPanel)
+ {
+ if (((AlignmentPanel) comp[i]).av == av)
+ {
+ // close the view.
+ closeView((AlignmentPanel) comp[i]);
+ return true;
+ }
+ }
+ }
+ 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);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * jalview.jbgui.GAlignFrame#showUnconservedMenuItem_actionPerformed(java.
+ * awt.event.ActionEvent)
+ */
+ protected void showUnconservedMenuItem_actionPerformed(ActionEvent e)
+ {
+ viewport.setShowUnconserved(showUnconservedMenuItem.getState());
+ alignPanel.paintAlignment(true);
+ }
}
class PrintThread extends Thread