View Javadoc

1   /*
2    * Copyright (c) 2005, The K-Wf Grid Consortium
3    * Fraunhofer Institute for Computer Architecture and Software Technology
4    * See http://www.kwfgrid.eu and http://www.first.fraunhofer.de for more details.
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