X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FTreePanel.java;h=0a33ea8612971430888929da762a2d83a6893a3a;hb=7f5ab7d1f58d870622968e0e6a430f33403b8e4f;hp=13e236003d773c195f88963d4514c243c9dbfa90;hpb=d6a30c6516e8e2f923c8c2f6dce7592cb3b7d974;p=jalview.git diff --git a/src/jalview/gui/TreePanel.java b/src/jalview/gui/TreePanel.java index 13e2360..0a33ea8 100755 --- a/src/jalview/gui/TreePanel.java +++ b/src/jalview/gui/TreePanel.java @@ -23,7 +23,7 @@ package jalview.gui; import jalview.analysis.AlignmentSorter; import jalview.analysis.NJTree; import jalview.analysis.scoremodels.ScoreModels; -import jalview.api.analysis.DistanceModelI; +import jalview.api.analysis.ScoreModelI; import jalview.api.analysis.ViewBasedAnalysisI; import jalview.bin.Cache; import jalview.commands.CommandI; @@ -300,26 +300,9 @@ public class TreePanel extends GTreePanel seqs = av.getSelectionGroup().getSequencesInOrder( av.getAlignment()); } - DistanceModelI sm = ScoreModels.getInstance().forName(pwtype); - if (sm instanceof ViewBasedAnalysisI) - { - try - { - sm = sm.getClass().newInstance(); - ((ViewBasedAnalysisI) sm) - .configureFromAlignmentView(treeCanvas.ap); - } catch (Exception q) - { - Cache.log.error("Couldn't create a scoremodel instance for " - + sm.getName()); - } - tree = new NJTree(seqs, seqStrings, type, pwtype, sm, start, end); - } - else - { - tree = new NJTree(seqs, seqStrings, type, pwtype, null, start, - end); - } + ScoreModelI sm = ScoreModels.getInstance().forName(pwtype); + sm = configureScoreModel(sm); + tree = new NJTree(seqs, seqStrings, type, pwtype, sm, start, end); showDistances(true); } @@ -898,4 +881,28 @@ public class TreePanel extends GTreePanel treecalcnm, smn); return ttl; } + + /** + * If the score model is one that requires to get state data from the current + * view, allow it to do so + * + * @param sm + * @return + */ + protected ScoreModelI configureScoreModel(ScoreModelI sm) + { + if (sm instanceof ViewBasedAnalysisI) + { + try + { + sm = sm.getClass().newInstance(); + ((ViewBasedAnalysisI) sm).configureFromAlignmentView(treeCanvas.ap); + } catch (Exception q) + { + Cache.log.error("Couldn't create a scoremodel instance for " + + sm.getName()); + } + } + return sm; + } }