/* * Copyright (c) 2005 Borland Software Corporation * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Artem Tikhomirov (Borland) - initial API and implementation */ package org.eclipse.gmf.tests.setup; import org.eclipse.gmf.tooldef.AbstractTool; import org.eclipse.gmf.tooldef.ActionKind; import org.eclipse.gmf.tooldef.BundleImage; import org.eclipse.gmf.tooldef.ContextMenu; import org.eclipse.gmf.tooldef.CreationTool; import org.eclipse.gmf.tooldef.GMFToolFactory; import org.eclipse.gmf.tooldef.ItemRef; import org.eclipse.gmf.tooldef.MainMenu; import org.eclipse.gmf.tooldef.MenuAction; import org.eclipse.gmf.tooldef.Palette; import org.eclipse.gmf.tooldef.ToolRegistry; /** * @author artem * */ public class ToolDefSetup implements ToolDefSource { private final MainMenu myMainMenu; private final ContextMenu myNodeMenu; private final AbstractTool myNodeTool; private final AbstractTool myLinkTool; private ToolRegistry myRegistry; public ToolDefSetup() { myMainMenu = GMFToolFactory.eINSTANCE.createMainMenu(); myMainMenu.setTitle("ToolDefSetup"); myMainMenu.getItems().add(createAction("a1")); myMainMenu.getItems().add(GMFToolFactory.eINSTANCE.createSeparator()); MenuAction shared = createAction("SharedA2"); ItemRef ref = GMFToolFactory.eINSTANCE.createItemRef(); ref.setItem(shared); myMainMenu.getItems().add(ref); myNodeMenu = GMFToolFactory.eINSTANCE.createContextMenu(); myNodeMenu.getItems().add(createAction("a3")); ref = GMFToolFactory.eINSTANCE.createItemRef(); ref.setItem(shared); myNodeMenu.getItems().add(ref); myNodeTool = createTool("Node1"); myLinkTool = createTool("Link1"); Palette p = GMFToolFactory.eINSTANCE.createPalette(); p.getTools().add(myNodeTool); p.getTools().add(myLinkTool); myRegistry = GMFToolFactory.eINSTANCE.createToolRegistry(); myRegistry.getSharedActions().add(shared); myRegistry.getAllMenus().add(myMainMenu); myRegistry.getAllMenus().add(myNodeMenu); myRegistry.setPalette(p); } private CreationTool createTool(String title) { CreationTool t = GMFToolFactory.eINSTANCE.createCreationTool(); t.setTitle(title); return t; } private static MenuAction createAction(String name) { MenuAction a = GMFToolFactory.eINSTANCE.createMenuAction(); BundleImage i = GMFToolFactory.eINSTANCE.createBundleImage(); i.setBundle(null); i.setPath("/icons/obj16/" + name + ".gif"); a.setIcon(i); a.setKind(ActionKind.CREATE_LITERAL); a.setTitle(name); return a; } public ToolRegistry getRegistry() { return myRegistry; } public MainMenu getMainMenu() { return myMainMenu; } public ContextMenu getNodeContextMenu() { return myNodeMenu; } public AbstractTool getNodeCreationTool() { return myNodeTool; } public AbstractTool getLinkCreationTool() { return myLinkTool; } public Palette getPalette() { return (Palette) myNodeTool.eContainer(); } }