--- /dev/null
+package jalview.gui;\r
+\r
+import java.awt.*;\r
+import java.awt.event.*;\r
+import javax.swing.*;\r
+import jalview.jbgui.GWebserviceInfo;\r
+\r
+public class WebserviceInfo extends GWebserviceInfo\r
+{\r
+\r
+ public static final int STATE_QUEUING = 0;\r
+ public static final int STATE_RUNNING = 1;\r
+ public static final int STATE_STOPPED_OK = 2;\r
+ public static final int STATE_STOPPED_ERROR = 3;\r
+ int currentStatus = STATE_QUEUING;\r
+ Image image;\r
+ int angle = 0;\r
+\r
+ String title="";\r
+\r
+ public WebserviceInfo(String title, String info)\r
+ {\r
+ init(title, info, 520, 500);\r
+ }\r
+\r
+ public WebserviceInfo(String title, String info, int width, int height)\r
+ {\r
+ init(title, info, width, height);\r
+ }\r
+\r
+ void init(String title, String info, int width, int height)\r
+ {\r
+ JInternalFrame frame = new JInternalFrame();\r
+ frame.setContentPane(this);\r
+ Desktop.addInternalFrame(frame, title, width, height);\r
+ frame.setLayer(JLayeredPane.PALETTE_LAYER);\r
+\r
+\r
+ this.title = title;\r
+ setInfoText(info);\r
+ java.net.URL url = getClass().getResource("/images/logo.gif");\r
+ image = java.awt.Toolkit.getDefaultToolkit().createImage(url);\r
+ MediaTracker mt = new MediaTracker(this);\r
+ mt.addImage(image, 0);\r
+ try\r
+ {\r
+ mt.waitForID(0);\r
+ }\r
+ catch (Exception ex)\r
+ {}\r
+\r
+\r
+ AnimatedPanel ap = new AnimatedPanel();\r
+ titlePanel.add(ap, BorderLayout.CENTER);\r
+ Thread thread = new Thread(ap);\r
+ thread.start();\r
+ }\r
+\r
+ public void setStatus(int status)\r
+ {\r
+ currentStatus = status;\r
+ }\r
+\r
+ public String getInfoText()\r
+ { return infoText.getText(); }\r
+\r
+ public void setInfoText(String text)\r
+ { infoText.setText(text); }\r
+\r
+ public void appendInfoText(String text)\r
+ { infoText.append(text); }\r
+\r
+ public String getProgressText()\r
+ { return progressText.getText(); }\r
+\r
+ public void setProgressText(String text)\r
+ { progressText.setText(text); }\r
+\r
+ public void appendProgressText(String text)\r
+ { progressText.append(text); }\r
+\r
+ protected void cancel_actionPerformed(ActionEvent e)\r
+ {\r
+ JOptionPane.showInternalMessageDialog(Desktop.desktop,\r
+ "Cancel not implemented yet!!" ,\r
+ "Cancel job"\r
+ ,JOptionPane.WARNING_MESSAGE);\r
+ }\r
+\r
+\r
+ class AnimatedPanel extends JPanel implements Runnable\r
+ {\r
+ public void run()\r
+ {\r
+ while(currentStatus<STATE_STOPPED_OK)\r
+ try\r
+ {\r
+ Thread.sleep(10);\r
+ angle += 1;\r
+ angle %= 360;\r
+ repaint();\r
+ }\r
+ catch (Exception ex)\r
+ {}\r
+ angle = 0;\r
+ cancel.setEnabled(false);\r
+\r
+ }\r
+\r
+ public void paintComponent(Graphics g1)\r
+ {\r
+ 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
+ case STATE_STOPPED_ERROR:\r
+ g.drawString(title.concat(" - error!"), 60, 30);\r
+ break;\r
+ }\r
+\r
+ }\r
+ }\r
+}\r
--- /dev/null
+package jalview.jbgui;
+
+import java.awt.*;
+import javax.swing.*;
+import java.awt.event.*;
+
+public class GWebserviceInfo extends JPanel
+{
+ protected JTextArea infoText = new JTextArea();
+ JScrollPane jScrollPane1 = new JScrollPane();
+ JScrollPane jScrollPane2 = new JScrollPane();
+ protected JTextArea progressText = new JTextArea();
+ JPanel jPanel1 = new JPanel();
+ BorderLayout borderLayout1 = new BorderLayout();
+ BorderLayout borderLayout2 = new BorderLayout();
+ protected JPanel titlePanel = new JPanel();
+ BorderLayout borderLayout3 = new BorderLayout();
+ JPanel jPanel2 = new JPanel();
+ protected JButton cancel = new JButton();
+ GridBagLayout gridBagLayout1 = new GridBagLayout();
+
+ public GWebserviceInfo()
+ {
+ try
+ {
+ jbInit();
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+ private void jbInit() throws Exception
+ {
+ infoText.setFont(new java.awt.Font("Verdana", 0, 10));
+ infoText.setBorder(null);
+ infoText.setEditable(false);
+ infoText.setText("");
+ infoText.setLineWrap(true);
+ infoText.setWrapStyleWord(true);
+ this.setLayout(borderLayout1);
+ progressText.setFont(new java.awt.Font("Verdana", 0, 10));
+ progressText.setBorder(null);
+ progressText.setEditable(false);
+ progressText.setText("");
+ progressText.setLineWrap(true);
+ progressText.setWrapStyleWord(true);
+ jPanel1.setLayout(borderLayout2);
+ titlePanel.setBackground(Color.white);
+ titlePanel.setPreferredSize(new Dimension(0, 60));
+ titlePanel.setLayout(borderLayout3);
+ jScrollPane2.setBorder(null);
+ jScrollPane1.setBorder(null);
+ jScrollPane1.setPreferredSize(new Dimension(400, 70));
+ cancel.setFont(new java.awt.Font("Verdana", 0, 11));
+ cancel.setText("Cancel");
+ cancel.addActionListener(new java.awt.event.ActionListener()
+ {
+ public void actionPerformed(ActionEvent e)
+ {
+ cancel_actionPerformed(e);
+ }
+ });
+ jPanel2.setLayout(gridBagLayout1);
+ jPanel2.setOpaque(false);
+ this.add(jScrollPane2, BorderLayout.CENTER);
+ this.add(jPanel1, BorderLayout.NORTH);
+ jPanel1.add(jScrollPane1, BorderLayout.CENTER);
+ jScrollPane1.getViewport().add(infoText, null);
+ jScrollPane2.getViewport().add(progressText, null);
+ jPanel1.add(titlePanel, BorderLayout.NORTH);
+ titlePanel.add(jPanel2, BorderLayout.EAST);
+ jPanel2.add(cancel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
+ ,GridBagConstraints.SOUTH, GridBagConstraints.NONE, new Insets(24, 5, 21, 5), 0, 0));
+ }
+
+ protected void cancel_actionPerformed(ActionEvent e)
+ {
+
+ }
+}