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.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  }