blob: 55064f12459b13d0a0fb5d9b94d3368ab5d5498d [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 v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Florian Pirchner - Initial implementation
*/
package org.eclipse.osbp.ecview.core.common.editpart.emf;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.osbp.ecview.core.common.context.IViewContext;
import org.eclipse.osbp.ecview.core.common.editpart.IElementEditpart;
import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.BeanValueBindingEndpointEditpart;
import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.BindingSetEditpart;
import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.EnumListBindingEndpointEditpart;
import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.ListBindingEditpart;
import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.ValueBindingEditpart;
import org.eclipse.osbp.ecview.core.common.editpart.emf.binding.VisibilityProcessorValueBindingEndpointEditpart;
import org.eclipse.osbp.ecview.core.common.editpart.emf.common.AbstractEditpartManager;
import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.BeanValidationValidatorEditpart;
import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.ClassDelegateValidatorEditpart;
import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.MaxLengthValidatorEditpart;
import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.MinLengthValidatorEditpart;
import org.eclipse.osbp.ecview.core.common.editpart.emf.validation.RegexpValidatorEditpart;
import org.eclipse.osbp.ecview.core.common.editpart.emf.visibility.VisibilityProcessorEditpart;
import org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage;
import org.eclipse.osbp.ecview.core.common.model.binding.YBeanValueBindingEndpoint;
import org.eclipse.osbp.ecview.core.common.model.binding.YBindingSet;
import org.eclipse.osbp.ecview.core.common.model.binding.YDetailValueBindingEndpoint;
import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelListBindingEndpoint;
import org.eclipse.osbp.ecview.core.common.model.binding.YECViewModelValueBindingEndpoint;
import org.eclipse.osbp.ecview.core.common.model.binding.YEnumListBindingEndpoint;
import org.eclipse.osbp.ecview.core.common.model.binding.YListBinding;
import org.eclipse.osbp.ecview.core.common.model.binding.YValueBinding;
import org.eclipse.osbp.ecview.core.common.model.binding.YVisibilityProcessorValueBindingEndpoint;
import org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage;
import org.eclipse.osbp.ecview.core.common.model.core.YAction;
import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotListBindingEndpoint;
import org.eclipse.osbp.ecview.core.common.model.core.YBeanSlotValueBindingEndpoint;
import org.eclipse.osbp.ecview.core.common.model.core.YCommandSet;
import org.eclipse.osbp.ecview.core.common.model.core.YContextValueBindingEndpoint;
import org.eclipse.osbp.ecview.core.common.model.core.YConverter;
import org.eclipse.osbp.ecview.core.common.model.core.YDialog;
import org.eclipse.osbp.ecview.core.common.model.core.YElement;
import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableCollectionEndpoint;
import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableMultiSelectionEndpoint;
import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint;
import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableValueEndpoint;
import org.eclipse.osbp.ecview.core.common.model.core.YExposedAction;
import org.eclipse.osbp.ecview.core.common.model.core.YField;
import org.eclipse.osbp.ecview.core.common.model.core.YKeyStrokeDefinition;
import org.eclipse.osbp.ecview.core.common.model.core.YLayout;
import org.eclipse.osbp.ecview.core.common.model.core.YOpenDialogCommand;
import org.eclipse.osbp.ecview.core.common.model.core.YSendEventCommand;
import org.eclipse.osbp.ecview.core.common.model.core.YView;
import org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage;
import org.eclipse.osbp.ecview.core.common.model.validation.YBeanValidationValidator;
import org.eclipse.osbp.ecview.core.common.model.validation.YClassDelegateValidator;
import org.eclipse.osbp.ecview.core.common.model.validation.YMaxLengthValidator;
import org.eclipse.osbp.ecview.core.common.model.validation.YMinLengthValidator;
import org.eclipse.osbp.ecview.core.common.model.validation.YRegexpValidator;
import org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage;
import org.eclipse.osbp.ecview.core.common.model.visibility.YVisibilityProcessor;
/**
* An implementation of IEditPartManager for eObjects with
* nsURI=http://eclipse.org/emf/emfclient/uimodel.
*/
public class EditpartManager extends AbstractEditpartManager {
@Override
public boolean isFor(Object element) {
if (element instanceof EObject) {
String uriString = ((EObject) element).eClass().getEPackage()
.getNsURI();
return uriString.equals(CoreModelPackage.eNS_URI)
|| uriString.equals(BindingPackage.eNS_URI)
|| uriString.equals(ValidationPackage.eNS_URI)
|| uriString.equals(VisibilityPackage.eNS_URI);
} else if (element instanceof String) {
return element.equals(CoreModelPackage.eNS_URI)
|| element.equals(BindingPackage.eNS_URI)
|| element.equals(ValidationPackage.eNS_URI)
|| element.equals(VisibilityPackage.eNS_URI);
}
return false;
}
// @SuppressWarnings("unchecked")
// @Override
// public <A extends IElementEditpart> A createEditpart(IViewContext context, Object selector,
// Class<A> editPartClazz) {
// ElementEditpart<YElement> result = null;
// if (editPartClazz.isAssignableFrom(IViewEditpart.class)) {
// result = createNewInstance(ViewEditpart.class);
// } else if (editPartClazz.isAssignableFrom(ILayoutEditpart.class)) {
// result = createNewInstance(LayoutEditpart.class);
// } else if (editPartClazz.isAssignableFrom(IFieldEditpart.class)) {
// result = createNewInstance(FieldEditpart.class);
// } else if (editPartClazz.isAssignableFrom(IActionEditpart.class)) {
// result = createNewInstance(ActionEditpart.class);
// } else if (editPartClazz.isAssignableFrom(IBindingSetEditpart.class)) {
// result = createNewInstance(BindingSetEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IDetailValueBindingEndpointEditpart.class)) {
// result = createNewInstance(DetailValueBindingEndpointEditpart.class);
// } else if (editPartClazz.isAssignableFrom(IValueBindingEditpart.class)) {
// result = createNewInstance(ValueBindingEditpart.class);
// } else if (editPartClazz.isAssignableFrom(IListBindingEditpart.class)) {
// result = createNewInstance(ListBindingEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IContextValueBindingEndpointEditpart.class)) {
// result = createNewInstance(ContextValueBindingEndpointEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IBeanSlotValueBindingEndpointEditpart.class)) {
// result = createNewInstance(BeanSlotValueBindingEndpointEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IBeanSlotListBindingEndpointEditpart.class)) {
// result = createNewInstance(BeanSlotListBindingEndpointEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IEmbeddableValueBindingEndpointEditpart.class)) {
// result = createNewInstance(EmbeddableValueBindingEndpointEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IEmbeddableSelectionEndpointEditpart.class)) {
// result = createNewInstance(EmbeddableSelectionBindingEndpointEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IEmbeddableMultiSelectionEndpointEditpart.class)) {
// result = createNewInstance(EmbeddableMultiSelectionBindingEndpointEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IEmbeddableCollectionEndpointEditpart.class)) {
// result = createNewInstance(EmbeddableCollectionBindingEndpointEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IBeanValueBindingEndpointEditpart.class)) {
// result = createNewInstance(BeanValueBindingEndpointEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IECViewModelValueBindingEndpointEditpart.class)) {
// result = createNewInstance(ECViewModelValueBindingEndpointEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IECViewModelListBindingEndpointEditpart.class)) {
// result = createNewInstance(ECViewModelListBindingEndpointEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IEnumListBindingEndpointEditpart.class)) {
// result = createNewInstance(EnumListBindingEndpointEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IMinLengthValidatorEditpart.class)) {
// result = createNewInstance(MinLengthValidatorEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IMaxLengthValidatorEditpart.class)) {
// result = createNewInstance(MaxLengthValidatorEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IRegexpValidatorEditpart.class)) {
// result = createNewInstance(RegexpValidatorEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IClassDelegateValidatorEditpart.class)) {
// result = createNewInstance(ClassDelegateValidatorEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IClassDelegateValidatorEditpart.class)) {
// result = createNewInstance(ClassDelegateValidatorEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IBeanValidationValidatorEditpart.class)) {
// result = createNewInstance(BeanValidationValidatorEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IVisibilityProcessorEditpart.class)) {
// result = createNewInstance(VisibilityProcessorEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IVisibilityPropertiesEditpart.class)) {
// result = createNewInstance(VisibilityPropertiesEditpart.class);
// } else if (editPartClazz.isAssignableFrom(ICommandSetEditpart.class)) {
// result = createNewInstance(CommandSetEditpart.class);
// } else if (editPartClazz.isAssignableFrom(IDialogEditpart.class)) {
// result = createNewInstance(DialogEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IOpenDialogCommandEditpart.class)) {
// result = createNewInstance(OpenDialogCommandEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IVisibilityProcessorValueBindingEndpointEditpart.class)) {
// result = createNewInstance(VisibilityProcessorValueBindingEndpointEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IVisibilityProcessorEditpart.class)) {
// result = createNewInstance(VisibilityProcessorEditpart.class);
// } else if (editPartClazz.isAssignableFrom(IExposedActionEditpart.class)) {
// result = createNewInstance(ExposedActionEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(ISendEventCommandEditpart.class)) {
// result = createNewInstance(SendEventCommandEditpart.class);
// } else if (editPartClazz
// .isAssignableFrom(IKeyStrokeDefinitionEditpart.class)) {
// result = createNewInstance(KeyStrokeDefinitionEditpart.class);
// } else if (editPartClazz.isAssignableFrom(IConverterEditpart.class)) {
// result = createNewInstance(ConverterEditpart.class);
// }
//
// if (result != null) {
// result.initialize();
// }
//
// return (A) result;
// }
/**
* Creates a new instance of the edit part.
*
* @param <A>
* an instance of {@link IElementEditpart}
* @param yElement
* the model element
* @return editpart
*/
@SuppressWarnings("unchecked")
protected <A extends IElementEditpart> A createEditpart(IViewContext context, Object yElement) {
// asserts that no editpart was created already for the given element
assertOneEditpartForModelelement(yElement);
ElementEditpart<YElement> result = null;
if (yElement instanceof YView) {
result = createNewInstance(ViewEditpart.class);
} else if (yElement instanceof YLayout) {
result = createNewInstance(LayoutEditpart.class);
} else if (yElement instanceof YField) {
result = createNewInstance(FieldEditpart.class);
} else if (yElement instanceof YAction) {
result = createNewInstance(ActionEditpart.class);
} else if (yElement instanceof YBindingSet) {
result = createNewInstance(BindingSetEditpart.class);
} else if (yElement instanceof YValueBinding) {
result = createNewInstance(ValueBindingEditpart.class);
} else if (yElement instanceof YListBinding) {
result = createNewInstance(ListBindingEditpart.class);
} else if (yElement instanceof YContextValueBindingEndpoint) {
result = createNewInstance(ContextValueBindingEndpointEditpart.class);
} else if (yElement instanceof YBeanSlotValueBindingEndpoint) {
result = createNewInstance(BeanSlotValueBindingEndpointEditpart.class);
} else if (yElement instanceof YBeanSlotListBindingEndpoint) {
result = createNewInstance(BeanSlotListBindingEndpointEditpart.class);
} else if (yElement instanceof YDetailValueBindingEndpoint) {
result = createNewInstance(DetailValueBindingEndpointEditpart.class);
} else if (yElement instanceof YEmbeddableValueEndpoint) {
result = createNewInstance(EmbeddableValueBindingEndpointEditpart.class);
} else if (yElement instanceof YEmbeddableSelectionEndpoint) {
result = createNewInstance(EmbeddableSelectionBindingEndpointEditpart.class);
} else if (yElement instanceof YEmbeddableMultiSelectionEndpoint) {
result = createNewInstance(EmbeddableMultiSelectionBindingEndpointEditpart.class);
} else if (yElement instanceof YEmbeddableCollectionEndpoint) {
result = createNewInstance(EmbeddableCollectionBindingEndpointEditpart.class);
} else if (yElement instanceof YBeanValueBindingEndpoint) {
result = createNewInstance(BeanValueBindingEndpointEditpart.class);
} else if (yElement instanceof YEnumListBindingEndpoint) {
result = createNewInstance(EnumListBindingEndpointEditpart.class);
} else if (yElement instanceof YECViewModelValueBindingEndpoint) {
result = createNewInstance(ECViewModelValueBindingEndpointEditpart.class);
} else if (yElement instanceof YECViewModelListBindingEndpoint) {
result = createNewInstance(ECViewModelListBindingEndpointEditpart.class);
} else if (yElement instanceof YMinLengthValidator) {
result = createNewInstance(MinLengthValidatorEditpart.class);
} else if (yElement instanceof YMaxLengthValidator) {
result = createNewInstance(MaxLengthValidatorEditpart.class);
} else if (yElement instanceof YRegexpValidator) {
result = createNewInstance(RegexpValidatorEditpart.class);
} else if (yElement instanceof YClassDelegateValidator) {
result = createNewInstance(ClassDelegateValidatorEditpart.class);
} else if (yElement instanceof YBeanValidationValidator) {
result = createNewInstance(BeanValidationValidatorEditpart.class);
} else if (yElement instanceof YCommandSet) {
result = createNewInstance(CommandSetEditpart.class);
} else if (yElement instanceof YDialog) {
result = createNewInstance(DialogEditpart.class);
} else if (yElement instanceof YOpenDialogCommand) {
result = createNewInstance(OpenDialogCommandEditpart.class);
} else if (yElement instanceof YVisibilityProcessorValueBindingEndpoint) {
result = createNewInstance(VisibilityProcessorValueBindingEndpointEditpart.class);
} else if (yElement instanceof YVisibilityProcessor) {
result = createNewInstance(VisibilityProcessorEditpart.class);
} else if (yElement instanceof YExposedAction) {
result = createNewInstance(ExposedActionEditpart.class);
} else if (yElement instanceof YSendEventCommand) {
result = createNewInstance(SendEventCommandEditpart.class);
} else if (yElement instanceof YKeyStrokeDefinition) {
result = createNewInstance(KeyStrokeDefinitionEditpart.class);
} else if (yElement instanceof YConverter) {
result = createNewInstance(ConverterEditpart.class);
}
if (result != null) {
result.initialize(context, (YElement) yElement);
}
return (A) result;
}
/**
* Returns a new instance of the type.
*
* @param type
* The type of the edit part to be created
* @return editpart
* @throws InstantiationException
* e
* @throws IllegalAccessException
* e
*/
protected IElementEditpart newInstance(
Class<? extends IElementEditpart> type)
throws InstantiationException, IllegalAccessException {
return type.newInstance();
}
}