/*
- * 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
import java.awt.event.*;
import jalview.analysis.*;
+import jalview.bin.JalviewLite;
import jalview.commands.*;
import jalview.datamodel.*;
import jalview.io.*;
viewport.updateConsensus(alignPanel);
annotationPanelMenuItem.setState(viewport.showAnnotation);
+ displayNonconservedMenuItem.setState(viewport.getShowunconserved());
seqLimits.setState(viewport.showJVSuffix);
centreColumnLabelFlag.setState(true);
centreColumnLabelFlag_stateChanged();
}
-
try
{
param = applet.getParameter("windowWidth");
}
viewport.showSequenceFeatures = true;
sequenceFeatures.setState(true);
+ if (viewport.featureSettings!=null)
+ {
+ viewport.featureSettings.refreshTable();
+ }
alignPanel.paintAlignment(true);
}
public void itemStateChanged(ItemEvent evt)
{
- if (evt.getSource() == colourTextMenuItem)
+ if (evt.getSource() == displayNonconservedMenuItem)
+ {
+ displayNonconservedMenuItem_actionPerformed();
+ }
+ else if (evt.getSource() == colourTextMenuItem)
{
colourTextMenuItem_actionPerformed();
}
{
delete_actionPerformed();
}
+ else if (source == grpsFromSelection)
+ {
+ makeGrpsFromSelection_actionPerformed();
+ }
else if (source == deleteGroups)
{
deleteGroups_actionPerformed();
return annotation;
}
+ private Hashtable getDisplayedFeatureCols()
+ {
+ if (alignPanel.getFeatureRenderer()!=null) {
+ FeatureRenderer fr = alignPanel.getFeatureRenderer();
+ Hashtable fcols = new Hashtable();
+ Enumeration en = viewport.featuresDisplayed.keys();
+ while (en.hasMoreElements())
+ {
+ Object col = en.nextElement();
+ fcols.put(col,fr.featureColours.get(col));
+ }
+ return fcols;
+ }
+ return null;
+ }
+
public String outputFeatures(boolean displayTextbox, String format)
{
String features;
if (format.equalsIgnoreCase("Jalview"))
{
features = new FeaturesFile().printJalviewFormat(viewport.alignment
- .getSequencesArray(), viewport.featuresDisplayed);
+ .getSequencesArray(), getDisplayedFeatureCols());
}
else
{
features = new FeaturesFile().printGFFFormat(viewport.alignment
- .getSequencesArray(), viewport.featuresDisplayed);
+ .getSequencesArray(), getDisplayedFeatureCols());
}
if (displayTextbox)
this.setVisible(false);
}
}
-
+ protected void makeGrpsFromSelection_actionPerformed()
+ {
+ if (viewport.getSelectionGroup() != null)
+ {
+ SequenceGroup[] gps = jalview.analysis.Grouping.makeGroupsFrom(
+ viewport.getSequenceSelection(), viewport.getAlignmentView(
+ true).getSequenceStrings(viewport.getGapCharacter()),
+ viewport.alignment.getGroups());
+ viewport.alignment.deleteAllGroups();
+ viewport.sequenceColours = null;
+ viewport.setSelectionGroup(null);
+ // set view properties for each group
+ for (int g = 0; g < gps.length; g++)
+ {
+ // gps[g].setShowunconserved(viewport.getShowUnconserved());
+ gps[g].setIncludeAllConsSymbols(viewport.isIncludeAllConsensusSymbols());
+ viewport.alignment.addGroup(gps[g]);
+ Color col = new Color((int) (Math.random() * 255), (int) (Math
+ .random() * 255), (int) (Math.random() * 255));
+ col = col.brighter();
+ for (Enumeration sq = gps[g].getSequences(null).elements(); sq
+ .hasMoreElements(); viewport.setSequenceColour(
+ (SequenceI) sq.nextElement(), col))
+ ;
+ }
+ PaintRefresher.Refresh(this, viewport.getSequenceSetId());
+ // alignPanel.updateAnnotation();
+ alignPanel.paintAlignment(true);
+ }
+ }
protected void deleteGroups_actionPerformed()
{
viewport.alignment.deleteAllGroups();
alignPanel.paintAlignment(true);
}
+ protected void displayNonconservedMenuItem_actionPerformed()
+ {
+ viewport.setShowunconserved(displayNonconservedMenuItem.getState());
+ alignPanel.paintAlignment(true);
+ }
+
protected void wrapMenuItem_actionPerformed()
{
viewport.setWrapAlignment(wrapMenuItem.getState());
modifyPID_actionPerformed();
}
-
public void sortPairwiseMenuItem_actionPerformed()
{
SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
AlignmentSorter.sortByPID(viewport.getAlignment(), viewport
.getAlignment().getSequenceAt(0), null);
+
addHistoryItem(new OrderCommand("Pairwise Sort", oldOrder,
viewport.alignment));
alignPanel.paintAlignment(true);
public void sortIDMenuItem_actionPerformed()
{
- // addHistoryItem(new HistoryItem("ID Sort", viewport.alignment,
- // HistoryItem.SORT));
+ SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
AlignmentSorter.sortByID(viewport.getAlignment());
+ addHistoryItem(new OrderCommand("ID Sort", oldOrder,
+ viewport.alignment));
alignPanel.paintAlignment(true);
}
public void sortGroupMenuItem_actionPerformed()
{
- // addHistoryItem(new HistoryItem("Group Sort", viewport.alignment,
- // HistoryItem.SORT));
+ SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
AlignmentSorter.sortByGroup(viewport.getAlignment());
+ addHistoryItem(new OrderCommand("Group Sort", oldOrder,
+ viewport.alignment));
alignPanel.paintAlignment(true);
}
jalview.bin.JalviewLite.addFrame(tp, treeFile, 600, 500);
addTreeMenuItem(tp, treeFile);
}
-
- void addTreeMenuItem(final TreePanel treePanel, String title)
+ /**
+ * sort the alignment using the given treePanel
+ * @param treePanel tree used to sort view
+ * @param title string used for undo event name
+ */
+ public void sortByTree(TreePanel treePanel, String title)
+ {
+ SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
+ AlignmentSorter.sortByTree(viewport.getAlignment(), treePanel
+ .getTree());
+ // addHistoryItem(new HistoryItem("Sort", viewport.alignment,
+ // HistoryItem.SORT));
+ addHistoryItem(new OrderCommand("Order by "+title, oldOrder,
+ viewport.alignment));
+ alignPanel.paintAlignment(true);
+ }
+ /**
+ * Do any automatic reordering of the alignment and add the necessary bits to the menu structure for the new tree
+ * @param treePanel
+ * @param title
+ */
+ protected void addTreeMenuItem(final TreePanel treePanel, final String title)
{
final MenuItem item = new MenuItem(title);
sortByTreeMenu.add(item);
{
public void actionPerformed(ActionEvent evt)
{
- // addHistoryItem(new HistoryItem("Sort", viewport.alignment,
- // HistoryItem.SORT));
- AlignmentSorter.sortByTree(viewport.getAlignment(), treePanel
- .getTree());
- alignPanel.paintAlignment(true);
+ sortByTree(treePanel, title); // treePanel.getTitle());
}
});
treePanel.addWindowListener(new WindowAdapter()
{
+ public void windowOpened(WindowEvent e)
+ {
+ if (viewport.sortByTree)
+ {
+ sortByTree(treePanel, title);
+ }
+ super.windowOpened(e);
+ }
+
public void windowClosing(WindowEvent e)
{
sortByTreeMenu.remove(item);
class AboutPanel extends Canvas
{
String version;
-
- public AboutPanel(String version)
+ String builddate;
+ public AboutPanel(String version, String builddate)
{
this.version = version;
+ this.builddate = builddate;
}
public void paint(Graphics g)
// lite and application
g.setFont(new Font("Helvetica", Font.BOLD, 14));
g.drawString("JalviewLite - Release " + version, x, y += fh);
+ g.setFont(new Font("Helvetica", Font.BOLD, 12));
+ g.drawString("Build date: "+builddate, x, y += fh);
g.setFont(new Font("Helvetica", Font.PLAIN, 12));
g
.drawString(
"For help, see the FAQ at www.jalview.org and/or join the jalview-discuss@jalview.org mailing list",
x, y += fh);
g.drawString("If you use Jalview, please cite:", x, y += fh + 8);
- g
- .drawString(
- "\"Clamp, M., Cuff, J., Searle, S. M. and Barton, G. J. (2004), The Jalview Java Alignment Editor\"",
- x, y += fh);
- g.drawString("Bioinformatics, 2004 20;426-7.", x, y += fh);
- }
- }
-
- String version = "test";
- java.net.URL url = getClass().getResource("/.build_properties");
- if (url != null)
- {
- try
- {
- BufferedReader reader = new BufferedReader(new InputStreamReader(
- url.openStream()));
- String line;
- while ((line = reader.readLine()) != null)
- {
- if (line.indexOf("VERSION") > -1)
- {
- version = line.substring(line.indexOf("=") + 1);
- }
- }
- } catch (Exception ex)
- {
- ex.printStackTrace();
+ g.drawString(
+ "Waterhouse, A.M., Procter, J.B., Martin, D.M.A, Clamp, M. and Barton, G. J. (2009)",x,y+=fh);
+ g.drawString("Jalview Version 2 - a multiple sequence alignment editor and analysis workbench",x,y+=fh);
+ g.drawString("Bioinformatics doi: 10.1093/bioinformatics/btp033",x,y+=fh);
}
}
Frame frame = new Frame();
- frame.add(new AboutPanel(version));
+ frame.add(new AboutPanel(JalviewLite.getVersion(), JalviewLite.getBuildDate()));
jalview.bin.JalviewLite.addFrame(frame, "Jalview", 580, 220);
}
CheckboxMenuItem colourTextMenuItem = new CheckboxMenuItem();
+ CheckboxMenuItem displayNonconservedMenuItem = new CheckboxMenuItem();
+
MenuItem alProperties = new MenuItem("Alignment Properties...");
MenuItem overviewMenuItem = new MenuItem();
MenuItem deleteGroups = new MenuItem();
+ MenuItem grpsFromSelection= new MenuItem();
+
MenuItem delete = new MenuItem();
MenuItem copy = new MenuItem();
annotationPanelMenuItem.addItemListener(this);
colourTextMenuItem.setLabel("Colour Text");
colourTextMenuItem.addItemListener(this);
+ displayNonconservedMenuItem.setLabel("Show non-conserved");
+ displayNonconservedMenuItem.addItemListener(this);
alProperties.addActionListener(this);
overviewMenuItem.setLabel("Overview Window");
overviewMenuItem.addActionListener(this);
nucleotideColour.addActionListener(this);
deleteGroups.setLabel("Undefine Groups");
deleteGroups.addActionListener(this);
+ grpsFromSelection.setLabel("Make Groups for selection");
+ grpsFromSelection.addActionListener(this);
copy.setLabel("Copy");
copy.addActionListener(this);
cut.setLabel("Cut");
formatMenu.add(viewBoxesMenuItem);
formatMenu.add(viewTextMenuItem);
formatMenu.add(colourTextMenuItem);
+ formatMenu.add(displayNonconservedMenuItem);
formatMenu.add(renderGapsMenuItem);
formatMenu.add(centreColumnLabelFlag);
selectMenu.add(findMenuItem);
selectMenu.add(deselectAllSequenceMenuItem);
selectMenu.add(invertSequenceMenuItem);
selectMenu.add(invertColSel);
+ selectMenu.add(grpsFromSelection);
selectMenu.add(deleteGroups);
+
}
MenuItem featureSettings = new MenuItem();