1
2
3
4
5
6 package net.kwfgrid.gwui.graphview;
7
8 import java.awt.*;
9 import javax.swing.*;
10 import java.awt.image.*;
11
12 import org.glassbox.Theme;
13 import org.glassbox.graphview.NodeIconSet;
14
15 import de.fzi.wim.guibase.graphview.graph.Node;
16
17 /***
18 A status icon for TransitionNodes. It will appear when a Transition is in status running or active.
19 The icon can be configured in the application's theme by modifying the property
20 <ul>
21 <li>kwfgrid.TransitionStatusIcon.icon</li>
22 </ul>
23 */
24 public class TransitionStatusIcon implements NodeIconSet.Icon {
25 private static final String ICON_KEY = "kwfgrid.TransitionStatusIcon.icon";
26
27 public static final String STATUS_UNDEFINED = "UNDEFINED";
28 public static final String STATUS_INITIATED = "INITIATED";
29 public static final String STATUS_ACTIVE = "ACTIVE";
30 public static final String STATUS_RUNNING = "RUNNING";
31 public static final String STATUS_TERMINATED = "TERMINATED";
32 public static final String STATUS_COMPLETED = "COMPLETED";
33 public static final String STATUS_SUSPENDED = "SUSPENDED";
34
35 private Icon _icon;
36
37 public TransitionStatusIcon(ImageObserver observer) {
38 _icon = Theme.getIcon(ICON_KEY);
39 if (_icon instanceof ImageIcon)
40 ((ImageIcon)_icon).setImageObserver(observer);
41 }
42
43 public int getIconWidth() {
44 return _icon.getIconWidth();
45 }
46
47 public int getIconHeight() {
48 return _icon.getIconHeight();
49 }
50
51 public void paintIcon(Component c, Graphics g, int x, int y) {
52 _icon.paintIcon(c, g, x, y);
53 }
54
55 public boolean affectsNode(Node node) {
56 if (node instanceof TransitionNode) {
57 TransitionNode tnode = (TransitionNode)node;
58 String currentstatus = tnode.getTransition().getProperties().get("status");
59 return
60 STATUS_INITIATED.equals(currentstatus) ||
61 STATUS_ACTIVE.equals(currentstatus) ||
62 STATUS_SUSPENDED.equals(currentstatus) ||
63 STATUS_RUNNING.equals(currentstatus);
64
65 }
66 return false;
67 }
68
69 public String getToolTipText(Node node) {
70 if (node instanceof TransitionNode) {
71 TransitionNode tnode = (TransitionNode)node;
72 String currentstatus = tnode.getTransition().getProperties().get("status");
73 StringBuffer t = new StringBuffer();
74 t.append("<html>Activity is <b>").append(currentstatus).append("</b>");
75 return t.toString();
76 }
77 return null;
78 }
79 }
80