From: jprocter Date: Wed, 14 Dec 2011 11:14:48 +0000 (+0000) Subject: JAL-1033, JAL-1013 - ensure pca window shown only after calculation completes, and... X-Git-Tag: Jalview_2_9~463^2 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=c9cb2ef932ff18d9f0b7318df8b622e7d665f9ef;p=jalview.git JAL-1033, JAL-1013 - ensure pca window shown only after calculation completes, and no GUI initialization code is executed after subsequent recalculation. --- diff --git a/src/jalview/gui/PCAPanel.java b/src/jalview/gui/PCAPanel.java index e3959ea..0941c7d 100755 --- a/src/jalview/gui/PCAPanel.java +++ b/src/jalview/gui/PCAPanel.java @@ -106,8 +106,6 @@ public class PCAPanel extends GPCAPanel implements Runnable return; } - Desktop.addInternalFrame(this, "Principal component analysis", 400, 400); - PaintRefresher.Register(this, av.getSequenceSetId()); rc = new RotatableCanvas(ap); @@ -174,18 +172,22 @@ public class PCAPanel extends GPCAPanel implements Runnable } rc.setPoints(points, pca.getM().rows); - rc.repaint(); - - addKeyListener(rc); + // rc.invalidate(); nuclSetting.setSelected(nucleotide); protSetting.setSelected(!nucleotide); } catch (OutOfMemoryError er) { new OOMWarning("calculating PCA", er); - + return; } calcSettings.setEnabled(true); + repaint(); + if (getParent()==null) + { + addKeyListener(rc); + Desktop.addInternalFrame(this, "Principal component analysis", 400, 400); + } } @Override protected void nuclSetting_actionPerfomed(ActionEvent arg0) diff --git a/src/jalview/gui/RotatableCanvas.java b/src/jalview/gui/RotatableCanvas.java index 713f9b1..e40852a 100755 --- a/src/jalview/gui/RotatableCanvas.java +++ b/src/jalview/gui/RotatableCanvas.java @@ -138,14 +138,16 @@ public class RotatableCanvas extends JPanel implements MouseListener, repaint(); } + boolean first=true; public void setPoints(Vector points, int npoint) { this.points = points; this.npoint = npoint; + if (first) { ToolTipManager.sharedInstance().registerComponent(this); ToolTipManager.sharedInstance().setInitialDelay(0); ToolTipManager.sharedInstance().setDismissDelay(10000); - + } prefsize = getPreferredSize(); orig = new float[npoint][3]; @@ -186,11 +188,13 @@ public class RotatableCanvas extends JPanel implements MouseListener, findWidth(); scale = findScale(); - + if (first) { + addMouseListener(this); addMouseMotionListener(this); - + } + first=false; } public void initAxes()