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;
7   
8   import net.kwfgrid.gwui.graphview.WorkflowGraphView;
9   import net.kwfgrid.gwui.graphview.WorkflowGraphAnalyzer;
10  import net.kwfgrid.gwui.graphview.LayoutFactory;
11  import net.kwfgrid.gworkflowdl.protocol.structure.ProtocolWorkflow;
12  
13  import org.glassbox.graphview.GGraphPane;
14  import org.glassbox.gui.*;
15  import org.glassbox.executor.Executor;
16  
17  import javax.swing.JComponent;
18  
19  import org.apache.log4j.Logger;
20  
21  public class WorkflowGraphManager extends AbstractMember implements VisibleMember {
22      public static final String IDENTIFIER = "kwfgrid.WorkflowGraphManager";
23  
24      private static final Logger logger = Logger.getLogger(WorkflowGraphManager.class);
25  
26      private WorkflowGraphView _view;
27  
28      public WorkflowGraphManager(WorkflowGraphAnalyzer analyzer, LayoutFactory layoutfactory) {
29  	_view = new WorkflowGraphView(analyzer, layoutfactory);
30      }
31  
32      public GGraphPane getGraphPane() {
33  	return _view.getGraphPane();
34      }
35  
36      ///
37      /// Implementation of Visible
38      /// ....................................................................................................
39  
40      public JComponent getView() {
41  	return _view.getView();
42      }
43  
44      ///
45      /// Implementation of Member
46      /// ....................................................................................................
47      
48      public void groupPropertyChanged(String name, Object oldvalue, Object newvalue) {
49  	logger.debug("groupPropertyChanged("+name+", "+oldvalue+", "+newvalue+")");
50  
51  	if (name.equals(VisibleGroup.MODAL_MEMBER_KEY)) {
52  	    getView().setEnabled(newvalue==null);
53  	} else if (name.equals(WorkflowGroup.ACTIVE_WORKFLOW_DOCUMENT_KEY)) {
54  	    _view.setWorkflow((ProtocolWorkflow)newvalue);
55  	}
56  
57  	logger.debug("groupPropertyChanged.exit");
58      }
59  
60      public String getIdentifier() {
61  	return IDENTIFIER;
62      }    
63  
64      /***
65         Set the group of this member.
66         @exception IllegalArgumentException If <code>g</code> is not null and not an instance of <code>WorkflowGroup</code>.
67       */
68      public void setGroup(Group g) {
69  	super.setGroup(g);
70  
71  	if (g!=null) {
72  	    _view.setWorkflow((ProtocolWorkflow)g.getProperty(WorkflowGroup.ACTIVE_WORKFLOW_DOCUMENT_KEY));
73  	}
74      }
75  }