Package org.eclipse.gef.examples.logicdesigner

Source Code of org.eclipse.gef.examples.logicdesigner.LogicPlugin

/*******************************************************************************
* Copyright (c) 2000, 2005 IBM Corporation and others.
* 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:
*     IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.gef.examples.logicdesigner;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.jface.resource.ImageDescriptor;

import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
import org.eclipse.gef.palette.ConnectionCreationToolEntry;
import org.eclipse.gef.palette.MarqueeToolEntry;
import org.eclipse.gef.palette.PaletteContainer;
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.PaletteStack;
import org.eclipse.gef.palette.PanningSelectionToolEntry;
import org.eclipse.gef.palette.ToolEntry;
import org.eclipse.gef.requests.SimpleFactory;
import org.eclipse.gef.tools.MarqueeSelectionTool;

import org.eclipse.gef.examples.logicdesigner.model.AndGate;
import org.eclipse.gef.examples.logicdesigner.model.Circuit;
import org.eclipse.gef.examples.logicdesigner.model.GroundOutput;
import org.eclipse.gef.examples.logicdesigner.model.LED;
import org.eclipse.gef.examples.logicdesigner.model.LiveOutput;
import org.eclipse.gef.examples.logicdesigner.model.LogicDiagramFactory;
import org.eclipse.gef.examples.logicdesigner.model.LogicFlowContainer;
import org.eclipse.gef.examples.logicdesigner.model.LogicLabel;
import org.eclipse.gef.examples.logicdesigner.model.OrGate;
import org.eclipse.gef.examples.logicdesigner.model.XORGate;

public class LogicPlugin
  extends org.eclipse.ui.plugin.AbstractUIPlugin
{

private static LogicPlugin singleton;

static private List createCategories(PaletteRoot root){
  List categories = new ArrayList();
 
  categories.add(createControlGroup(root));
  categories.add(createComponentsDrawer());
  categories.add(createComplexPartsDrawer());
//  categories.add(createTemplateComponentsDrawer());
//  categories.add(createComplexTemplatePartsDrawer());

  return categories;
}

static private PaletteContainer createComplexPartsDrawer(){
  PaletteDrawer drawer = new PaletteDrawer(LogicMessages.LogicPlugin_Category_ComplexParts_Label, ImageDescriptor.createFromFile(Circuit.class, "icons/can.gif")); //$NON-NLS-1$

  List entries = new ArrayList();

  CombinedTemplateCreationEntry combined = new CombinedTemplateCreationEntry(
    LogicMessages.LogicPlugin_Tool_CreationTool_HalfAdder_Label,
    LogicMessages.LogicPlugin_Tool_CreationTool_HalfAdder_Description,
    LogicDiagramFactory.getHalfAdderFactory(),
    ImageDescriptor.createFromFile(Circuit.class, "icons/halfadder16.gif"), //$NON-NLS-1$
    ImageDescriptor.createFromFile(Circuit.class, "icons/halfadder24.gif") //$NON-NLS-1$
  );
  entries.add(combined);

  combined = new CombinedTemplateCreationEntry(
    LogicMessages.LogicPlugin_Tool_CreationTool_FullAdder_Label,
    LogicMessages.LogicPlugin_Tool_CreationTool_FullAdder_Description,
    LogicDiagramFactory.getFullAdderFactory(),
    ImageDescriptor.createFromFile(Circuit.class, "icons/fulladder16.gif"), //$NON-NLS-1$
    ImageDescriptor.createFromFile(Circuit.class, "icons/fulladder24.gif") //$NON-NLS-1$
  );
  entries.add(combined);

  drawer.addAll(entries);
  return drawer;
}

static private PaletteContainer createComponentsDrawer(){

  PaletteDrawer drawer = new PaletteDrawer(
    LogicMessages.LogicPlugin_Category_Components_Label,
    ImageDescriptor.createFromFile(Circuit.class, "icons/comp.gif"));//$NON-NLS-1$

  List entries = new ArrayList();
 
  CombinedTemplateCreationEntry combined = new CombinedTemplateCreationEntry(
    LogicMessages.LogicPlugin_Tool_CreationTool_FlowContainer_Label,
    LogicMessages.LogicPlugin_Tool_CreationTool_FlowContainer_Description,
    new SimpleFactory(LogicFlowContainer.class),
    ImageDescriptor.createFromFile(Circuit.class, "icons/logicflow16.gif"), //$NON-NLS-1$
    ImageDescriptor.createFromFile(Circuit.class, "icons/logicflow24.gif")//$NON-NLS-1$
  );
  entries.add(combined);

  combined = new CombinedTemplateCreationEntry(
    LogicMessages.LogicPlugin_Tool_CreationTool_Circuit_Label,
    LogicMessages.LogicPlugin_Tool_CreationTool_Circuit_Description,
    new SimpleFactory(Circuit.class),
    ImageDescriptor.createFromFile(Circuit.class, "icons/circuit16.gif"),//$NON-NLS-1$
    ImageDescriptor.createFromFile(Circuit.class, "icons/circuit24.gif")//$NON-NLS-1$
  );
  entries.add(combined);
 
  entries.add(new PaletteSeparator());

  combined = new CombinedTemplateCreationEntry(
    LogicMessages.LogicPlugin_Tool_CreationTool_Label_Label,
    LogicMessages.LogicPlugin_Tool_CreationTool_Label_Description,
    new SimpleFactory(LogicLabel.class),
    ImageDescriptor.createFromFile(Circuit.class, "icons/label16.gif"), //$NON-NLS-1$
    ImageDescriptor.createFromFile(Circuit.class, "icons/label24.gif")//$NON-NLS-1$
  );
  entries.add(combined);

  combined = new CombinedTemplateCreationEntry(
    LogicMessages.LogicPlugin_Tool_CreationTool_LED_Label,
    LogicMessages.LogicPlugin_Tool_CreationTool_LED_Description,
    new SimpleFactory(LED.class),
    ImageDescriptor.createFromFile(Circuit.class, "icons/ledicon16.gif"), //$NON-NLS-1$
    ImageDescriptor.createFromFile(Circuit.class, "icons/ledicon24.gif")//$NON-NLS-1$
  );
  entries.add(combined);

  combined = new CombinedTemplateCreationEntry(
    LogicMessages.LogicPlugin_Tool_CreationTool_ORGate_Label,
    LogicMessages.LogicPlugin_Tool_CreationTool_ORGate_Description,
    new SimpleFactory(OrGate.class),
    ImageDescriptor.createFromFile(Circuit.class, "icons/or16.gif"),//$NON-NLS-1$
    ImageDescriptor.createFromFile(Circuit.class, "icons/or24.gif")//$NON-NLS-1$
  );
  entries.add(combined);

  combined = new CombinedTemplateCreationEntry(
    LogicMessages.LogicPlugin_Tool_CreationTool_XORGate_Label,
    LogicMessages.LogicPlugin_Tool_CreationTool_XORGate_Description,
    new SimpleFactory(XORGate.class),
    ImageDescriptor.createFromFile(Circuit.class, "icons/xor16.gif"),//$NON-NLS-1$
    ImageDescriptor.createFromFile(Circuit.class, "icons/xor24.gif")//$NON-NLS-1$
  );
  entries.add(combined);

  combined = new CombinedTemplateCreationEntry(
    LogicMessages.LogicPlugin_Tool_CreationTool_ANDGate_Label,
    LogicMessages.LogicPlugin_Tool_CreationTool_ANDGate_Description,
    new SimpleFactory(AndGate.class),
    ImageDescriptor.createFromFile(Circuit.class, "icons/and16.gif"),//$NON-NLS-1$
    ImageDescriptor.createFromFile(Circuit.class, "icons/and24.gif")//$NON-NLS-1$
  );
  entries.add(combined);

  PaletteStack liveGroundStack = new PaletteStack(
      LogicMessages.LogicPlugin_Tool_CreationTool_LiveGroundStack_Label,
      LogicMessages.LogicPlugin_Tool_CreationTool_LiveGroundStack_Description, null);
 
  combined = new CombinedTemplateCreationEntry(
    LogicMessages.LogicPlugin_Tool_CreationTool_LiveOutput_Label,
    LogicMessages.LogicPlugin_Tool_CreationTool_LiveOutput_Description,
    new SimpleFactory(LiveOutput.class),
    ImageDescriptor.createFromFile(Circuit.class, "icons/live16.gif"),//$NON-NLS-1$
    ImageDescriptor.createFromFile(Circuit.class, "icons/live24.gif")//$NON-NLS-1$
  );
  liveGroundStack.add(combined);

  combined = new CombinedTemplateCreationEntry(
    LogicMessages.LogicPlugin_Tool_CreationTool_Ground_Label,
    LogicMessages.LogicPlugin_Tool_CreationTool_Ground_Description,
    new SimpleFactory(GroundOutput.class),
    ImageDescriptor.createFromFile(Circuit.class, "icons/ground16.gif"),//$NON-NLS-1$
    ImageDescriptor.createFromFile(Circuit.class, "icons/ground24.gif")//$NON-NLS-1$
  );
  liveGroundStack.add(combined);

  entries.add(liveGroundStack);
 
  drawer.addAll(entries);
  return drawer;
}

static private PaletteContainer createControlGroup(PaletteRoot root){
  PaletteGroup controlGroup = new PaletteGroup(
    LogicMessages.LogicPlugin_Category_ControlGroup_Label);

  List entries = new ArrayList();

  ToolEntry tool = new PanningSelectionToolEntry();
  entries.add(tool);
  root.setDefaultEntry(tool);

  PaletteStack marqueeStack = new PaletteStack(LogicMessages.Marquee_Stack, "", null); //$NON-NLS-1$
  marqueeStack.add(new MarqueeToolEntry());
  MarqueeToolEntry marquee = new MarqueeToolEntry();
  marquee.setToolProperty(MarqueeSelectionTool.PROPERTY_MARQUEE_BEHAVIOR,
      new Integer(MarqueeSelectionTool.BEHAVIOR_CONNECTIONS_TOUCHED));
  marqueeStack.add(marquee);
  marquee = new MarqueeToolEntry();
  marquee.setToolProperty(MarqueeSelectionTool.PROPERTY_MARQUEE_BEHAVIOR,
      new Integer(MarqueeSelectionTool.BEHAVIOR_CONNECTIONS_TOUCHED
      | MarqueeSelectionTool.BEHAVIOR_NODES_CONTAINED));
  marqueeStack.add(marquee);
  marqueeStack.setUserModificationPermission(PaletteEntry.PERMISSION_NO_MODIFICATION);
  entries.add(marqueeStack);
 
  tool = new ConnectionCreationToolEntry(
    LogicMessages.LogicPlugin_Tool_ConnectionCreationTool_ConnectionCreationTool_Label,
    LogicMessages.LogicPlugin_Tool_ConnectionCreationTool_ConnectionCreationTool_Description,
    null,
    ImageDescriptor.createFromFile(Circuit.class, "icons/connection16.gif"),//$NON-NLS-1$
    ImageDescriptor.createFromFile(Circuit.class, "icons/connection24.gif")//$NON-NLS-1$
  );
  entries.add(tool);
  controlGroup.addAll(entries);
  return controlGroup;
}

static PaletteRoot createPalette() {
  PaletteRoot logicPalette = new PaletteRoot();
  logicPalette.addAll(createCategories(logicPalette));
  return logicPalette;
}

public static LogicPlugin getDefault(){
  return singleton;
}

public LogicPlugin(){
  if( singleton == null ){
    singleton = this;
  }
}

}
TOP

Related Classes of org.eclipse.gef.examples.logicdesigner.LogicPlugin

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.