X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FTreePanel.java;fp=src%2Fjalview%2Fgui%2FTreePanel.java;h=9ac2872a8b3173c4d55af634e8cce49092bcc74b;hb=e2e2b85d7a8e3d7ed6926ef1bf55eb2328e744d1;hp=857e77c4fd5460205cfcda46ea985e06cef7edc2;hpb=74c5bd7b1f98214a6d57d7c64d0548013530d397;p=jalview.git diff --git a/src/jalview/gui/TreePanel.java b/src/jalview/gui/TreePanel.java index 857e77c..9ac2872 100755 --- a/src/jalview/gui/TreePanel.java +++ b/src/jalview/gui/TreePanel.java @@ -22,9 +22,8 @@ package jalview.gui; import jalview.analysis.AlignmentSorter; import jalview.analysis.NJTree; -import jalview.analysis.scoremodels.ScoreModels; -import jalview.analysis.scoremodels.SimilarityParams; import jalview.api.analysis.ScoreModelI; +import jalview.api.analysis.SimilarityParamsI; import jalview.api.analysis.ViewBasedAnalysisI; import jalview.bin.Cache; import jalview.commands.CommandI; @@ -72,9 +71,13 @@ import org.jibble.epsgraphics.EpsGraphics2D; */ public class TreePanel extends GTreePanel { - String type; + String treeType; - String pwtype; + ScoreModelI scoreModel; // if tree computed + + String treeTitle; // if tree loaded + + SimilarityParamsI similarityParams; TreeCanvas treeCanvas; @@ -85,34 +88,29 @@ public class TreePanel extends GTreePanel /** * Creates a new TreePanel object. * - * @param av - * DOCUMENT ME! - * @param seqVector - * DOCUMENT ME! + * @param ap * @param type - * DOCUMENT ME! - * @param pwtype - * DOCUMENT ME! - * @param s - * DOCUMENT ME! - * @param e - * DOCUMENT ME! + * @param sm + * @param options */ - public TreePanel(AlignmentPanel ap, String type, String pwtype) + public TreePanel(AlignmentPanel ap, String type, ScoreModelI sm, + SimilarityParamsI options) { super(); - initTreePanel(ap, type, pwtype, null, null); + this.similarityParams = options; + initTreePanel(ap, type, sm, null, null); // We know this tree has distances. JBPNote TODO: prolly should add this as // a userdefined default // showDistances(true); } - public TreePanel(AlignmentPanel av, String type, String pwtype, - NewickFile newtree, AlignmentView inputData) + public TreePanel(AlignmentPanel alignPanel, NewickFile newtree, + String theTitle, AlignmentView inputData) { super(); - initTreePanel(av, type, pwtype, newtree, inputData); + this.treeTitle = theTitle; + initTreePanel(alignPanel, null, null, newtree, inputData); } public AlignmentI getAlignment() @@ -125,13 +123,13 @@ public class TreePanel extends GTreePanel return treeCanvas.av; } - void initTreePanel(AlignmentPanel ap, String type, String pwtype, + void initTreePanel(AlignmentPanel ap, String type, ScoreModelI sm, NewickFile newTree, AlignmentView inputData) { av = ap.av; - this.type = type; - this.pwtype = pwtype; + this.treeType = type; + this.scoreModel = sm; treeCanvas = new TreeCanvas(this, ap, scrollPane); scrollPane.setViewportView(treeCanvas); @@ -247,17 +245,17 @@ public class TreePanel extends GTreePanel { NewickFile newtree; - jalview.datamodel.AlignmentView odata = null; + AlignmentView odata = null; - public TreeLoader(NewickFile newtree) + public TreeLoader(NewickFile newickFile) { - this.newtree = newtree; - if (newtree != null) + this.newtree = newickFile; + if (newickFile != null) { // Must be outside run(), as Jalview2XML tries to // update distance/bootstrap visibility at the same time - showBootstrap(newtree.HasBootstrap()); - showDistances(newtree.HasDistances()); + showBootstrap(newickFile.HasBootstrap()); + showDistances(newickFile.HasDistances()); } } @@ -283,26 +281,8 @@ public class TreePanel extends GTreePanel } else { - int start, end; - SequenceI[] seqs; - boolean selview = av.getSelectionGroup() != null - && av.getSelectionGroup().getSize() > 1; - AlignmentView seqStrings = av.getAlignmentView(selview); - if (!selview) - { - start = 0; - end = av.getAlignment().getWidth(); - seqs = av.getAlignment().getSequencesArray(); - } - else - { - start = av.getSelectionGroup().getStartRes(); - end = av.getSelectionGroup().getEndRes() + 1; - seqs = av.getSelectionGroup().getSequencesInOrder( - av.getAlignment()); - } - ScoreModelI sm = configureScoreModel(pwtype); - tree = new NJTree(av, type, sm, SimilarityParams.Jalview); + ScoreModelI sm = configureScoreModel(); + tree = new NJTree(av, treeType, sm, similarityParams); showDistances(true); } @@ -362,7 +342,7 @@ public class TreePanel extends GTreePanel { CutAndPasteTransfer cap = new CutAndPasteTransfer(); - String newTitle = getPanelTitle(type, pwtype); + String newTitle = getPanelTitle(); NewickFile fout = new NewickFile(tree.getTopNode()); try @@ -575,11 +555,11 @@ public class TreePanel extends GTreePanel public CommandI sortAlignmentIn(AlignmentPanel ap) { - AlignmentViewport av = ap.av; - SequenceI[] oldOrder = av.getAlignment().getSequencesArray(); - AlignmentSorter.sortByTree(av.getAlignment(), tree); + AlignmentViewport viewport = ap.av; + SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray(); + AlignmentSorter.sortByTree(viewport.getAlignment(), tree); CommandI undo; - undo = new OrderCommand("Tree Sort", oldOrder, av.getAlignment()); + undo = new OrderCommand("Tree Sort", oldOrder, viewport.getAlignment()); ap.paintAlignment(true); return undo; @@ -607,11 +587,11 @@ public class TreePanel extends GTreePanel return treeCanvas.font; } - public void setTreeFont(Font font) + public void setTreeFont(Font f) { if (treeCanvas != null) { - treeCanvas.setFont(font); + treeCanvas.setFont(f); } } @@ -834,8 +814,8 @@ public class TreePanel extends GTreePanel } if (newname != null) { - String oldname = ((SequenceNode) node).getName(); - // TODO : save in the undo object for this modification. + // String oldname = ((SequenceNode) node).getName(); + // TODO : save oldname in the undo object for this modification. ((SequenceNode) node).setName(newname); } } @@ -849,17 +829,13 @@ public class TreePanel extends GTreePanel * Neighbour Joining Using BLOSUM62 *

* For a tree loaded from file, just uses the file name - * - * @param treeType - * NJ or AV or FromFile - * @param modelOrFileName * @return */ - public static String getPanelTitle(String treeType, String modelOrFileName) + public String getPanelTitle() { - if (NJTree.FROM_FILE.equals(treeType)) + if (treeTitle != null) { - return modelOrFileName; + return treeTitle; } /* @@ -869,10 +845,10 @@ public class TreePanel extends GTreePanel + treeType.toLowerCase()); /* - * i18n description (if any) of score model used + * i18n description (if available) of score model used */ String smn = MessageManager.getStringOrReturn("label.score_model_", - modelOrFileName); + scoreModel.getName()); /* * put them together as Using @@ -883,27 +859,26 @@ public class TreePanel extends GTreePanel } /** - * Gets the score model for the given name. If the score model is one that - * requires to get state data from the current view, allow it to do so + * If the score model is one that requires to get state data from the current + * view, create and configure a new instance of it * - * @param sm * @return */ - protected ScoreModelI configureScoreModel(String modelName) + protected ScoreModelI configureScoreModel() { - ScoreModelI sm = ScoreModels.getInstance().forName(modelName); - if (sm instanceof ViewBasedAnalysisI) + if (scoreModel instanceof ViewBasedAnalysisI) { try { - sm = sm.getClass().newInstance(); - ((ViewBasedAnalysisI) sm).configureFromAlignmentView(treeCanvas.ap); + scoreModel = scoreModel.getClass().newInstance(); + ((ViewBasedAnalysisI) scoreModel) + .configureFromAlignmentView(treeCanvas.ap); } catch (Exception q) { Cache.log.error("Couldn't create a scoremodel instance for " - + sm.getName()); + + scoreModel.getName()); } } - return sm; + return scoreModel; } }