import jalview.analysis.NJTree;
import jalview.analysis.TreeBuilder;
import jalview.analysis.TreeModel;
+import jalview.analysis.scoremodels.ScoreModels;
import jalview.api.analysis.ScoreModelI;
import jalview.api.analysis.SimilarityParamsI;
-import jalview.api.analysis.ViewBasedAnalysisI;
import jalview.bin.Cache;
import jalview.commands.CommandI;
import jalview.commands.OrderCommand;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.AlignmentView;
import jalview.datamodel.BinaryNode;
-import jalview.datamodel.ColumnSelection;
import jalview.datamodel.DBRefEntry;
+import jalview.datamodel.HiddenColumns;
import jalview.datamodel.NodeTransformI;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
{
String treeType;
- ScoreModelI scoreModel; // if tree computed
+ String scoreModelName; // if tree computed
String treeTitle; // if tree loaded
*
* @param ap
* @param type
- * @param sm
+ * @param modelName
* @param options
*/
- public TreePanel(AlignmentPanel ap, String type, ScoreModelI sm,
+ public TreePanel(AlignmentPanel ap, String type, String modelName,
SimilarityParamsI options)
{
super();
this.similarityParams = options;
- initTreePanel(ap, type, sm, null, null);
+ initTreePanel(ap, type, modelName, null, null);
// We know this tree has distances. JBPNote TODO: prolly should add this as
// a userdefined default
return treeCanvas.av;
}
- void initTreePanel(AlignmentPanel ap, String type, ScoreModelI sm,
+ void initTreePanel(AlignmentPanel ap, String type, String modelName,
NewickFile newTree, AlignmentView inputData)
{
av = ap.av;
this.treeType = type;
- this.scoreModel = sm;
+ this.scoreModelName = modelName;
treeCanvas = new TreeCanvas(this, ap, scrollPane);
scrollPane.setViewportView(treeCanvas);
}
else
{
- ScoreModelI sm = configureScoreModel();
+ ScoreModelI sm = ScoreModels.getInstance().getScoreModel(
+ scoreModelName, treeCanvas.ap);
TreeBuilder njtree = treeType.equals(TreeBuilder.NEIGHBOUR_JOINING) ? new NJTree(
av, sm, similarityParams) : new AverageDistanceTree(av, sm,
similarityParams);
{
}
- Object[] alAndColsel = originalData
- .getAlignmentAndColumnSelection(gc);
+ Object[] alAndColsel = originalData.getAlignmentAndHiddenColumns(gc);
if (alAndColsel != null && alAndColsel[0] != null)
{
if (true)
{
// make a new frame!
- AlignFrame af = new AlignFrame(al,
- (ColumnSelection) alAndColsel[1], AlignFrame.DEFAULT_WIDTH,
+ AlignFrame af = new AlignFrame(al, (HiddenColumns) alAndColsel[1],
+ AlignFrame.DEFAULT_WIDTH,
AlignFrame.DEFAULT_HEIGHT);
// >>>This is a fix for the moment, until a better solution is
/*
* short score model name (long description can be too long)
*/
- String smn = scoreModel.getName();
+ String smn = scoreModelName;
/*
* put them together as <method> Using <model>
treecalcnm, smn);
return ttl;
}
-
- /**
- * If the score model is one that requires to get state data from the current
- * view, create and configure a new instance of it
- *
- * @return
- */
- protected ScoreModelI configureScoreModel()
- {
- if (scoreModel instanceof ViewBasedAnalysisI)
- {
- try
- {
- scoreModel = scoreModel.getClass().newInstance();
- ((ViewBasedAnalysisI) scoreModel)
- .configureFromAlignmentView(treeCanvas.ap);
- } catch (Exception q)
- {
- Cache.log.error("Couldn't create a scoremodel instance for "
- + scoreModel.getName());
- }
- }
- return scoreModel;
- }
}