not added to the palette layer
[jalview.git] / src / jalview / gui / WebserviceInfo.java
1 package jalview.gui;\r
2 \r
3 import java.awt.*;\r
4 import java.awt.event.*;\r
5 import javax.swing.*;\r
6 import jalview.jbgui.GWebserviceInfo;\r
7 \r
8 public class WebserviceInfo extends GWebserviceInfo\r
9 {\r
10 \r
11   public static final int STATE_QUEUING = 0;\r
12   public static final int STATE_RUNNING = 1;\r
13   public static final int STATE_STOPPED_OK = 2;\r
14   public static final int STATE_STOPPED_ERROR = 3;\r
15   int currentStatus = STATE_QUEUING;\r
16   Image image;\r
17   int angle = 0;\r
18 \r
19   String title="";\r
20 \r
21   public WebserviceInfo(String title, String info)\r
22   {\r
23     init(title, info, 520, 500);\r
24   }\r
25 \r
26   public WebserviceInfo(String title, String info, int width, int height)\r
27   {\r
28     init(title, info, width, height);\r
29   }\r
30 \r
31   void init(String title, String info, int width, int height)\r
32   {\r
33     JInternalFrame frame = new JInternalFrame();\r
34     frame.setContentPane(this);\r
35     Desktop.addInternalFrame(frame, title, width, height);\r
36 \r
37     this.title = title;\r
38     setInfoText(info);\r
39     java.net.URL url = getClass().getResource("/images/logo.gif");\r
40     image = java.awt.Toolkit.getDefaultToolkit().createImage(url);\r
41     MediaTracker mt = new MediaTracker(this);\r
42     mt.addImage(image, 0);\r
43     try\r
44     {\r
45       mt.waitForID(0);\r
46     }\r
47     catch (Exception ex)\r
48     {}\r
49 \r
50 \r
51     AnimatedPanel ap = new AnimatedPanel();\r
52     titlePanel.add(ap, BorderLayout.CENTER);\r
53     Thread thread = new Thread(ap);\r
54     thread.start();\r
55   }\r
56 \r
57   public void setStatus(int status)\r
58   {\r
59     currentStatus = status;\r
60   }\r
61 \r
62   public String getInfoText()\r
63   {   return infoText.getText();  }\r
64 \r
65   public void setInfoText(String text)\r
66   {   infoText.setText(text);     }\r
67 \r
68   public void appendInfoText(String text)\r
69   {  infoText.append(text);  }\r
70 \r
71   public String getProgressText()\r
72   {   return progressText.getText();  }\r
73 \r
74   public void setProgressText(String text)\r
75   {   progressText.setText(text);   }\r
76 \r
77   public void appendProgressText(String text)\r
78   {   progressText.append(text);  }\r
79 \r
80   protected void cancel_actionPerformed(ActionEvent e)\r
81   {\r
82     JOptionPane.showInternalMessageDialog(Desktop.desktop,\r
83                                           "Cancel not implemented yet!!" ,\r
84                                           "Cancel job"\r
85                                           ,JOptionPane.WARNING_MESSAGE);\r
86   }\r
87 \r
88 \r
89   class AnimatedPanel extends JPanel implements Runnable\r
90   {\r
91     public void run()\r
92     {\r
93       while(currentStatus<STATE_STOPPED_OK)\r
94       try\r
95       {\r
96         Thread.sleep(10);\r
97         angle += 1;\r
98         angle %= 360;\r
99         repaint();\r
100       }\r
101       catch (Exception ex)\r
102       {}\r
103       angle = 0;\r
104       cancel.setEnabled(false);\r
105 \r
106     }\r
107 \r
108     public void paintComponent(Graphics g1)\r
109     {\r
110       Graphics2D g = (Graphics2D) g1;\r
111       g.setColor(Color.white);\r
112       g.fillRect(0, 0, getWidth(), getHeight());\r
113       if (image != null)\r
114       {\r
115         g.rotate(Math.toRadians(angle), 28, 28);\r
116         g.drawImage(image, 10, 10, this);\r
117         g.rotate( -Math.toRadians(angle), 28, 28);\r
118       }\r
119       g.setFont(new Font("Arial", Font.BOLD, 12));\r
120       g.setColor(Color.black);\r
121       switch(currentStatus)\r
122       {\r
123         case STATE_QUEUING:\r
124           g.drawString(title.concat(" - queuing"), 60, 30);\r
125           break;\r
126         case STATE_RUNNING:\r
127           g.drawString(title.concat(" - running"), 60, 30);\r
128           break;\r
129         case STATE_STOPPED_OK:\r
130           g.drawString(title.concat(" - complete"), 60, 30);\r
131           break;\r
132         case STATE_STOPPED_ERROR:\r
133           g.drawString(title.concat(" - error!"), 60, 30);\r
134           break;\r
135       }\r
136 \r
137     }\r
138   }\r
139 }\r