Init PCA in thread
[jalview.git] / src / jalview / appletgui / RotatableCanvas.java
index 25754cd..9fa7491 100755 (executable)
@@ -32,8 +32,6 @@ public class RotatableCanvas
     extends Panel implements MouseListener,\r
     MouseMotionListener,\r
     KeyListener\r
-//RubberbandListener,\r
-//SequenceSelectionListener\r
 {\r
   RotatableMatrix idmat = new RotatableMatrix(3, 3);\r
   RotatableMatrix objmat = new RotatableMatrix(3, 3);\r
@@ -82,17 +80,19 @@ public class RotatableCanvas
   float scalefactor = 1;\r
 \r
   AlignViewport av;\r
-//  Controller    controller;\r
 \r
+  public RotatableCanvas(AlignViewport av)\r
+  {\r
+    this.av = av;\r
+  }\r
 \r
-  public RotatableCanvas(AlignViewport av,\r
-                         Vector points, int npoint)\r
+  public void setPoints(Vector points, int npoint)\r
   {\r
     this.points = points;\r
     this.npoint = npoint;\r
     this.av = av;\r
     PaintRefresher.Register(this, av.alignment);\r
-//\r
+\r
     prefsize = getPreferredSize();\r
     orig = new float[npoint][3];\r
 \r
@@ -287,29 +287,38 @@ public class RotatableCanvas
 \r
   public void paint(Graphics g)\r
   {\r
-    //Only create the image at the beginning -\r
-    if ( (img == null) || (prefsize.width != getSize().width) ||\r
-        (prefsize.height != getSize().height))\r
+    if (points == null)\r
+    {\r
+      g.setFont(new Font("Verdana", Font.PLAIN, 18));\r
+      g.drawString("Calculating PCA....", 20, getSize().height / 2);\r
+    }\r
+    else\r
     {\r
-      prefsize.width = getSize().width;\r
-      prefsize.height = getSize().height;\r
 \r
-      scale = findScale();\r
+      //Only create the image at the beginning -\r
+      if ( (img == null) || (prefsize.width != getSize().width) ||\r
+          (prefsize.height != getSize().height))\r
+      {\r
+        prefsize.width = getSize().width;\r
+        prefsize.height = getSize().height;\r
 \r
-      //      System.out.println("New scale = " + scale);\r
-      img = createImage(getSize().width, getSize().height);\r
-      ig = img.getGraphics();\r
+        scale = findScale();\r
 \r
-    }\r
+        //      System.out.println("New scale = " + scale);\r
+        img = createImage(getSize().width, getSize().height);\r
+        ig = img.getGraphics();\r
 \r
-    drawBackground(ig, Color.black);\r
-    drawScene(ig);\r
-    if (drawAxes == true)\r
-    {\r
-      drawAxes(ig);\r
-    }\r
+      }\r
 \r
-    g.drawImage(img, 0, 0, this);\r
+      drawBackground(ig, Color.black);\r
+      drawScene(ig);\r
+      if (drawAxes == true)\r
+      {\r
+        drawAxes(ig);\r
+      }\r
+\r
+      g.drawImage(img, 0, 0, this);\r
+    }\r
   }\r
 \r
   public void drawAxes(Graphics g)\r