new class
authoramwaterhouse <Andrew Waterhouse>
Thu, 14 Apr 2005 15:03:40 +0000 (15:03 +0000)
committeramwaterhouse <Andrew Waterhouse>
Thu, 14 Apr 2005 15:03:40 +0000 (15:03 +0000)
src/jalview/gui/WebserviceInfo.java [new file with mode: 0755]
src/jalview/jbgui/GWebserviceInfo.java [new file with mode: 0755]

diff --git a/src/jalview/gui/WebserviceInfo.java b/src/jalview/gui/WebserviceInfo.java
new file mode 100755 (executable)
index 0000000..82f8f1c
--- /dev/null
@@ -0,0 +1,141 @@
+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
diff --git a/src/jalview/jbgui/GWebserviceInfo.java b/src/jalview/jbgui/GWebserviceInfo.java
new file mode 100755 (executable)
index 0000000..71988b3
--- /dev/null
@@ -0,0 +1,81 @@
+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)
+  {
+
+  }
+}