import java.awt.BorderLayout;
import java.awt.Color;
-import java.awt.Font;
+import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.MediaTracker;
+import java.awt.RenderingHints;
import java.awt.event.ActionEvent;
import java.awt.image.BufferedImage;
import java.util.Vector;
import javax.swing.JComponent;
import javax.swing.JEditorPane;
import javax.swing.JInternalFrame;
-import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
+import javax.swing.event.InternalFrameAdapter;
+import javax.swing.event.InternalFrameEvent;
import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.StyleSheet;
Image image;
- int angle = 0;
+ float angle = 0f;
String title = "";
{
super.setVisible(aFlag);
frame.setVisible(aFlag);
- };
+ }
JTabbedPane subjobs = null;
// revert to a tabbed pane.
JScrollPane firstpane;
this.remove(firstpane = (JScrollPane) jobPanes.get(0));
- subjobs = jalview.jbgui.swing.JTabbedPane.createTabbedPane();
+ subjobs = new JTabbedPane();
this.add(subjobs, BorderLayout.CENTER);
subjobs.add(firstpane);
subjobs.setTitleAt(0, firstpane.getName());
setInfoText(info);
java.net.URL url = getClass()
- .getResource("/images/Jalview_Logo_small.png");
+ .getResource("/images/Jalview_Logo_small_with_border.png");
image = java.awt.Toolkit.getDefaultToolkit().createImage(url);
MediaTracker mt = new MediaTracker(this);
}
AnimatedPanel ap = new AnimatedPanel();
- titlePanel.add(ap, BorderLayout.CENTER);
+ ap.setPreferredSize(new Dimension(60, 60));
+ titlePanel.add(ap, BorderLayout.WEST);
+ titlePanel.add(titleText, BorderLayout.CENTER);
+ setStatus(currentStatus);
Thread thread = new Thread(ap);
thread.start();
final WebserviceInfo thisinfo = this;
frame.addInternalFrameListener(
- new javax.swing.event.InternalFrameAdapter()
+ new InternalFrameAdapter()
{
- public void internalFrameClosed(
- javax.swing.event.InternalFrameEvent evt)
+ @Override
+ public void internalFrameClosed(InternalFrameEvent evt)
{
// System.out.println("Shutting down webservice client");
WSClientI service = thisinfo.getthisService();
{
service.cancelJob();
}
- };
+ }
});
frame.validate();
public void setStatus(int status)
{
currentStatus = status;
+
+ String message = null;
+ switch (currentStatus)
+ {
+ case STATE_QUEUING:
+ message = MessageManager.getString("label.state_queueing");
+ break;
+
+ case STATE_RUNNING:
+ message = MessageManager.getString("label.state_running");
+ break;
+
+ case STATE_STOPPED_OK:
+ message = MessageManager.getString("label.state_completed");
+ break;
+
+ case STATE_CANCELLED_OK:
+ message = MessageManager.getString("label.state_job_cancelled");
+ break;
+
+ case STATE_STOPPED_ERROR:
+ message = MessageManager.getString("label.state_job_error");
+ break;
+
+ case STATE_STOPPED_SERVERERROR:
+ message = MessageManager.getString("label.server_error_try_later");
+ break;
+ }
+ titleText.setText(title + (message == null ? "" : " - " + message));
+ titleText.repaint();
}
/**
* @param e
* DOCUMENT ME!
*/
+ @Override
protected void cancel_actionPerformed(ActionEvent e)
{
if (!serviceIsCancellable)
{
javax.swing.SwingUtilities.invokeLater(new Runnable()
{
+ @Override
public void run()
{
JvOptionPane.showInternalMessageDialog(Desktop.desktop, message,
BufferedImage offscreen;
+ @Override
public void run()
{
startTime = System.currentTimeMillis();
+ float invSpeed = 15f;
+ float factor = 1f;
while (currentStatus < STATE_STOPPED_OK)
{
+ if (currentStatus == STATE_QUEUING)
+ {
+ invSpeed = 25f;
+ factor = 1f;
+ }
+ else if (currentStatus == STATE_RUNNING)
+ {
+ invSpeed = 10f;
+ factor = (float) (0.5 + 1.5
+ * (0.5 - (0.5 * Math.sin(3.14159 / 180 * (angle + 45)))));
+ }
try
{
Thread.sleep(50);
- int units = (int) ((System.currentTimeMillis() - startTime)
- / 10f);
- angle += units;
+ float delta = (System.currentTimeMillis() - startTime) / invSpeed;
+ angle += delta * factor;
angle %= 360;
startTime = System.currentTimeMillis();
if (currentStatus >= STATE_STOPPED_OK)
{
+ park();
angle = 0;
}
cancel.setEnabled(false);
}
+ public void park()
+ {
+ startTime = System.currentTimeMillis();
+
+ while (angle < 360)
+ {
+ float invSpeed = 5f;
+ float factor = 1f;
+ try
+ {
+ Thread.sleep(25);
+
+ float delta = (System.currentTimeMillis() - startTime) / invSpeed;
+ angle += delta * factor;
+ startTime = System.currentTimeMillis();
+
+ if (angle >= 360)
+ {
+ angle = 360;
+ }
+
+ repaint();
+ } catch (Exception ex)
+ {
+ }
+ }
+
+ }
+
void drawPanel()
{
if (offscreen == null || offscreen.getWidth(this) != getWidth()
|| offscreen.getHeight(this) != getHeight())
{
offscreen = new BufferedImage(getWidth(), getHeight(),
- BufferedImage.TYPE_INT_ARGB);
+ BufferedImage.TYPE_INT_RGB);
}
Graphics2D g = (Graphics2D) offscreen.getGraphics();
+ g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
+ RenderingHints.VALUE_ANTIALIAS_ON);
+ g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
+ RenderingHints.VALUE_INTERPOLATION_BICUBIC);
+ g.setRenderingHint(RenderingHints.KEY_RENDERING,
+ RenderingHints.VALUE_RENDER_QUALITY);
+
g.setColor(Color.white);
g.fillRect(0, 0, getWidth(), getHeight());
- g.setFont(new Font("Arial", Font.BOLD, 12));
- g.setColor(Color.black);
-
- switch (currentStatus)
- {
- case STATE_QUEUING:
- g.drawString(
- title.concat(" - ").concat(
- MessageManager.getString("label.state_queueing")),
- 60, 30);
-
- break;
-
- case STATE_RUNNING:
- g.drawString(
- title.concat(" - ").concat(
- MessageManager.getString("label.state_running")),
- 60, 30);
-
- break;
-
- case STATE_STOPPED_OK:
- g.drawString(
- title.concat(" - ").concat(
- MessageManager.getString("label.state_completed")),
- 60, 30);
-
- break;
-
- case STATE_CANCELLED_OK:
- g.drawString(
- title.concat(" - ")
- .concat(MessageManager
- .getString("label.state_job_cancelled")),
- 60, 30);
-
- break;
-
- case STATE_STOPPED_ERROR:
- g.drawString(
- title.concat(" - ").concat(
- MessageManager.getString("label.state_job_error")),
- 60, 30);
-
- break;
-
- case STATE_STOPPED_SERVERERROR:
- g.drawString(
- title.concat(" - ")
- .concat(MessageManager
- .getString("label.server_error_try_later")),
- 60, 30);
-
- break;
- }
-
if (image != null)
{
int x = image.getWidth(this) / 2, y = image.getHeight(this) / 2;
- g.rotate(Math.toRadians(angle), 10 + x, 10 + y);
- g.drawImage(image, 10, 10, this);
- g.rotate(-Math.toRadians(angle), 10 + x, 10 + y);
+ g.rotate(3.14159 / 180 * (angle), x, y);
+ g.drawImage(image, 0, 0, this);
+ g.rotate(-3.14159 / 180 * (angle), x, y);
}
}
- public void paintComponent(Graphics g1)
+ @Override
+ public void paintComponent(Graphics g1)
{
drawPanel();
renderAsHtml = b;
}
- public void hyperlinkUpdate(HyperlinkEvent e)
+ @Override
+public void hyperlinkUpdate(HyperlinkEvent e)
{
Desktop.hyperlinkUpdate(e);
}