- Graphics2D g = (Graphics2D) g1;\r
- g.setColor(Color.white);\r
- g.fillRect(0, 0, getWidth(), getHeight());\r
- if (image != null)\r
- {\r
- g.rotate(Math.toRadians(angle), 28, 28);\r
- g.drawImage(image, 10, 10, this);\r
- g.rotate( -Math.toRadians(angle), 28, 28);\r
- }\r
- g.setFont(new Font("Arial", Font.BOLD, 12));\r
- g.setColor(Color.black);\r
- switch(currentStatus)\r
- {\r
- case STATE_QUEUING:\r
- g.drawString(title.concat(" - queuing"), 60, 30);\r
- break;\r
- case STATE_RUNNING:\r
- g.drawString(title.concat(" - running"), 60, 30);\r
- break;\r
- case STATE_STOPPED_OK:\r
- g.drawString(title.concat(" - complete"), 60, 30);\r
- break;\r
-\r
- case STATE_CANCELLED_OK:\r
- g.drawString(title.concat(" - job cancelled!"), 60, 30);\r
- break;\r
-\r
- case STATE_STOPPED_ERROR:\r
- g.drawString(title.concat(" - job error!"), 60, 30);\r
- break;\r
- case STATE_STOPPED_SERVERERROR:\r
- g.drawString(title.concat(" - Server Error! (try later)"), 60, 30);\r
- break;\r
- }\r
+ if (!serviceIsCancellable)\r
+ {\r
+ JOptionPane.showInternalMessageDialog(Desktop.desktop,\r
+ "This job cannot be cancelled.\nJust close the window.", "Cancel job",\r
+ JOptionPane.WARNING_MESSAGE);\r
+ }\r
+ else\r
+ {\r
+ frame.setClosable(true);\r
+ thisService.cancelJob();\r
+ }\r
+ }\r
+\r
+ public void setResultsReady()\r
+ {\r
+ frame.setClosable(true);\r
+ buttonPanel.remove(cancel);\r
+ buttonPanel.add(showResultsNewFrame);\r
+ buttonPanel.add(mergeResults);\r
+ buttonPanel.setLayout(new GridLayout(2,1,5,5));\r
+ buttonPanel.validate();\r
+ validate();\r
+ }\r
+\r
+\r
+ class AnimatedPanel extends JPanel implements Runnable\r
+ {\r
+ long startTime = 0;\r
+ BufferedImage offscreen;\r
+\r
+ public void run()\r
+ {\r
+ startTime = System.currentTimeMillis();\r
+ Graphics2D g = null;\r
+\r
+ while (currentStatus < STATE_STOPPED_OK)\r
+ {\r
+ try\r
+ {\r
+ Thread.sleep(50);\r
+\r
+ int units = (int) ( (System.currentTimeMillis() - startTime) /\r
+ 10f);\r
+ angle += units;\r
+ angle %= 360;\r
+ startTime = System.currentTimeMillis();\r
+\r
+ if (offscreen == null || offscreen.getWidth(this) != getWidth()\r
+ || offscreen.getHeight(this) != getHeight())\r
+ {\r
+ offscreen = new BufferedImage(getWidth(), getHeight(),\r
+ BufferedImage.TYPE_INT_ARGB);\r
+ g = (Graphics2D) offscreen.getGraphics();\r
+ }\r
+\r
+ g.setColor(Color.white);\r
+ g.fillRect(0, 0, getWidth(), getHeight());\r
+\r
+ g.setFont(new Font("Arial", Font.BOLD, 12));\r
+ g.setColor(Color.black);\r
+\r
+ switch (currentStatus)\r
+ {\r
+ case STATE_QUEUING:\r
+ g.drawString(title.concat(" - queuing"), 60, 30);\r
+\r
+ break;\r
+\r
+ case STATE_RUNNING:\r
+ g.drawString(title.concat(" - running"), 60, 30);\r
+\r
+ break;\r
+\r
+ case STATE_STOPPED_OK:\r
+ g.drawString(title.concat(" - complete"), 60, 30);\r
+\r
+ break;\r
+\r
+ case STATE_CANCELLED_OK:\r
+ g.drawString(title.concat(" - job cancelled!"), 60, 30);\r
+\r
+ break;\r
+\r
+ case STATE_STOPPED_ERROR:\r
+ g.drawString(title.concat(" - job error!"), 60, 30);\r
+\r
+ break;\r
+\r
+ case STATE_STOPPED_SERVERERROR:\r
+ g.drawString(title.concat(" - Server Error! (try later)"),\r
+ 60,\r
+ 30);\r
+\r
+ break;\r
+ }\r
+\r
+\r
+ if (currentStatus >= STATE_STOPPED_OK)\r
+ angle = 0;\r
+\r
+ if (image != null)\r
+ {\r
+ g.rotate(Math.toRadians(angle), 28, 28);\r
+ g.drawImage(image, 10, 10, this);\r
+ g.rotate( -Math.toRadians(angle), 28, 28);\r
+ }\r
+\r
+\r
+ repaint();\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ }\r
+ }\r
+\r
+ cancel.setEnabled(false);\r
+ }\r