/*
* (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.ie;
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.dkv.DKVModel;
import org.openflexo.foundation.dkv.DKVModel.DomainList;
import org.openflexo.foundation.dkv.DKVModel.LanguageList;
import org.openflexo.foundation.dkv.Domain;
import org.openflexo.foundation.dkv.Domain.KeyList;
import org.openflexo.foundation.dkv.Domain.ValueList;
import org.openflexo.foundation.dkv.Key;
import org.openflexo.foundation.dkv.Language;
import org.openflexo.foundation.dkv.Value;
import org.openflexo.foundation.ie.cl.FlexoComponentFolder;
import org.openflexo.foundation.ie.cl.FlexoComponentLibrary;
import org.openflexo.foundation.ie.cl.MonitoringScreenDefinition;
import org.openflexo.foundation.ie.cl.OperationComponentDefinition;
import org.openflexo.foundation.ie.cl.PopupComponentDefinition;
import org.openflexo.foundation.ie.cl.ReusableComponentDefinition;
import org.openflexo.foundation.ie.cl.TabComponentDefinition;
import org.openflexo.foundation.ie.menu.FlexoItemMenu;
import org.openflexo.foundation.ie.operator.ConditionalOperator;
import org.openflexo.foundation.ie.operator.RepetitionOperator;
import org.openflexo.foundation.ie.widget.IEBIRTWidget;
import org.openflexo.foundation.ie.widget.IEBlocWidget;
import org.openflexo.foundation.ie.widget.IEBrowserWidget;
import org.openflexo.foundation.ie.widget.IEButtonWidget;
import org.openflexo.foundation.ie.widget.IECheckBoxWidget;
import org.openflexo.foundation.ie.widget.IEDropDownWidget;
import org.openflexo.foundation.ie.widget.IEDynamicImage;
import org.openflexo.foundation.ie.widget.IEFileUploadWidget;
import org.openflexo.foundation.ie.widget.IEHTMLTableWidget;
import org.openflexo.foundation.ie.widget.IEHeaderWidget;
import org.openflexo.foundation.ie.widget.IEHyperlinkWidget;
import org.openflexo.foundation.ie.widget.IELabelWidget;
import org.openflexo.foundation.ie.widget.IEMultimediaWidget;
import org.openflexo.foundation.ie.widget.IERadioButtonWidget;
import org.openflexo.foundation.ie.widget.IEReusableWidget;
import org.openflexo.foundation.ie.widget.IESequence;
import org.openflexo.foundation.ie.widget.IESequenceTab;
import org.openflexo.foundation.ie.widget.IEStringWidget;
import org.openflexo.foundation.ie.widget.IETDWidget;
import org.openflexo.foundation.ie.widget.IETRWidget;
import org.openflexo.foundation.ie.widget.IETabWidget;
import org.openflexo.foundation.ie.widget.IETextAreaWidget;
import org.openflexo.foundation.ie.widget.IETextFieldWidget;
import org.openflexo.foundation.ie.widget.IEWysiwygWidget;
public class IEBrowserElementFactory implements BrowserElementFactory {
@Override
public BrowserElement makeNewElement(FlexoModelObject object, ProjectBrowser browser, BrowserElement parent) {
if (object instanceof OperationComponentDefinition) {
return new OperationComponentElement((OperationComponentDefinition) object, browser, parent);
} else if (object instanceof TabComponentDefinition) {
return new TabComponentElement((TabComponentDefinition) object, browser, parent);
} else if (object instanceof PopupComponentDefinition) {
return new PopupComponentElement((PopupComponentDefinition) object, browser, parent);
}
else if (object instanceof FlexoComponentFolder) {
return new ComponentFolderElement((FlexoComponentFolder) object, browser, parent);
} else if (object instanceof FlexoComponentLibrary) {
return new ComponentLibraryElement((FlexoComponentLibrary) object, browser, parent);
}
else if (object instanceof IEBlocWidget) {
return new IEBlocElement((IEBlocWidget) object, browser, parent);
} else if (object instanceof IEHTMLTableWidget) {
return new IEHtmlTableElement((IEHTMLTableWidget) object, browser, parent);
} else if (object instanceof IETRWidget) {
return new IETRElement((IETRWidget) object, browser, parent);
} else if (object instanceof IETDWidget) {
return new IETDElement((IETDWidget) object, browser, parent);
} else if (object instanceof IESequenceTab && ((IESequenceTab) object).isRoot()) {
return new IETabContainerElement((IESequenceTab) object, browser, parent);
} else if (object instanceof IEStringWidget) {
return new IEStringElement((IEStringWidget) object, browser, parent);
} else if (object instanceof IELabelWidget) {
return new IELabelElement((IELabelWidget) object, browser, parent);
} else if (object instanceof IEWysiwygWidget) {
return new IEWysiwygElement((IEWysiwygWidget) object, browser, parent);
} else if (object instanceof IEDropDownWidget) {
return new IEDropDownElement((IEDropDownWidget) object, browser, parent);
} else if (object instanceof IEDynamicImage) {
return new IEDynamicImageElement((IEDynamicImage) object, browser, parent);
} else if (object instanceof IEMultimediaWidget) {
return new IEMultimediaElement((IEMultimediaWidget) object, browser, parent);
} else if (object instanceof IEButtonWidget) {
return new IEButtonElement((IEButtonWidget) object, browser, parent);
} else if (object instanceof IEBIRTWidget) {
return new IEBIRTElement((IEBIRTWidget) object, browser, parent);
} else if (object instanceof IETextFieldWidget) {
return new IETextFieldElement((IETextFieldWidget) object, browser, parent);
} else if (object instanceof IETextAreaWidget) {
return new IETextAreaElement((IETextAreaWidget) object, browser, parent);
} else if (object instanceof IEHeaderWidget) {
return new IEHeaderElement((IEHeaderWidget) object, browser, parent);
} else if (object instanceof IEHyperlinkWidget) {
return new IEHyperlinkElement((IEHyperlinkWidget) object, browser, parent);
} else if (object instanceof IECheckBoxWidget) {
return new IECheckBoxElement((IECheckBoxWidget) object, browser, parent);
} else if (object instanceof IEFileUploadWidget) {
return new IEFileUploadElement((IEFileUploadWidget) object, browser, parent);
} else if (object instanceof IETabWidget) {
return new IETabWidgetElement((IETabWidget) object, browser, parent);
} else if (object instanceof TabComponentDefinition) {
return new IETabComponentElement((TabComponentDefinition) object, browser, parent);
} else if (object instanceof IERadioButtonWidget) {
return new IERadioButtonElement(object, null, browser, parent);
} else if (object instanceof IEBrowserWidget) {
return new IEBrowserWidgetElement(object, null, browser, parent);
} else if (object instanceof IESequence) {
return new IESequenceElement((IESequence) object, BrowserElementType.SEQUENCE, browser, parent);
} else if (object instanceof RepetitionOperator) {
return new IERepetitionElement((RepetitionOperator) object, browser, parent);
} else if (object instanceof ConditionalOperator) {
return new IEConditionalElement((ConditionalOperator) object, browser, parent);
} else if (object instanceof FlexoComponentFolder) {
return new ComponentFolderElement((FlexoComponentFolder) object, browser, parent);
} else if (object instanceof ReusableComponentDefinition) {
return new ReusableComponentDefinitionElement((ReusableComponentDefinition) object, browser, parent);
} else if (object instanceof MonitoringScreenDefinition) {
return new MonitoringScreenDefinitionElement((MonitoringScreenDefinition) object, browser, parent);
} else if (object instanceof IEReusableWidget) {
return new IEReusableWidgetElement((IEReusableWidget) object, browser, parent);
}
else if (object instanceof FlexoItemMenu) {
return new FlexoItemMenuElement((FlexoItemMenu) object, browser, parent);
}
else if (object instanceof DKVModel) {
return new DKVModelElement((DKVModel) object, browser, parent);
} else if (object instanceof Domain) {
return new DKVDomainElement((Domain) object, browser, parent);
} else if (object instanceof DomainList) {
return new DKVDomainListElement((DomainList) object, browser, parent);
} else if (object instanceof LanguageList) {
return new DKVLanguageListElement((LanguageList) object, browser, parent);
} else if (object instanceof Language) {
return new DKVLanguageElement((Language) object, browser, parent);
} else if (object instanceof Key) {
return new DKVKeyElement((Key) object, browser, parent);
} else if (object instanceof Value) {
return new DKVValueElement((Value) object, browser, parent);
} else if (object instanceof KeyList) {
return new DKVKeyListElement((KeyList) object, browser, parent);
} else if (object instanceof ValueList) {
return new DKVValueListElement((ValueList) object, browser, parent);
}
return null;
}
}