private void validateModel(BpmnModel model) { FlowElement flowElement = model.getMainProcess().getFlowElement("start1"); assertNotNull(flowElement); assertTrue(flowElement instanceof StartEvent); assertEquals("start1", flowElement.getId()); flowElement = model.getMainProcess().getFlowElement("userTask1"); assertNotNull(flowElement); assertTrue(flowElement instanceof UserTask); assertEquals("userTask1", flowElement.getId()); UserTask userTask = (UserTask) flowElement; assertTrue(userTask.getCandidateUsers().size() == 1); assertTrue(userTask.getCandidateGroups().size() == 1); assertTrue(userTask.getFormProperties().size() == 2); flowElement = model.getMainProcess().getFlowElement("subprocess1"); assertNotNull(flowElement); assertTrue(flowElement instanceof SubProcess); assertEquals("subprocess1", flowElement.getId()); SubProcess subProcess = (SubProcess) flowElement; assertTrue(subProcess.getFlowElements().size() == 5); flowElement = model.getMainProcess().getFlowElement("boundaryEvent1"); assertNotNull(flowElement); assertTrue(flowElement instanceof BoundaryEvent); assertEquals("boundaryEvent1", flowElement.getId()); BoundaryEvent boundaryEvent = (BoundaryEvent) flowElement; assertNotNull(boundaryEvent.getAttachedToRef()); assertEquals("subprocess1", boundaryEvent.getAttachedToRef().getId()); assertEquals(1, boundaryEvent.getEventDefinitions().size()); assertTrue(boundaryEvent.getEventDefinitions().get(0) instanceof TimerEventDefinition); }
@Override public void refresh() { cancelActivityCombo.removeFocusListener(listener); messageCombo.removeFocusListener(listener); PictogramElement pe = getSelectedPictogramElement(); if (pe != null) { Object bo = getBusinessObject(pe); if (bo == null) return; final Bpmn2MemoryModel model = ModelHandler.getModel(EcoreUtil.getURI(getDiagram())); if (model == null) { return; } boolean cancelActivity = ((BoundaryEvent) bo).isCancelActivity(); if (cancelActivity == false) { cancelActivityCombo.select(1); } else { cancelActivityCombo.select(0); } String messageRef = null; if (bo instanceof BoundaryEvent) { BoundaryEvent boundaryEvent = (BoundaryEvent) bo; if (boundaryEvent.getEventDefinitions().get(0) != null) { MessageEventDefinition messageDefinition = (MessageEventDefinition) boundaryEvent.getEventDefinitions().get(0); if (StringUtils.isNotEmpty(messageDefinition.getMessageRef())) { messageRef = messageDefinition.getMessageRef(); } } } String[] items = new String[model.getBpmnModel().getMessages().size() + 1]; items[0] = ""; int counter = 1; int selectedCounter = 0; for (Message message : model.getBpmnModel().getMessages()) { items[counter] = message.getId() + " / " + message.getName(); if (message.getId().equals(messageRef)) { selectedCounter = counter; } counter++; } messageCombo.setItems(items); messageCombo.select(selectedCounter); } cancelActivityCombo.addFocusListener(listener); messageCombo.addFocusListener(listener); }
public Object[] create(ICreateContext context) { BoundaryEvent boundaryEvent = new BoundaryEvent(); CompensateEventDefinition compensateEvent = new CompensateEventDefinition(); boundaryEvent.getEventDefinitions().add(compensateEvent); Object parentObject = getBusinessObjectForPictogramElement(context.getTargetContainer()); ((Activity) parentObject).getBoundaryEvents().add(boundaryEvent); boundaryEvent.setAttachedToRef((Activity) parentObject); addObjectToContainer(context, boundaryEvent, "Compensate"); // return newly created business object(s) return new Object[] {boundaryEvent}; }
protected String getStencilId(FlowElement flowElement) { BoundaryEvent boundaryEvent = (BoundaryEvent) flowElement; List<EventDefinition> eventDefinitions = boundaryEvent.getEventDefinitions(); if (eventDefinitions.size() != 1) { // return timer event as default; return STENCIL_EVENT_BOUNDARY_TIMER; } EventDefinition eventDefinition = eventDefinitions.get(0); if (eventDefinition instanceof ErrorEventDefinition) { return STENCIL_EVENT_BOUNDARY_ERROR; } else if (eventDefinition instanceof SignalEventDefinition) { return STENCIL_EVENT_BOUNDARY_SIGNAL; } else { return STENCIL_EVENT_BOUNDARY_TIMER; } }