package at.bestsolution.efxclipse.tooling.wb.javafx.internal.gef; import org.eclipse.wb.gef.core.EditPart; import org.eclipse.wb.gef.core.IEditPartFactory; import at.bestsolution.efxclipse.tooling.wb.javafx.internal.gef.part.NodeEditPart; import at.bestsolution.efxclipse.tooling.wb.javafx.internal.gef.part.PaneEditPart; import at.bestsolution.efxclipse.tooling.wb.javafx.internal.model.component.NodeInfo; import at.bestsolution.efxclipse.tooling.wb.javafx.internal.model.component.PaneInfo; public class EditPartFactory implements IEditPartFactory { private final IEditPartFactory[] FACTORIES = { GENERIC_FACTORY }; @Override public EditPart createEditPart(EditPart context, Object model) { for (IEditPartFactory factory : FACTORIES) { EditPart editPart = factory.createEditPart(null, model); if (editPart != null) { return editPart; } } return null; } private static final IEditPartFactory GENERIC_FACTORY = new IEditPartFactory() { @Override public EditPart createEditPart(EditPart context, Object model) { if (model instanceof PaneInfo) { return new PaneEditPart((PaneInfo) model); } if (model instanceof NodeInfo) { return new NodeEditPart((NodeInfo) model); } return null; } }; }