X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FWebserviceInfo.java;h=9dadee758da8b16b4facc59addca5edc2294a683;hb=ef6291f17491f1c426e2cad44021c31f609e2808;hp=479cfc909ff777c2e8cde0f9fc35256ee279b24e;hpb=129fc8c4f960f978baef88779939592e7b4227d2;p=jalview.git diff --git a/src/jalview/gui/WebserviceInfo.java b/src/jalview/gui/WebserviceInfo.java index 479cfc9..9dadee7 100755 --- a/src/jalview/gui/WebserviceInfo.java +++ b/src/jalview/gui/WebserviceInfo.java @@ -58,6 +58,7 @@ public class WebserviceInfo extends GWebserviceInfo String title = ""; jalview.ws.WSClientI thisService; boolean serviceIsCancellable; + JInternalFrame frame; /** * Creates a new WebserviceInfo object. @@ -114,9 +115,10 @@ public class WebserviceInfo extends GWebserviceInfo */ void init(String title, String info, int width, int height) { - JInternalFrame frame = new JInternalFrame(); + frame = new JInternalFrame(); frame.setContentPane(this); Desktop.addInternalFrame(frame, title, width, height); + frame.setClosable(false); this.title = title; setInfoText(info); @@ -227,10 +229,23 @@ public class WebserviceInfo extends GWebserviceInfo } else { + frame.setClosable(true); thisService.cancelJob(); } } + public void setResultsReady() + { + frame.setClosable(true); + buttonPanel.remove(cancel); + buttonPanel.add(showResultsNewFrame); + buttonPanel.add(mergeResults); + buttonPanel.setLayout(new GridLayout(2,1,5,5)); + buttonPanel.validate(); + validate(); + } + + class AnimatedPanel extends JPanel implements Runnable { long startTime = 0; @@ -239,6 +254,7 @@ public class WebserviceInfo extends GWebserviceInfo public void run() { startTime = System.currentTimeMillis(); + Graphics2D g = null; while (currentStatus < STATE_STOPPED_OK) { @@ -246,7 +262,8 @@ public class WebserviceInfo extends GWebserviceInfo { Thread.sleep(50); - int units = (int) ((System.currentTimeMillis() - startTime) / 10f); + int units = (int) ( (System.currentTimeMillis() - startTime) / + 10f); angle += units; angle %= 360; startTime = System.currentTimeMillis(); @@ -255,20 +272,13 @@ public class WebserviceInfo extends GWebserviceInfo || offscreen.getHeight(this) != getHeight()) { offscreen = new BufferedImage(getWidth(), getHeight(), - BufferedImage.TYPE_INT_RGB); + BufferedImage.TYPE_INT_ARGB); + g = (Graphics2D) offscreen.getGraphics(); } - Graphics2D g = (Graphics2D) offscreen.getGraphics(); g.setColor(Color.white); g.fillRect(0, 0, getWidth(), getHeight()); - if (image != null) - { - g.rotate(Math.toRadians(angle), 28, 28); - g.drawImage(image, 10, 10, this); - g.rotate( -Math.toRadians(angle), 28, 28); - } - g.setFont(new Font("Arial", Font.BOLD, 12)); g.setColor(Color.black); @@ -307,6 +317,18 @@ public class WebserviceInfo extends GWebserviceInfo break; } + + if (currentStatus >= STATE_STOPPED_OK) + angle = 0; + + if (image != null) + { + g.rotate(Math.toRadians(angle), 28, 28); + g.drawImage(image, 10, 10, this); + g.rotate( -Math.toRadians(angle), 28, 28); + } + + repaint(); } catch (Exception ex) @@ -314,7 +336,6 @@ public class WebserviceInfo extends GWebserviceInfo } } - angle = 0; cancel.setEnabled(false); }