class CaseManagementCanvasHandler extends CanvasHandlerImpl<D, C> {

    @Override
    public void applyElementMutation(final Shape shape,
                                     final Element candidate,
                                     final boolean applyPosition,
                                     final boolean applyProperties,
                                     final MutationContext mutationContext) {
        if (!isRenderable(shape)) {
            return;
        }

        if (shape instanceof CaseManagementShape) {
            CaseManagementShape caseManagementShape = (CaseManagementShape) shape;

            if (applyProperties) {
                applyElementTitle(caseManagementShape,
                                  candidate);

                applyProperties(caseManagementShape,
                                candidate);
            }

            caseManagementShape.getShapeView().refresh();
        }

        this.applyElementMutation(shape,
                                  candidate);
    }

    @Inject public  CaseManagementCanvasHandler(final ClientDefinitionManager clientDefinitionManager,
                                       final RuleManager ruleManager,
                                       final GraphUtils graphUtils,
                                       final GraphIndexBuilder<? extends MutableIndex<Node, Edge>> indexBuilder,
                                       final ShapeManager shapeManager,
                                       final TextPropertyProviderFactory textPropertyProviderFactory,
                                       final Event<CanvasElementAddedEvent> canvasElementAddedEvent,
                                       final Event<CanvasElementRemovedEvent> canvasElementRemovedEvent,
                                       final Event<CanvasElementUpdatedEvent> canvasElementUpdatedEvent,
                                       final Event<CanvasElementsClearEvent> canvasElementsClearEvent,
                                       final @CaseManagementEditor CanvasCommandFactory<AbstractCanvasHandler> canvasCommandFactory);

}