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.gui;
7   
8   import net.kwfgrid.gworkflowdl.protocol.structure.ProtocolWorkflow;
9   
10  import org.glassbox.executor.Executor;
11  
12  import java.awt.BorderLayout; 
13  import javax.swing.*;
14  
15  public class WorkflowInspectorFrame extends JFrame {
16      AbstractWorkflowElementEditor _view;
17      WorkflowDocumentView _documentview;
18      WorkflowPropertiesEditor _propertieseditor;
19      WorkflowIDView _idview;
20      WorkflowVersionNumberView _vnview;
21      WorkflowDescriptionEditor _descriptioneditor;
22      boolean _editable;
23      ProtocolWorkflow _workflow;
24      Executor _executor;
25      
26      public WorkflowInspectorFrame(ProtocolWorkflow workflow, Executor executor) {
27  	super("Workflow Inspector");
28  	_workflow = workflow;
29  	_executor = executor;
30  	getContentPane().setLayout(new BorderLayout());
31  	_view = null;
32  	_documentview = null;
33  	_propertieseditor = null;
34  	_descriptioneditor = null;
35  	_idview = null;
36  	_vnview = null;
37  	_editable = true;
38  	_workflow = null;
39      }
40      
41      public void setEnabled(boolean enabled) {
42  	super.setEnabled(enabled);
43  	if (_view!=null) _view.setEnabled(enabled);
44      }
45      
46      public void setEditable(boolean editable) {
47  	_editable = editable;
48  	if (_view!=null) _view.setEditable(editable);
49      }
50      
51      public void updateWorkflowDocument() {
52  	if (_view!=null) _documentview.updateWorkflowDocument();
53      }
54      
55      public void setWorkflow(ProtocolWorkflow workflow) {
56  	if (_view!=null && workflow != _workflow) {
57  	    _view.dispose();
58  	    getContentPane().removeAll();
59  	    getContentPane().invalidate();
60  	}
61  	if (workflow!=null && workflow != _workflow) {
62  	    _documentview = new WorkflowDocumentView(workflow);
63  	    _propertieseditor = new WorkflowPropertiesEditor(_executor, workflow);
64  	    _idview = new WorkflowIDView(workflow);
65  	    _vnview = new WorkflowVersionNumberView(workflow);
66  	    _descriptioneditor = new WorkflowDescriptionEditor(_executor, workflow);
67  	    _view = new WorkflowElementEditorContainer(workflow,
68  						       workflow,
69  						       new AbstractWorkflowElementView[] { _idview, 
70  											   _vnview, 
71  											   _descriptioneditor,
72  											   _propertieseditor, 
73  											   _documentview },
74  						       new double[] { 0.0, 0.0, 0.3, 0.0, 0.7 });
75  	    getContentPane().add(_view.getView(), BorderLayout.CENTER);
76  	    getContentPane().setSize(getContentPane().getLayout().preferredLayoutSize(getContentPane()));
77  	    getContentPane().validate();
78  	    _view.setEnabled(isEnabled());
79  	    _view.setEditable(_editable);
80  	    _documentview.updateWorkflowDocument();
81  	    pack();
82  	    show();
83  	} else if (workflow != null && workflow == _workflow) {
84  	    show();
85  	} else {
86  	    _view = null;
87  	    _documentview = null;
88  	    _propertieseditor = null;
89  	    _descriptioneditor = null;
90  	    _idview = null;
91  	    _vnview = null;
92  	    hide();
93  	} 
94  	_workflow = workflow;
95      }
96  }