private boolean isMissingDIElement(BaseElement be) { // ignore DataStores - there are bound to be references // to these, which *should* be rendered if (be instanceof DataStore) return false; BPMNDiagram bpmnDiagram = DIUtils.findBPMNDiagram(be); if (bpmnDiagram != null) return false; // couldn't find a BPMNDiagram entry for this BaseElement // check its container to see if it has a BPMNDiagram FlowElementsContainer container = this.getRootElementContainer(be); bpmnDiagram = DIUtils.findBPMNDiagram(container); if (bpmnDiagram != null) { // is the BaseElement defined as a BPMNShape or BPMNEdge in its // container's BPMNDiagram? if (bpmnDiagram.getPlane().getPlaneElement().contains(be)) return false; } boolean missing = (elements.get(be) == null && diagnostics.get(be) == null); if (missing) GraphicsUtil.dump( "Missing DI element for: " + be.eClass().getName() + " '" + ExtendedPropertiesProvider.getTextValue(be) + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ return missing; }
private BPMNDiagram createDIDiagram(BaseElement bpmnElement) { BPMNDiagram bpmnDiagram = DIUtils.findBPMNDiagram(bpmnElement, true); // if this container does not have a BPMNDiagram, create one if (bpmnElement instanceof Process) { if (bpmnDiagram == null) { // unless this Process is referenced by a Pool for (Collaboration c : ModelUtil.getAllObjectsOfType(bpmnElement.eResource(), Collaboration.class)) { for (Participant p : c.getParticipants()) { if (!ModelUtil.isParticipantBand(p)) { if (p.getProcessRef() == bpmnElement) { bpmnDiagram = DIUtils.findBPMNDiagram(p, true); break; } } } if (bpmnDiagram != null) break; } } else { // Always create a new BPMNDiagram if this Process is being referenced by a Participant Band // for (Collaboration c : ModelUtil.getAllObjectsOfType(bpmnElement.eResource(), // Collaboration.class)) { // for (Participant p : c.getParticipants()) { // if (ModelUtil.isParticipantBand(p)) { // if (p.getProcessRef() == bpmnElement) { // bpmnDiagram = null; // break; // } // } // } // if (bpmnDiagram==null) // break; // } } } if (bpmnDiagram == null) { FlowElementsContainer container = getRootElementContainer(bpmnElement); if (container == null) { diagnostics.add(IStatus.ERROR, bpmnElement, Messages.DIGenerator_No_Diagram); return this.bpmnDiagram; } BPMNPlane plane = BpmnDiFactory.eINSTANCE.createBPMNPlane(); plane.setBpmnElement(container); bpmnDiagram = BpmnDiFactory.eINSTANCE.createBPMNDiagram(); bpmnDiagram.setName(ExtendedPropertiesProvider.getTextValue(container)); bpmnDiagram.setPlane(plane); definitions.getDiagrams().add(bpmnDiagram); } return bpmnDiagram; }
protected String getText(EObject o) { String text = ""; // $NON-NLS-1$ if (o != null) { text = labelProvider.getText(o); if (text == null) { text = ExtendedPropertiesProvider.getTextValue(o); if (text == null || text.isEmpty()) { EStructuralFeature f = o.eClass().getEStructuralFeature("id"); // $NON-NLS-1$ if (f != null) text = o.eGet(f).toString(); } } } return text; }
@Override public String getText(Object element) { EObject object = getBusinessObject(element); if (object != null) { String text = ExtendedPropertiesProvider.getTextValue(object); // check if this is a CustomTask CustomTaskDescriptor ctd = getCustomTaskDescriptor(object); if (ctd != null) { // it is! build the property tab title from the CustomTask name // and the object's name (which could be the same) String name = ctd.getName(); if (!text.equals(name)) return name + ": " + text; // $NON-NLS-1$ } return text; } // PictogramElement pe = // BusinessObjectUtil.getPictogramElementForSelection((ISelection)element); // if (pe!=null && pe.getGraphicsAlgorithm()!=null) { // return ModelUtil.getLabel( pe.getGraphicsAlgorithm() ); // } return super.getText(element); }
@Override protected void bindReference(Composite parent, EObject object, EReference reference) { if ("calledElementRef".equals(reference.getName())) { // $NON-NLS-1$ if (isModelObjectEnabled(object.eClass(), reference)) { if (parent == null) parent = getAttributesParent(); String displayName = ExtendedPropertiesProvider.getLabel(object, reference); ObjectEditor editor = new TextAndButtonObjectEditor(this, object, reference) { @Override protected void buttonClicked(int buttonId) { final IInputValidator validator = new IInputValidator() { @Override public String isValid(String newText) { if (newText == null || newText.isEmpty()) return Messages.JbpmCallActivityDetailComposite_Error_Empty; if (!JbpmModelUtil.isProcessId(newText)) return Messages.JbpmCallActivityDetailComposite_Error_Invalid; return null; } }; String initialValue = ExtendedPropertiesProvider.getTextValue(object, feature); InputDialog dialog = new InputDialog( getShell(), Messages.JbpmCallActivityDetailComposite_Title, Messages.JbpmCallActivityDetailComposite_Message, initialValue, validator); if (dialog.open() == Window.OK) { setValue(dialog.getValue()); } } @Override public boolean setValue(final Object result) { if (result != object.eGet(feature)) { TransactionalEditingDomain domain = getDiagramEditor().getEditingDomain(); domain .getCommandStack() .execute( new RecordingCommand(domain) { @Override protected void doExecute() { String id = result.toString(); CallableElement ce = null; Definitions defs = ModelUtil.getDefinitions(object); for (RootElement re : defs.getRootElements()) { if (re instanceof ExternalProcess) { if (id.equals(re.getId())) { ce = (ExternalProcess) re; break; } } } if (ce == null) { ce = DroolsFactory.eINSTANCE.createExternalProcess(); ce.setName(id); ce.setId(id); defs.getRootElements().add(ce); } object.eSet(feature, ce); } }); // if (getDiagramEditor().getDiagnostics()!=null) { // // ErrorUtils.showErrorMessage(getDiagramEditor().getDiagnostics().getMessage()); // } // else { // ErrorUtils.showErrorMessage(null); // updateText(); // return true; // } updateText(); return true; } return false; } }; editor.createControl(parent, displayName); } } else super.bindReference(parent, object, reference); }