Merge branch 'Jalview-JS/develop' into merge_js_develop
[jalview.git] / src / jalview / gui / WebserviceInfo.java
index 0a46600..b88102e 100644 (file)
@@ -46,6 +46,8 @@ import javax.swing.JTabbedPane;
 import javax.swing.JTextArea;
 import javax.swing.event.HyperlinkEvent;
 import javax.swing.event.HyperlinkListener;
+import javax.swing.event.InternalFrameAdapter;
+import javax.swing.event.InternalFrameEvent;
 import javax.swing.text.html.HTMLEditorKit;
 import javax.swing.text.html.StyleSheet;
 
@@ -82,7 +84,7 @@ public class WebserviceInfo extends GWebserviceInfo
 
   Image image;
 
-  int angle = 0;
+  float angle = 0f;
 
   String title = "";
 
@@ -99,7 +101,7 @@ public class WebserviceInfo extends GWebserviceInfo
   {
     super.setVisible(aFlag);
     frame.setVisible(aFlag);
-  };
+  }
 
   JTabbedPane subjobs = null;
 
@@ -257,6 +259,7 @@ public class WebserviceInfo extends GWebserviceInfo
   public WebserviceInfo(String title, String info, int width, int height,
           boolean makeVisible)
   {
+    // no references
     init(title, info, width, height, makeVisible);
   }
 
@@ -320,7 +323,7 @@ public class WebserviceInfo extends GWebserviceInfo
   {
     frame = new JInternalFrame();
     frame.setContentPane(this);
-    Desktop.addInternalFrame(frame, title, makeVisible, width, height);
+    Desktop.addInternalFrame(frame, title, makeVisible, width, height, Desktop.FRAME_ALLOW_RESIZE, Desktop.FRAME_SET_MIN_SIZE_300);
     frame.setClosable(false);
 
     progressBar = new ProgressBar(statusPanel, statusBar);
@@ -352,11 +355,10 @@ public class WebserviceInfo extends GWebserviceInfo
     thread.start();
     final WebserviceInfo thisinfo = this;
     frame.addInternalFrameListener(
-            new javax.swing.event.InternalFrameAdapter()
+            new InternalFrameAdapter()
             {
               @Override
-                       public void internalFrameClosed(
-                      javax.swing.event.InternalFrameEvent evt)
+              public void internalFrameClosed(InternalFrameEvent evt)
               {
                 // System.out.println("Shutting down webservice client");
                 WSClientI service = thisinfo.getthisService();
@@ -364,7 +366,7 @@ public class WebserviceInfo extends GWebserviceInfo
                 {
                   service.cancelJob();
                 }
-              };
+              }
             });
     frame.validate();
 
@@ -711,7 +713,7 @@ public class WebserviceInfo extends GWebserviceInfo
    *          DOCUMENT ME!
    */
   @Override
-protected void cancel_actionPerformed(ActionEvent e)
+  protected void cancel_actionPerformed(ActionEvent e)
   {
     if (!serviceIsCancellable)
     {
@@ -743,9 +745,9 @@ protected void cancel_actionPerformed(ActionEvent e)
     javax.swing.SwingUtilities.invokeLater(new Runnable()
     {
       @Override
-       public void run()
+      public void run()
       {
-        JvOptionPane.showInternalMessageDialog(Desktop.desktop, message,
+        JvOptionPane.showInternalMessageDialog(Desktop.getDesktopPane(), message,
                 title, JvOptionPane.WARNING_MESSAGE);
 
       }
@@ -797,27 +799,27 @@ protected void cancel_actionPerformed(ActionEvent e)
     {
       startTime = System.currentTimeMillis();
 
-      float invSpeed = 30f;
+      float invSpeed = 15f;
+      float factor = 1f;
       while (currentStatus < STATE_STOPPED_OK)
       {
         if (currentStatus == STATE_QUEUING)
         {
           invSpeed = 25f;
+          factor = 1f;
         }
         else if (currentStatus == STATE_RUNNING)
         {
           invSpeed = 10f;
+          factor = (float) (0.5 + 1.5
+                  * (0.5 - (0.5 * Math.sin(3.14159 / 180 * (angle + 45)))));
         }
         try
         {
           Thread.sleep(50);
 
-          int units = (int) ((System.currentTimeMillis() - startTime)
-                  / invSpeed);
-          double factor = 0.5
-                  + 1.5 * (0.5
-                          - (0.5 * Math.sin(Math.toRadians(angle + 45))));
-          angle += units * factor;
+          float delta = (System.currentTimeMillis() - startTime) / invSpeed;
+          angle += delta * factor;
           angle %= 360;
           startTime = System.currentTimeMillis();
 
@@ -842,13 +844,14 @@ protected void cancel_actionPerformed(ActionEvent e)
 
       while (angle < 360)
       {
+        float invSpeed = 5f;
+        float factor = 1f;
         try
         {
           Thread.sleep(25);
 
-          int units = (int) ((System.currentTimeMillis() - startTime)
-                  / 5f);
-          angle += units;
+          float delta = (System.currentTimeMillis() - startTime) / invSpeed;
+          angle += delta * factor;
           startTime = System.currentTimeMillis();
 
           if (angle >= 360)
@@ -888,9 +891,9 @@ protected void cancel_actionPerformed(ActionEvent e)
       if (image != null)
       {
         int x = image.getWidth(this) / 2, y = image.getHeight(this) / 2;
-        g.rotate(Math.toRadians(angle), x, y);
+        g.rotate(3.14159 / 180 * (angle), x, y);
         g.drawImage(image, 0, 0, this);
-        g.rotate(-Math.toRadians(angle), x, y);
+        g.rotate(-3.14159 / 180 * (angle), x, y);
       }
     }
 
@@ -926,6 +929,12 @@ public void hyperlinkUpdate(HyperlinkEvent e)
   {
     progressBar.setProgressBar(message, id);
   }
+  
+  @Override
+  public void removeProgressBar(long id)
+  {
+    progressBar.removeProgressBar(id);
+  }
 
   @Override
   public void registerHandler(final long id,