public void actionPerformed(ActionEvent e) { Method method = (Method)mbox.getSelectedItem(); MActivity mact = vact.getMActivity(); mact.setProperty("method", method==null? null: SReflect.getMethodSignature(method), true); mact.removeParameters(); if(method!=null) { Class<?>[] ptypes = method.getParameterTypes(); if(ptypes!=null) { for(int i=0; i<ptypes.length; i++) { mact.addParameter(new MParameter(MParameter.DIRECTION_OUT, new ClassInfo(ptypes[i]), "param"+i, null)); } } } } });
for(MParameter param : params) act.addParameter(param);
/** * Adds a parameter. */ public void addParameter(MParameter param) { if (isEditing()) { getCellEditor().stopCellEditing(); } int row = getRowCount(); getBpmnActivity().addParameter(param); ((ParameterTableModel) getModel()).fireTableRowsInserted(row, row); // getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(new JComboBox(new Object[] { MParameter.DIRECTION_IN, MParameter.DIRECTION_OUT, MParameter.DIRECTION_INOUT }))); activity.addedParameter(param); }
act.addParameter(param); act.addParameter(param); act.addParameter(param);
act.addParameter(param); act.addParameter(param); act.addParameter(param);
public void run() { // To schedule a step an implicit activity is created. // In order to put the step parameter value it is necessary // to have an edge with a mapping. Otherwise the parameter // value with be deleted in process thread updateParametersBeforeStep(). MActivity act = new MActivity(); act.setName("External Step Activity: "+(cnt++)); act.setClazz(new ClassInfo(ExecuteStepTask.class)); act.addParameter(new MParameter(MParameter.DIRECTION_IN, new ClassInfo(Object[].class), "step", null)); act.setActivityType(MBpmnModel.TASK); MSequenceEdge edge = new MSequenceEdge(); edge.setTarget(act); UnparsedExpression exp = new UnparsedExpression(null, (Class<?>) null, "step", null); SJavaParser.parseExpression(exp, null, null); // edge.addParameterMapping("step", SJavaParser.parseExpression("step", null, null), null); edge.addParameterMapping("step", exp, null); act.addIncomingSequenceEdge(edge); MPool pl = pool!=null? bpmnmodel.getPool(pool): (MPool)bpmnmodel.getPools().get(0); act.setPool(pl); ProcessThread thread = new ProcessThread(""+idcnt++, act, context, BpmnInterpreter.this); thread.setLastEdge(edge); thread.setParameterValue("step", new Object[]{step, ret}); context.addExternalThread(thread); } });