/** * Helper method connecting two activities using this edge. * The previous connection is removed. * * @param source New source of the edge. * @param target New target of the edge. */ public void connect(MActivity source, MActivity target) { if (this.source != null) { this.source.removeOutgoingSequenceEdge(this); } if (this.target != null) { this.target.removeIncomingSequenceEdge(this); } this.source = source; this.target = target; source.addOutgoingSequenceEdge(this); target.addIncomingSequenceEdge(this); }
act.addIncomingSequenceEdge(edge); edge.setTarget(act);
act.addIncomingSequenceEdge(edge); edge.setTarget(act);
/** * Sets the target. */ public void setTarget(mxICell target) { if (getBpmnElement() != null) { MSequenceEdge medge = (MSequenceEdge) getBpmnElement(); if (getTarget() != null) { ((MActivity) ((VActivity) getTarget()).getBpmnElement()).removeIncomingSequenceEdge(medge); medge.setTarget(null); } if (target != null) { MActivity mtarget = (MActivity) ((VActivity) target).getBpmnElement(); mtarget.addIncomingSequenceEdge(medge); medge.setTarget(mtarget); } } super.setTarget(target); } }
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); } });