/* * Copyright (c) 2002 NoMagic, Inc. All Rights Reserved. */ package com.nomagic.magicdraw.examples.simpleconfigurators; import com.nomagic.actions.AMConfigurator; import com.nomagic.actions.ActionsCategory; import com.nomagic.actions.ActionsManager; import com.nomagic.magicdraw.actions.ActionsID; import com.nomagic.magicdraw.actions.DiagramContextAMConfigurator; import com.nomagic.magicdraw.actions.MDActionsCategory; import com.nomagic.magicdraw.ui.actions.DefaultDiagramAction; import com.nomagic.magicdraw.uml.symbols.DiagramPresentationElement; import com.nomagic.magicdraw.uml.symbols.PresentationElement; /** * Class for configuring diagram context menu actions, diagram shortcuts and diagram toolbar. * * @author Donatas Simkunas */ class DiagramConfigurator implements DiagramContextAMConfigurator, AMConfigurator { /** * Action will be added to diagram. */ private final DefaultDiagramAction action; /** * Creates configurator which adds given action. * * @param action action to be added to manager. */ DiagramConfigurator(DefaultDiagramAction action) { this.action = action; } @Override public void configure(ActionsManager manager, DiagramPresentationElement diagram, PresentationElement[] selected, PresentationElement requestor) { final ActionsCategory category = new MDActionsCategory(); category.addAction(action); manager.addCategory(category); } /** * @see com.nomagic.actions.AMConfigurator#configure(com.nomagic.actions.ActionsManager) * Configuring toolbar and shortcuts. */ @Override public void configure(ActionsManager manager) { if (manager.getActionFor(action.getID()) == null) { ActionsCategory category = (ActionsCategory) manager.getActionFor(ActionsID.CLASS_DIAGRAM_ELEMENTS); if (category != null) { category.addAction(action); } } } @Override public int getPriority() { return AMConfigurator.MEDIUM_PRIORITY; } }