/* * Copyright 2016 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.kie.workbench.common.stunner.cm.client.palette; import java.util.HashMap; import java.util.Map; import javax.enterprise.context.Dependent; import javax.inject.Inject; import org.kie.workbench.common.stunner.bpmn.definition.AdHocSubprocess; import org.kie.workbench.common.stunner.bpmn.definition.BusinessRuleTask; import org.kie.workbench.common.stunner.bpmn.definition.Categories; import org.kie.workbench.common.stunner.bpmn.definition.EndNoneEvent; import org.kie.workbench.common.stunner.bpmn.definition.EndTerminateEvent; import org.kie.workbench.common.stunner.bpmn.definition.ExclusiveDatabasedGateway; import org.kie.workbench.common.stunner.bpmn.definition.Lane; import org.kie.workbench.common.stunner.bpmn.definition.NoneTask; import org.kie.workbench.common.stunner.bpmn.definition.ParallelGateway; import org.kie.workbench.common.stunner.bpmn.definition.SequenceFlow; import org.kie.workbench.common.stunner.bpmn.definition.StartNoneEvent; import org.kie.workbench.common.stunner.cm.CaseManagementDefinitionSet; import org.kie.workbench.common.stunner.cm.definition.CaseManagementDiagram; import org.kie.workbench.common.stunner.cm.qualifiers.CaseManagementEditor; import org.kie.workbench.common.stunner.core.client.api.ShapeManager; import org.kie.workbench.common.stunner.core.client.components.palette.factory.BindableDefSetPaletteDefinitionFactory; import org.kie.workbench.common.stunner.core.client.components.palette.model.definition.DefinitionSetPaletteBuilder; @Dependent public class CaseManagementPaletteDefinitionFactory extends BindableDefSetPaletteDefinitionFactory { public static final String STAGES = "Stages"; public static final String ACTIVITIES = "Activities"; private static final Map<String, String> CAT_TITLES = new HashMap<String, String>(2) {{ put(STAGES, STAGES); put(ACTIVITIES, ACTIVITIES); }}; private static final Map<String, Class<?>> CAT_DEF_IDS = new HashMap<String, Class<?>>(5) {{ put(STAGES, AdHocSubprocess.class); put(ACTIVITIES, BusinessRuleTask.class); }}; @Inject public CaseManagementPaletteDefinitionFactory(final ShapeManager shapeManager, final @CaseManagementEditor DefinitionSetPaletteBuilder paletteBuilder) { super(shapeManager, paletteBuilder); } @Override protected void configureBuilder() { super.configureBuilder(); excludeDefinition(CaseManagementDiagram.class); excludeDefinition(Lane.class); excludeDefinition(NoneTask.class); excludeDefinition(StartNoneEvent.class); excludeDefinition(EndNoneEvent.class); excludeDefinition(EndTerminateEvent.class); excludeDefinition(ParallelGateway.class); excludeDefinition(ExclusiveDatabasedGateway.class); excludeDefinition(SequenceFlow.class); excludeCategory(Categories.EVENTS); excludeCategory(Categories.CONNECTING_OBJECTS); } @Override protected String getCategoryTitle(final String id) { return CAT_TITLES.get(id); } @Override protected String getCategoryDescription(final String id) { return CAT_TITLES.get(id); } @Override protected Class<?> getCategoryTargetDefinitionId(final String id) { return CAT_DEF_IDS.get(id); } @Override protected String getMorphGroupTitle(final String morphBaseId, final Object definition) { throw new UnsupportedOperationException("CaseManagement does not use Morph Groups for Palette construction"); } @Override protected String getMorphGroupDescription(final String morphBaseId, final Object definition) { throw new UnsupportedOperationException("CaseManagement does not use Morph Groups for Palette construction"); } @Override protected Class<?> getDefinitionSetType() { return CaseManagementDefinitionSet.class; } }