blob: 786ed159d26a13afd9076a37f403d23c142f1aea [file] [log] [blame]
/**
* Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Florian Pirchner - Initial implementation
*/
package org.eclipse.osbp.runtime.web.ecview.presentation.vaadin.internal;
import org.eclipse.osbp.ecview.core.common.context.IViewContext;
import org.eclipse.osbp.ecview.core.common.editpart.IDialogEditpart;
import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
import org.eclipse.osbp.ecview.core.common.editpart.IViewEditpart;
import org.eclipse.osbp.ecview.core.common.presentation.IPresentationFactory;
import org.eclipse.osbp.ecview.core.common.presentation.IWidgetPresentation;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IAbsoluteLayoutEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IBeanReferenceFieldEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IBooleanSearchFieldEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IBrowserEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IButtonEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ICheckboxEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IComboBoxEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ICssLayoutEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IDateTimeEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IDecimalFieldEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IEnumComboBoxEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IEnumListEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IEnumOptionsGroupEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IFilteringComponentEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IFormLayoutEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IGridLayoutEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IHorizontalLayoutEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IImageEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IKanbanEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ILabelEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IListEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IMasterDetailEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.INumericFieldEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.INumericSearchFieldEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IOptionsGroupEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IPanelEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IPasswordFieldEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IProgressBarEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ISearchPanelEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ISliderEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ISplitPanelEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ISuggestTextFieldEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ITabEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ITabSheetEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ITableEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ITextAreaEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ITextFieldEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ITextSearchFieldEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.ITreeEditpart;
import org.eclipse.osbp.ecview.core.ui.core.editparts.extension.IVerticalLayoutEditpart;
import org.eclipse.osbp.runtime.web.ecview.presentation.vaadin.VaadinRenderer;
import org.osgi.service.component.annotations.Component;
/**
* The presenter factory.
*/
@Component(immediate = true, service = { IPresentationFactory.class })
public class PresenterFactory implements IPresentationFactory {
public PresenterFactory() {
}
@Override
public boolean isFor(IViewContext uiContext, IElementEditpart editpart) {
String presentationURI = uiContext.getPresentationURI();
return presentationURI != null && presentationURI.equals(VaadinRenderer.UI_KIT_URI);
}
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public <A extends IWidgetPresentation<?>> A createPresentation(IViewContext uiContext, IElementEditpart editpart)
throws IllegalArgumentException {
if (editpart instanceof IViewEditpart) {
return (A) new ViewPresentation((IViewEditpart) editpart);
} else if (editpart instanceof ITextFieldEditpart) {
return (A) new TextFieldPresentation(editpart);
} else if (editpart instanceof ILabelEditpart) {
return (A) new LabelPresentation(editpart);
} else if (editpart instanceof ITextAreaEditpart) {
return (A) new TextAreaPresentation(editpart);
} else if (editpart instanceof ICheckboxEditpart) {
return (A) new CheckBoxPresentation(editpart);
} else if (editpart instanceof IComboBoxEditpart) {
return (A) new ComboBoxPresentation(editpart);
} else if (editpart instanceof IListEditpart) {
return (A) new ListPresentation(editpart);
} else if (editpart instanceof ITableEditpart) {
return (A) new TablePresentation(editpart);
} else if (editpart instanceof ITreeEditpart) {
return (A) new TreePresentation(editpart);
} else if (editpart instanceof IOptionsGroupEditpart) {
return (A) new OptionsGroupPresentation(editpart);
} else if (editpart instanceof IButtonEditpart) {
return (A) new ButtonPresentation(editpart);
} else if (editpart instanceof IGridLayoutEditpart) {
return (A) new GridLayoutPresentation(editpart);
} else if (editpart instanceof IHorizontalLayoutEditpart) {
return (A) new HorizontalLayoutPresentation(editpart);
} else if (editpart instanceof IVerticalLayoutEditpart) {
return (A) new VerticalLayoutPresentation(editpart);
} else if (editpart instanceof IFormLayoutEditpart) {
return (A) new FormLayoutPresentation(editpart);
} else if (editpart instanceof ICssLayoutEditpart) {
return (A) new CssLayoutPresentation(editpart);
} else if (editpart instanceof IDecimalFieldEditpart) {
return (A) new DecimalFieldPresentation(editpart);
} else if (editpart instanceof INumericFieldEditpart) {
return (A) new NumericFieldPresentation(editpart);
} else if (editpart instanceof IDateTimeEditpart) {
return (A) new DateTimePresentation(editpart);
} else if (editpart instanceof IBrowserEditpart) {
return (A) new BrowserPresentation(editpart);
} else if (editpart instanceof IProgressBarEditpart) {
return (A) new ProgressBarPresentation(editpart);
} else if (editpart instanceof ITabSheetEditpart) {
return (A) new TabSheetPresentation(editpart);
} else if (editpart instanceof ITabEditpart) {
return (A) new TabPresentation(editpart);
} else if (editpart instanceof IMasterDetailEditpart) {
return (A) new MasterDetailPresentation(editpart);
} else if (editpart instanceof IImageEditpart) {
return (A) new ImagePresentation(editpart);
} else if (editpart instanceof IDialogEditpart) {
return (A) new DialogPresentation(editpart);
} else if (editpart instanceof ITextSearchFieldEditpart) {
return (A) new TextSearchFieldPresentation(editpart);
} else if (editpart instanceof INumericSearchFieldEditpart) {
return (A) new NumericSearchFieldPresentation(editpart);
} else if (editpart instanceof IBooleanSearchFieldEditpart) {
return (A) new BooleanSearchFieldPresentation(editpart);
} else if (editpart instanceof ISplitPanelEditpart) {
return (A) new SplitPanelPresentation(editpart);
} else if (editpart instanceof IPanelEditpart) {
return (A) new PanelPresentation(editpart);
} else if (editpart instanceof ISearchPanelEditpart) {
return (A) new SearchPanelPresentation(editpart);
} else if (editpart instanceof IBeanReferenceFieldEditpart) {
return (A) new BeanReferenceFieldPresentation(editpart);
} else if (editpart instanceof IEnumComboBoxEditpart) {
return (A) new EnumComboBoxPresentation(editpart);
} else if (editpart instanceof IEnumListEditpart) {
return (A) new EnumListPresentation(editpart);
} else if (editpart instanceof IEnumOptionsGroupEditpart) {
return (A) new EnumOptionsGroupPresentation(editpart);
} else if (editpart instanceof ISliderEditpart) {
return (A) new SliderPresentation(editpart);
} else if (editpart instanceof ISuggestTextFieldEditpart) {
return (A) new SuggestTextFieldPresentation(editpart);
} else if (editpart instanceof IAbsoluteLayoutEditpart) {
return (A) new AbsoluteLayoutPresentation(editpart);
} else if (editpart instanceof IPasswordFieldEditpart) {
return (A) new PasswordFieldPresentation(editpart);
} else if (editpart instanceof IFilteringComponentEditpart) {
return (A) new FilteringComponentPresentation(editpart);
} else if (editpart instanceof IKanbanEditpart) {
return (A) new KanbanPresentation(editpart);
}
throw new IllegalArgumentException(String.format("No presenter available for editpart %s[%s]",
editpart.getClass().getName(), editpart.getId()));
}
}