/* * Created on Jul 15, 2004 */ package com.realpersist.gef.editor; import java.util.ArrayList; import java.util.List; import org.eclipse.gef.palette.CombinedTemplateCreationEntry; import org.eclipse.gef.palette.ConnectionCreationToolEntry; import org.eclipse.gef.palette.MarqueeToolEntry; import org.eclipse.gef.palette.PaletteDrawer; import org.eclipse.gef.palette.PaletteEntry; import org.eclipse.gef.palette.PaletteGroup; import org.eclipse.gef.palette.PaletteRoot; import org.eclipse.gef.palette.PaletteSeparator; import org.eclipse.gef.palette.SelectionToolEntry; import org.eclipse.gef.palette.ToolEntry; import org.eclipse.ui.plugin.AbstractUIPlugin; import com.realpersist.gef.dnd.DataElementFactory; import com.realpersist.gef.model.Column; import com.realpersist.gef.model.Table; /** * Encapsulates functionality to create the PaletteViewer * @author Phil Zoio */ public class PaletteViewerCreator { /** the palette root */ private PaletteRoot paletteRoot; /** * Returns the <code>PaletteRoot</code> this editor's palette uses. * * @return the <code>PaletteRoot</code> */ public PaletteRoot createPaletteRoot() { // create root paletteRoot = new PaletteRoot(); // a group of default control tools PaletteGroup controls = new PaletteGroup("Controls"); paletteRoot.add(controls); // the selection tool ToolEntry tool = new SelectionToolEntry(); controls.add(tool); // use selection tool as default entry paletteRoot.setDefaultEntry(tool); // the marquee selection tool controls.add(new MarqueeToolEntry()); // a separator PaletteSeparator separator = new PaletteSeparator(SchemaDiagramPlugin.PLUGIN_ID + ".palette.seperator"); separator.setUserModificationPermission(PaletteEntry.PERMISSION_NO_MODIFICATION); controls.add(separator); controls.add(new ConnectionCreationToolEntry("Connections", "Create Connections", null, AbstractUIPlugin .imageDescriptorFromPlugin(SchemaDiagramPlugin.PLUGIN_ID, "icons/relationship.gif"), AbstractUIPlugin .imageDescriptorFromPlugin(SchemaDiagramPlugin.PLUGIN_ID, "icons/relationship.gif"))); PaletteDrawer drawer = new PaletteDrawer("New Component", AbstractUIPlugin.imageDescriptorFromPlugin( SchemaDiagramPlugin.PLUGIN_ID, "icons/connection.gif")); List entries = new ArrayList(); CombinedTemplateCreationEntry tableEntry = new CombinedTemplateCreationEntry("New Table", "Create a new table", Table.class, new DataElementFactory(Table.class), AbstractUIPlugin.imageDescriptorFromPlugin( SchemaDiagramPlugin.PLUGIN_ID, "icons/table.gif"), AbstractUIPlugin .imageDescriptorFromPlugin(SchemaDiagramPlugin.PLUGIN_ID, "icons/table.gif")); CombinedTemplateCreationEntry columnEntry = new CombinedTemplateCreationEntry("New Column", "Add a new column", Column.class, new DataElementFactory(Column.class), AbstractUIPlugin.imageDescriptorFromPlugin( SchemaDiagramPlugin.PLUGIN_ID, "icons/column.gif"), AbstractUIPlugin .imageDescriptorFromPlugin(SchemaDiagramPlugin.PLUGIN_ID, "icons/column.gif")); entries.add(tableEntry); entries.add(columnEntry); drawer.addAll(entries); paletteRoot.add(drawer); // todo add your palette drawers and entries here return paletteRoot; } /** * @return Returns the paletteRoot. */ public PaletteRoot getPaletteRoot() { return paletteRoot; } }