+ * Open a new Tree panel on the desktop
+ *
+ * @param sm
+ * @param params
+ */
+ protected void openTreePanel(ScoreModelI sm, SimilarityParamsI params)
+ {
+ String treeType = neighbourJoining.isSelected() ? TreeBuilder.NEIGHBOUR_JOINING
+ : TreeBuilder.AVERAGE_DISTANCE;
+ af.newTreePanel(treeType, sm, params);
+ }
+
+ /**
+ * Open a new PCA panel on the desktop
+ *
+ * @param sm
+ * @param params
+ */
+ protected void openPcaPanel(ScoreModelI sm, SimilarityParamsI params)
+ {
+ AlignViewport viewport = af.getViewport();
+ if (((viewport.getSelectionGroup() != null)
+ && (viewport.getSelectionGroup().getSize() < 4) && (viewport
+ .getSelectionGroup().getSize() > 0))
+ || (viewport.getAlignment().getHeight() < 4))
+ {
+ JvOptionPane
+ .showInternalMessageDialog(
+ this,
+ MessageManager
+ .getString("label.principal_component_analysis_must_take_least_four_input_sequences"),
+ MessageManager
+ .getString("label.sequence_selection_insufficient"),
+ JvOptionPane.WARNING_MESSAGE);
+ return;
+ }
+ new PCAPanel(af.alignPanel, sm, params);
+ }
+
+ /**