1
2
3
4
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 }