X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FWebserviceInfo.java;h=4b4e885fa65d671b3e47b9f1216e4a0d76600a63;hb=3e6b14950a06bb87c147493e4dfff0c4491ea25b;hp=328de9c43a2c208da3ac92f67f76c5b6b0492e6d;hpb=453a97042edaf3e8aaeb5baf39159a687f5b1867;p=jalview.git diff --git a/src/jalview/gui/WebserviceInfo.java b/src/jalview/gui/WebserviceInfo.java index 328de9c..4b4e885 100755 --- a/src/jalview/gui/WebserviceInfo.java +++ b/src/jalview/gui/WebserviceInfo.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -63,7 +63,9 @@ public class WebserviceInfo extends GWebserviceInfo JInternalFrame frame; JTabbedPane subjobs=null; java.util.Vector jobPanes = null; - // tabbed or not + private boolean serviceCanMergeResults = false; + private boolean viewResultsImmediatly = true; + // tabbed or not public synchronized int addJobPane() { JScrollPane jobpane = new JScrollPane(); JTextArea progressText = new JTextArea(); @@ -142,6 +144,7 @@ public class WebserviceInfo extends GWebserviceInfo thisService = newservice; serviceIsCancellable = newservice.isCancellable(); frame.setClosable(!serviceIsCancellable); + serviceCanMergeResults = newservice.canMergeResults(); } /** @@ -359,16 +362,24 @@ public class WebserviceInfo extends GWebserviceInfo } frame.setClosable(true); } - + /** + * Set up GUI for user to get at results - and possibly automatically display + * them if viewResultsImmediatly is set. + */ public void setResultsReady() { frame.setClosable(true); buttonPanel.remove(cancel); buttonPanel.add(showResultsNewFrame); - buttonPanel.add(mergeResults); - buttonPanel.setLayout(new GridLayout(2,1,5,5)); + if (serviceCanMergeResults) + { + buttonPanel.add(mergeResults); + buttonPanel.setLayout(new GridLayout(2, 1, 5, 5)); + } buttonPanel.validate(); validate(); + if (viewResultsImmediatly) + showResultsNewFrame.doClick(); } /** @@ -390,7 +401,6 @@ public class WebserviceInfo extends GWebserviceInfo public void run() { startTime = System.currentTimeMillis(); - Graphics2D g = null; while (currentStatus < STATE_STOPPED_OK) { @@ -404,80 +414,84 @@ public class WebserviceInfo extends GWebserviceInfo angle %= 360; startTime = System.currentTimeMillis(); - if (offscreen == null || offscreen.getWidth(this) != getWidth() - || offscreen.getHeight(this) != getHeight()) - { - offscreen = new BufferedImage(getWidth(), getHeight(), - BufferedImage.TYPE_INT_ARGB); - g = (Graphics2D) offscreen.getGraphics(); - } - - g.setColor(Color.white); - g.fillRect(0, 0, getWidth(), getHeight()); + if (currentStatus >= STATE_STOPPED_OK) + angle = 0; - g.setFont(new Font("Arial", Font.BOLD, 12)); - g.setColor(Color.black); + repaint(); + } + catch (Exception ex) + { + } + } - switch (currentStatus) - { - case STATE_QUEUING: - g.drawString(title.concat(" - queuing"), 60, 30); + cancel.setEnabled(false); + } - break; + void drawPanel() + { + if (offscreen == null || offscreen.getWidth(this) != getWidth() + || offscreen.getHeight(this) != getHeight()) + { + offscreen = new BufferedImage(getWidth(), getHeight(), + BufferedImage.TYPE_INT_ARGB); + } - case STATE_RUNNING: - g.drawString(title.concat(" - running"), 60, 30); + Graphics2D g = (Graphics2D)offscreen.getGraphics(); - break; + g.setColor(Color.white); + g.fillRect(0, 0, getWidth(), getHeight()); - case STATE_STOPPED_OK: - g.drawString(title.concat(" - complete"), 60, 30); + g.setFont(new Font("Arial", Font.BOLD, 12)); + g.setColor(Color.black); - break; + switch (currentStatus) + { + case STATE_QUEUING: + g.drawString(title.concat(" - queuing"), 60, 30); - case STATE_CANCELLED_OK: - g.drawString(title.concat(" - job cancelled!"), 60, 30); + break; - break; + case STATE_RUNNING: + g.drawString(title.concat(" - running"), 60, 30); - case STATE_STOPPED_ERROR: - g.drawString(title.concat(" - job error!"), 60, 30); + break; - break; + case STATE_STOPPED_OK: + g.drawString(title.concat(" - complete"), 60, 30); - case STATE_STOPPED_SERVERERROR: - g.drawString(title.concat(" - Server Error! (try later)"), - 60, - 30); + break; - break; - } + case STATE_CANCELLED_OK: + g.drawString(title.concat(" - job cancelled!"), 60, 30); + break; - if (currentStatus >= STATE_STOPPED_OK) - angle = 0; + case STATE_STOPPED_ERROR: + g.drawString(title.concat(" - job error!"), 60, 30); - if (image != null) - { - g.rotate(Math.toRadians(angle), 28, 28); - g.drawImage(image, 10, 10, this); - g.rotate( -Math.toRadians(angle), 28, 28); - } + break; + case STATE_STOPPED_SERVERERROR: + g.drawString(title.concat(" - Server Error! (try later)"), + 60, + 30); - repaint(); - } - catch (Exception ex) - { - } - } + break; + } - cancel.setEnabled(false); + if (image != null) + { + g.rotate(Math.toRadians(angle), 28, 28); + g.drawImage(image, 10, 10, this); + g.rotate( -Math.toRadians(angle), 28, 28); + } } public void paintComponent(Graphics g1) { - g1.drawImage(offscreen, 0,0,this); + drawPanel(); + + g1.drawImage(offscreen, 0,0,this); } } }