- Timestamp:
- 07/02/13 16:20:07 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
java/main/src/main/java/com/framsticks/gui/controls/ProcedureControl.java
r84 r90 1 1 package com.framsticks.gui.controls; 2 2 3 import com.framsticks.core.Instance; 4 import com.framsticks.core.Path; 3 5 import com.framsticks.gui.Gui; 6 import com.framsticks.gui.TreeNode; 4 7 import com.framsticks.params.Param; 8 import com.framsticks.params.ValueParam; 5 9 import com.framsticks.params.types.ProcedureParam; 10 import com.framsticks.util.Logging; 11 import com.framsticks.util.StateFunctor; 12 import com.framsticks.util.dispatching.RunAt; 6 13 7 14 import javax.swing.*; 8 15 import javax.swing.border.BevelBorder; 16 17 import org.apache.log4j.Logger; 18 9 19 import java.awt.event.ActionEvent; 10 20 import java.awt.event.ActionListener; 11 21 import java.util.HashMap; 22 import java.util.LinkedList; 23 import java.util.List; 12 24 import java.util.Map; 13 25 14 26 @SuppressWarnings("serial") 15 public class ProcedureControl extends Control { 16 // private static final Logger log = Logger.getLogger(Control.class.getName()); 27 public class ProcedureControl extends Control implements ControlOwner { 28 29 private static final Logger log = Logger.getLogger(ProcedureControl.class); 17 30 18 31 protected final JButton procedureButton; 19 32 20 final protected Map< Param, Control> components = new HashMap<Param, Control>();33 final protected Map<ValueParam, ValueControl> components = new HashMap<>(); 21 34 22 35 public ProcedureControl(ProcedureParam procedureParam) { … … 24 37 25 38 procedureButton = new JButton("Call"); 39 procedureButton.setName("call"); 26 40 27 41 this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS)); 28 42 29 Gui.fillWithControls(this, procedureParam.getArgumentsType(), components );43 Gui.fillWithControls(this, procedureParam.getArgumentsType(), components, ValueControl.class); 30 44 31 45 if (components.size() != procedureParam.getArgumentsType().size()) { … … 39 53 @Override 40 54 public void actionPerformed(ActionEvent e) { 55 TreeNode treeNode = owner.getCurrentTreeNode(); 56 assert treeNode != null; 41 57 42 /* 43 Node node = panel.getCurrentNode(); 44 if (argumentWindow != null) { 45 argumentWindow.askForArguments(); 46 return; 58 log.debug("calling " + getParam() + " on " + treeNode); 59 final Path path = treeNode.getInstancePath(); 60 61 final List<Object> arguments = new LinkedList<Object>(); 62 for (Param arg : getParam().getArgumentsType()) { 63 arguments.add(((ValueControl) components.get(arg)).getCurrentValue()); 47 64 } 48 node.getConnection().send(new CallQuery().setMethod(param.getId()).setPath(node.getPath()).setCallback(new QueryCallback() { 65 66 path.getInstance().dispatch(new RunAt<Instance>() { 49 67 @Override 50 public void call(boolean ok, String comment, SourceInterface content) { 51 if (!ok) { 52 log.error("failed to call method: " + param); 53 return; 54 } 55 log.debug("successful call of method: " + param); 68 public void run() { 69 path.getInstance().call(path, getParam(), arguments.toArray(), new StateFunctor() { 70 @Override 71 public void call(Exception e) { 72 Logging.log(log, "call procedure", path, e); 73 } 74 }); 56 75 } 57 })); 58 */ 76 }); 59 77 } 60 78 }); … … 63 81 } 64 82 83 @Override 84 public JPanel getPanel() { 85 return this; 86 } 87 88 @Override 89 public TreeNode getCurrentTreeNode() { 90 return owner.getCurrentTreeNode(); 91 } 92 93 @Override 94 public ProcedureParam getParam() { 95 return (ProcedureParam) param; 96 } 97 65 98 }
Note: See TracChangeset
for help on using the changeset viewer.