X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPCAPanel.java;h=2ecdb82dd037fe5d083625c180e7c0f68573b32d;hb=b04c79d1a830aa7ae7b88b2a5ddd07c9216c826f;hp=f5e33cdc4c983f20d40445b4042f8e74fda26238;hpb=97fbcf746cdd6c998871adcf8e737d43e5307387;p=jalview.git diff --git a/src/jalview/gui/PCAPanel.java b/src/jalview/gui/PCAPanel.java index f5e33cd..2ecdb82 100644 --- a/src/jalview/gui/PCAPanel.java +++ b/src/jalview/gui/PCAPanel.java @@ -23,12 +23,14 @@ package jalview.gui; import jalview.analysis.scoremodels.ScoreModels; import jalview.api.analysis.ScoreModelI; import jalview.api.analysis.SimilarityParamsI; +import jalview.bin.Cache; import jalview.datamodel.Alignment; import jalview.datamodel.AlignmentI; import jalview.datamodel.AlignmentView; import jalview.datamodel.HiddenColumns; import jalview.datamodel.SequenceI; import jalview.jbgui.GPCAPanel; +import jalview.math.RotatableMatrix.Axis; import jalview.util.ImageMaker; import jalview.util.MessageManager; import jalview.viewmodel.AlignmentViewport; @@ -53,11 +55,15 @@ import javax.swing.event.InternalFrameAdapter; import javax.swing.event.InternalFrameEvent; /** - * The panel holding the Principal Component Analysis 3-d visualisation + * The panel holding the Principal Component Analysis 3-D visualisation */ public class PCAPanel extends GPCAPanel implements Runnable, IProgressIndicator { + private static final int MIN_WIDTH = 470; + + private static final int MIN_HEIGHT = 250; + RotatableCanvas rc; AlignmentPanel ap; @@ -68,10 +74,6 @@ public class PCAPanel extends GPCAPanel int top = 0; - private static final int MIN_WIDTH = 470; - - private static final int MIN_HEIGHT = 250; - private IProgressIndicator progressBar; private boolean working; @@ -125,11 +127,10 @@ public class PCAPanel extends GPCAPanel rc = new RotatableCanvas(alignPanel); this.getContentPane().add(rc, BorderLayout.CENTER); - /* - * perform calculation in a new Thread - */ - Thread worker = new Thread(this); - worker.start(); + addKeyListener(rc); + validate(); + + this.setMinimumSize(new Dimension(MIN_WIDTH, MIN_HEIGHT)); } /** @@ -174,7 +175,7 @@ public class PCAPanel extends GPCAPanel try { pcaModel.calculate(); - // //////////////// + xCombobox.setSelectedIndex(0); yCombobox.setSelectedIndex(1); zCombobox.setSelectedIndex(2); @@ -196,12 +197,10 @@ public class PCAPanel extends GPCAPanel repaint(); if (getParent() == null) { - addKeyListener(rc); Desktop.addInternalFrame(this, MessageManager.formatMessage("label.calc_title", "PCA", pcaModel.getScoreModelName()), 475, 450); - this.setMinimumSize(new Dimension(MIN_WIDTH, MIN_HEIGHT)); } working = false; } @@ -223,7 +222,30 @@ public class PCAPanel extends GPCAPanel int dim3 = top - zCombobox.getSelectedIndex(); pcaModel.updateRcView(dim1, dim2, dim3); rc.resetView(); - rc.paint(rc.getGraphics()); + } + + /** + * Sets the selected checkbox item index for PCA dimension (1, 2, 3...) for + * the given axis (X/Y/Z) + * + * @param index + * @param axis + */ + public void setSelectedDimensionIndex(int index, Axis axis) + { + switch (axis) + { + case X: + xCombobox.setSelectedIndex(index); + break; + case Y: + yCombobox.setSelectedIndex(index); + break; + case Z: + zCombobox.setSelectedIndex(index); + break; + default: + } } @Override @@ -262,7 +284,7 @@ public class PCAPanel extends GPCAPanel // make this an abstract function of all jalview analysis windows if (pcaModel.getSeqtrings() == null) { - jalview.bin.Cache.log.info( + Cache.log.info( "Unexpected call to originalSeqData_actionPerformed - should have hidden this menu action."); return; } @@ -679,4 +701,29 @@ public class PCAPanel extends GPCAPanel { return working; } + + /** + * Answers the selected checkbox item index for PCA dimension for the X, Y or + * Z axis of the display + * + * @param axis + * @return + */ + public int getSelectedDimensionIndex(Axis axis) + { + switch (axis) + { + case X: + return xCombobox.getSelectedIndex(); + case Y: + return yCombobox.getSelectedIndex(); + default: + return zCombobox.getSelectedIndex(); + } + } + + public void setShowLabels(boolean show) + { + showLabels.setSelected(show); + } }