+
+ /*
+ * construct the panel and kick off its calculation thread
+ */
+ pcaPanel = new PCAPanel(af.alignPanel, modelName, params);
+ new Thread(pcaPanel).start();
+
+ }
+
+ /**
+ * Open a new PaSiMap panel on the desktop
+ *
+ * @param modelName
+ * @param params
+ */
+ protected void openPasimapPanel(String modelName, SimilarityParamsI params)
+ {
+ AlignViewport viewport = af.getViewport();
+
+ /*
+ * gui validation shouldn't allow insufficient sequences here, but leave
+ * this check in in case this method gets exposed programmatically in future
+ */
+ if (((viewport.getSelectionGroup() != null)
+ && (viewport.getSelectionGroup().getSize() < MIN_PASIMAP_SELECTION)
+ && (viewport.getSelectionGroup().getSize() > 0))
+ || (viewport.getAlignment().getHeight() < MIN_PASIMAP_SELECTION))
+ {
+ JvOptionPane.showInternalMessageDialog(this,
+ MessageManager.formatMessage(
+ "label.you_need_at_least_n_sequences",
+ MIN_PASIMAP_SELECTION),
+ MessageManager
+ .getString("label.sequence_selection_insufficient"),
+ JvOptionPane.WARNING_MESSAGE);
+ return;
+ }
+
+ /*
+ * construct the panel and kick off its calculation thread
+ */
+ //&! change to PaSiMapPanel
+ pasimapPanel = new PaSiMapPanel(af.alignPanel, modelName, params);
+ new Thread(pasimapPanel).start();
+