/* * (c) Copyright 2010-2011 AgileBirds * * This file is part of OpenFlexo. * * OpenFlexo is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * OpenFlexo is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with OpenFlexo. If not, see <http://www.gnu.org/licenses/>. * */ package org.openflexo.components.browser.dm; import org.openflexo.components.browser.BrowserElement; import org.openflexo.components.browser.BrowserElementFactory; import org.openflexo.components.browser.BrowserElementType; import org.openflexo.components.browser.ProjectBrowser; import org.openflexo.foundation.FlexoModelObject; import org.openflexo.foundation.dm.DMEntity; import org.openflexo.foundation.dm.DMMethod; import org.openflexo.foundation.dm.DMModel; import org.openflexo.foundation.dm.DMPackage; import org.openflexo.foundation.dm.DMProperty; import org.openflexo.foundation.dm.DMRepository; import org.openflexo.foundation.dm.DMRepositoryFolder; import org.openflexo.foundation.dm.DMTranstyper; import org.openflexo.foundation.dm.ERDiagram; import org.openflexo.foundation.dm.ExternalRepository; import org.openflexo.foundation.dm.FlexoExecutionModelRepository; import org.openflexo.foundation.dm.JDKRepository; import org.openflexo.foundation.dm.WORepository; import org.openflexo.foundation.dm.eo.DMEOAttribute; import org.openflexo.foundation.dm.eo.DMEOEntity; import org.openflexo.foundation.dm.eo.DMEOModel; import org.openflexo.foundation.dm.eo.DMEORelationship; import org.openflexo.foundation.dm.eo.DMEORepository; import org.openflexo.foundation.dm.eo.EOPrototypeRepository; public class DMBrowserElementFactory implements BrowserElementFactory { @Override public BrowserElement makeNewElement(FlexoModelObject object, ProjectBrowser browser, BrowserElement parent) { if (object instanceof DMModel) { return new DMModelElement((DMModel) object, browser, parent); } else if (object instanceof DMRepositoryFolder) { return new DMRepositoryFolderElement((DMRepositoryFolder) object, browser, parent); } else if (object instanceof DMEORepository) { if (object instanceof EOPrototypeRepository) { return new DMEORepositoryElement((DMEORepository) object, BrowserElementType.DM_EOPROTOTYPES_REPOSITORY, browser, parent); } else if (object instanceof FlexoExecutionModelRepository) { return new DMEORepositoryElement((DMEORepository) object, BrowserElementType.DM_EXECUTION_MODEL_REPOSITORY, browser, parent); } else { return new DMEORepositoryElement((DMEORepository) object, browser, parent); } } else if (object instanceof DMRepository) { if (object instanceof JDKRepository) { return new DMRepositoryElement((DMRepository) object, BrowserElementType.JDK_REPOSITORY, browser, parent); } else if (object instanceof WORepository) { return new DMRepositoryElement((DMRepository) object, BrowserElementType.WO_REPOSITORY, browser, parent); } else if (object instanceof ExternalRepository) { return new DMRepositoryElement((DMRepository) object, BrowserElementType.EXTERNAL_REPOSITORY, browser, parent); } else { return new DMRepositoryElement((DMRepository) object, browser, parent); } } else if (object instanceof DMPackage) { return new DMPackageElement((DMPackage) object, browser, parent); } else if (object instanceof DMEOModel) { return new DMEOModelElement((DMEOModel) object, browser, parent); } else if (object instanceof DMEOEntity) { return new DMEOEntityElement((DMEOEntity) object, browser, parent); } else if (object instanceof DMEntity) { return new DMEntityElement((DMEntity) object, browser, parent); } else if (object instanceof DMEOAttribute) { return new DMEOAttributeElement((DMEOAttribute) object, browser, parent); } else if (object instanceof DMEORelationship) { return new DMEORelationshipElement((DMEORelationship) object, browser, parent); } else if (object instanceof DMProperty) { return new DMPropertyElement((DMProperty) object, browser, parent); } else if (object instanceof DMMethod) { return new DMMethodElement((DMMethod) object, browser, parent); } else if (object instanceof DMTranstyper) { return new DMTranstyperElement((DMTranstyper) object, browser, parent); } else if (object instanceof ERDiagram) { return new ERDiagramElement((ERDiagram) object, browser, parent); } return null; } }