1
2
3
4
5
6 package net.kwfgrid.gwui.gui;
7
8 import net.kwfgrid.gworkflowdl.protocol.structure.ProtocolTransition;
9 import net.kwfgrid.gworkflowdl.protocol.structure.ProtocolWorkflow;
10 import net.kwfgrid.gworkflowdl.structure.*;
11
12 import org.glassbox.executor.Executor;
13
14 import java.awt.*;
15 import java.awt.event.*;
16 import javax.swing.*;
17 import javax.swing.border.TitledBorder;
18
19 public class NullOperationEditor extends AbstractWorkflowElementEditor implements ActionListener {
20 private JPanel _view;
21 private JButton _addbutton;
22
23 public NullOperationEditor(Executor executor, ProtocolWorkflow workflow, ProtocolTransition transition) {
24 super(executor, workflow, transition);
25 _view = null;
26 _addbutton = null;
27 }
28
29 public void actionPerformed(ActionEvent e) {
30 final Transition transition = (Transition)getElement();
31 getExecutor().execute(new GUIMethodCallTask("Adding empty operation to transition "+transition.getID()+" ...", getExecutor(), this) {
32 protected void execute() {
33 transition.setOperation(Factory.newOperation());
34 }
35 });
36 }
37
38 protected void updateState() {
39 _addbutton.setEnabled(isEnabled() && isEditable() && !isPerformingTask());
40 }
41
42 protected void updateView() {
43 updateState();
44 }
45
46 public JComponent getView() {
47 if (_view == null) {
48 _addbutton = new JButton("concretise to abstract operation");
49 _addbutton.addActionListener(this);
50 _view = new JPanel();
51 _view.setLayout(new BoxLayout(_view, BoxLayout.X_AXIS));
52 _view.add(new JLabel(" "));
53 _view.add(Box.createHorizontalGlue());
54 _view.add(_addbutton);
55 _view.setBorder(createBorder("Control Transition"));
56 }
57 return _view;
58 }
59 }