Considerations when adding new nodes / constructs

When adding a new item to the palette, such as a new node type or other construct, there are multiple parts of the tool that require adjustment and expansion. Before addition of a new item can be considered completed, these must all have been done.

Adding the tool to the palette. This involves addition of the CreateFeature and the AddFeature (for the business object and graphical representation respectively)

Add feature is listed in the ActivitiBPMNFeatureProvider#getAddFeature() method

Create feature is listed in the ActivitiBPMNFeatureProvider#getCreateFeatures() method

Adding a new icon to the icons folder of the gui bundle and adding the correct reference to the ActivitiImageProvider class

Adding the tool to the list of features that can be disabled when creating palette entries with CustomServiceTasks. To do this:

Create an entry in the PaletteEntry enum

In the constructor of the ActivitiToolBehaviorProvider class, add a toolmapping for this new entry to the CreateFeature

Add the appropriate entry in the ActivitiToolBehaviorProvider#getPalette() method

Adding a clone implementation for the underlying business object in the CloneUtil class

Adding any validations required to the BPMN20ProcessValidator in the validation.bpmn20 bundle

Adding any BPMN export output for the construct to the BPMN20ExportMarshaller in the export.bpmn20 bundle

Feature ideas notepad

Camelcased process name instead of Helloworld

Create unit test from project -> select processes in the project. Combine with a feature that checks for the unit test's existence and prompts for conflict resolution if a unit test already exists.