*/
package jalview.gui;
+import java.awt.Font;
+import java.awt.Graphics;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Locale;
+import javax.swing.ButtonGroup;
+import javax.swing.JMenuItem;
+import javax.swing.JRadioButtonMenuItem;
+import javax.swing.event.InternalFrameAdapter;
+import javax.swing.event.InternalFrameEvent;
+
+import org.jibble.epsgraphics.EpsGraphics2D;
+
import jalview.analysis.AlignmentSorter;
import jalview.analysis.AverageDistanceTree;
import jalview.analysis.NJTree;
import jalview.analysis.scoremodels.ScoreModels;
import jalview.api.analysis.ScoreModelI;
import jalview.api.analysis.SimilarityParamsI;
+import jalview.bin.Cache;
+import jalview.bin.Console;
import jalview.commands.CommandI;
import jalview.commands.OrderCommand;
import jalview.datamodel.Alignment;
+import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.AlignmentView;
import jalview.datamodel.BinaryNode;
import jalview.io.JalviewFileChooser;
import jalview.io.JalviewFileView;
import jalview.io.NewickFile;
+import jalview.io.exceptions.ImageOutputException;
import jalview.jbgui.GTreePanel;
import jalview.util.ImageMaker.TYPE;
import jalview.util.MessageManager;
import jalview.viewmodel.AlignmentViewport;
-import java.awt.Font;
-import java.awt.Graphics;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.swing.ButtonGroup;
-import javax.swing.JMenuItem;
-import javax.swing.JRadioButtonMenuItem;
-import javax.swing.event.InternalFrameAdapter;
-import javax.swing.event.InternalFrameEvent;
-
-import org.jibble.epsgraphics.EpsGraphics2D;
-
/**
* DOCUMENT ME!
*
SimilarityParamsI options)
{
super();
+ this.setFrameIcon(null);
this.similarityParams = options;
initTreePanel(ap, type, modelName, null, null);
String theTitle, AlignmentView inputData)
{
super();
+ this.setFrameIcon(null);
this.treeTitle = theTitle;
initTreePanel(alignPanel, null, null, newtree, inputData);
}
+ /**
+ * columnwise tree associated with positions in aa
+ *
+ * @param alignPanel
+ * @param fin
+ * @param title
+ * @param aa
+ */
+ public TreePanel(AlignmentPanel alignPanel, NewickFile fin,
+ AlignmentAnnotation aa, String title)
+ {
+ super();
+ columnWise = true;
+ assocAnnotation = aa;
+ this.setFrameIcon(null);
+ this.treeTitle = title;
+ initTreePanel(alignPanel, null, null, fin, null);
+ }
+
+ boolean columnWise = false;
+
+ AlignmentAnnotation assocAnnotation = null;
+
+ public boolean isColumnWise()
+ {
+ return columnWise;
+ }
+
+ public AlignmentAnnotation getAssocAnnotation()
+ {
+ return assocAnnotation;
+ }
+
public AlignmentI getAlignment()
{
return getTreeCanvas().getViewport().getAlignment();
treeCanvas = new TreeCanvas(this, ap, scrollPane);
scrollPane.setViewportView(treeCanvas);
+
+ if (columnWise)
+ {
+ bootstrapMenu.setVisible(false);
+ placeholdersMenu.setState(false);
+ placeholdersMenu.setVisible(false);
+ fitToWindow.setState(false);
+ sortAssocViews.setVisible(false);
+ }
+
+ addKeyListener(new KeyAdapter()
+ {
+ @Override
+ public void keyPressed(KeyEvent e)
+ {
+ switch (e.getKeyCode())
+ {
+ case 27: // escape
+ treeCanvas.clearSelectedLeaves();
+ e.consume();
+ break;
+
+ }
+
+ }
+ });
PaintRefresher.Register(this, ap.av.getSequenceSetId());
buildAssociatedViewMenu();
{
if (tree == null)
{
- System.out.println("tree is null");
+ jalview.bin.Console.outPrintln("tree is null");
// TODO: deal with case when a change event is received whilst a
// tree is still being calculated - should save reference for
// processing message later.
}
if (evt.getNewValue() == null)
{
- System.out.println(
+ jalview.bin.Console.outPrintln(
"new alignment sequences vector value is null");
}
}
else
{
- ScoreModelI sm = ScoreModels.getInstance()
- .getScoreModel(scoreModelName,
- treeCanvas.getAssociatedPanel());
+ ScoreModelI sm = ScoreModels.getInstance().getScoreModel(
+ scoreModelName, treeCanvas.getAssociatedPanel());
TreeBuilder njtree = treeType.equals(TreeBuilder.NEIGHBOUR_JOINING)
? new NJTree(av, sm, similarityParams)
: new AverageDistanceTree(av, sm, similarityParams);
tree = new TreeModel(njtree);
- showDistances(true);
+ // don't display distances for columnwise trees
}
-
+ showDistances(!columnWise);
tree.reCount(tree.getTopNode());
tree.findHeight(tree.getTopNode());
treeCanvas.setTree(tree);
{
// TODO: JAL-3048 save newick file for Jalview-JS
JalviewFileChooser chooser = new JalviewFileChooser(
- jalview.bin.Cache.getProperty("LAST_DIRECTORY"));
+ Cache.getProperty("LAST_DIRECTORY"));
chooser.setFileView(new JalviewFileView());
chooser.setDialogTitle(
MessageManager.getString("label.save_tree_as_newick"));
if (value == JalviewFileChooser.APPROVE_OPTION)
{
String choice = chooser.getSelectedFile().getPath();
- jalview.bin.Cache.setProperty("LAST_DIRECTORY",
+ Cache.setProperty("LAST_DIRECTORY",
chooser.getSelectedFile().getParent());
try
AlignmentView originalData = tree.getOriginalData();
if (originalData == null)
{
- jalview.bin.Cache.log.info(
+ Console.info(
"Unexpected call to originalSeqData_actionPerformed - should have hidden this menu action.");
return;
}
}
else
{
- treeCanvas.getAssociatedPanel().alignFrame
- .addHistoryItem(
- sortAlignmentIn(treeCanvas.getAssociatedPanel()));
+ treeCanvas.getAssociatedPanel().alignFrame.addHistoryItem(
+ sortAlignmentIn(treeCanvas.getAssociatedPanel()));
}
}
String tree = MessageManager.getString("label.tree");
ImageExporter exporter = new ImageExporter(writer, null, imageFormat,
tree);
- exporter.doExport(null, this, width, height, tree.toLowerCase(Locale.ROOT));
+ try {
+ exporter.doExport(null, this, width, height,
+ tree.toLowerCase(Locale.ROOT));
+ } catch (ImageOutputException ioex) {
+ Console.error("Unexpected error whilst writing "+imageFormat.toString(),ioex);
+ }
}
/**
&& !((SequenceNode) node).isDummy())
{
String newname = null;
- SequenceI sq = (SequenceI) ((SequenceNode) node).element();
+ SequenceI sq = (SequenceI) ((BinaryNode) node).element();
if (sq != null)
{
// search dbrefs, features and annotation
{
// String oldname = ((SequenceNode) node).getName();
// TODO : save oldname in the undo object for this modification.
- ((SequenceNode) node).setName(newname);
+ ((BinaryNode) node).setName(newname);
}
}
}
/*
* i18n description of Neighbour Joining or Average Distance method
*/
- String treecalcnm = MessageManager
- .getString("label.tree_calc_" + treeType.toLowerCase(Locale.ROOT));
+ String treecalcnm = MessageManager.getString(
+ "label.tree_calc_" + treeType.toLowerCase(Locale.ROOT));
/*
* short score model name (long description can be too long)
int width = treeCanvas.getWidth();
int height = treeCanvas.getHeight();
- FileOutputStream out = new FileOutputStream(
- outFile);
+ FileOutputStream out = new FileOutputStream(outFile);
EpsGraphics2D pg = new EpsGraphics2D("Tree", out, 0, 0, width,
height);
pg.setAccurateTextMode(!textOption);
pg.close();
} catch (Exception ex)
{
- System.err.println("Error writing tree as EPS");
+ jalview.bin.Console.errPrintln("Error writing tree as EPS");
ex.printStackTrace();
}
}
-
+
public AlignViewport getViewport()
{
return av;