/******************************************************************************* * 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.edit; import org.eclipse.gef.EditPart; import org.eclipse.gef.EditPartFactory; import org.eclipse.gef.examples.logicdesigner.model.Circuit; import org.eclipse.gef.examples.logicdesigner.model.Gate; import org.eclipse.gef.examples.logicdesigner.model.LED; import org.eclipse.gef.examples.logicdesigner.model.LogicDiagram; import org.eclipse.gef.examples.logicdesigner.model.LogicFlowContainer; import org.eclipse.gef.examples.logicdesigner.model.LogicLabel; import org.eclipse.gef.examples.logicdesigner.model.SimpleOutput; import org.eclipse.gef.examples.logicdesigner.model.Wire; public class GraphicalPartFactory implements EditPartFactory { public EditPart createEditPart(EditPart context, Object model) { EditPart child = null; if (model instanceof LogicFlowContainer) child = new LogicFlowContainerEditPart(); else if (model instanceof Wire) child = new WireEditPart(); else if (model instanceof LED) child = new LEDEditPart(); else if (model instanceof LogicLabel) child = new LogicLabelEditPart(); else if (model instanceof Circuit) child = new CircuitEditPart(); else if (model instanceof Gate) child = new GateEditPart(); else if (model instanceof SimpleOutput) child = new OutputEditPart(); //Note that subclasses of LogicDiagram have already been matched above, like Circuit else if (model instanceof LogicDiagram) child = new LogicDiagramEditPart(); child.setModel(model); return child; } }