/*******************************************************************************
* Copyright (c) 2009 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is 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:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.smooks.configuration.editors.javabean12;
import java.util.List;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.jboss.tools.smooks.configuration.editors.AttributeFieldEditPart;
import org.jboss.tools.smooks.editor.ISmooksModelProvider;
import org.jboss.tools.smooks.model.javabean12.BeanType;
import org.jboss.tools.smooks.model.javabean12.Javabean12Package;
/**
* @author Dart (dpeng@redhat.com)
* <p>
* Apr 9, 2009
*/
public class JavabeanValueBinding12UICreator extends PropertiesAndSetterMethodSearchFieldEditorCreator {
@Override
protected boolean canCreatePropertiesSearchFieldEditor(EAttribute feature) {
if (feature == Javabean12Package.eINSTANCE.getValueType_Property()) {
return true;
}
return false;
}
@Override
protected boolean canCreateMethodsSearchFieldEditor(EAttribute feature) {
if (feature == Javabean12Package.eINSTANCE.getValueType_SetterMethod()) {
return true;
}
return super.canCreateMethodsSearchFieldEditor(feature);
}
/*
* (non-Javadoc)
*
* @seeorg.jboss.tools.smooks.configuration.editors.javabean.
* PropertiesAndSetterMethodSearchFieldEditorCreator
* #createPropertyUI(org.eclipse.ui.forms.widgets.FormToolkit,
* org.eclipse.swt.widgets.Composite,
* org.eclipse.emf.edit.provider.IItemPropertyDescriptor, java.lang.Object,
* org.eclipse.emf.ecore.EAttribute,
* org.jboss.tools.smooks.configuration.editors.SmooksMultiFormEditor)
*/
@Override
public AttributeFieldEditPart createPropertyUI(FormToolkit toolkit, Composite parent,
IItemPropertyDescriptor propertyDescriptor, Object model, EAttribute feature,
ISmooksModelProvider formEditor, IEditorPart part) {
return super.createPropertyUI(toolkit, parent, propertyDescriptor, model, feature, formEditor, part);
}
/*
* (non-Javadoc)
*
* @see
* org.jboss.tools.smooks.configuration.editors.PropertyUICreator#createExtendUI
* (org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain,
* org.eclipse.ui.forms.widgets.FormToolkit,
* org.eclipse.swt.widgets.Composite, java.lang.Object,
* org.jboss.tools.smooks.configuration.editors.SmooksMultiFormEditor)
*/
@Override
public List<AttributeFieldEditPart> createExtendUIOnBottom(AdapterFactoryEditingDomain editingdomain,
FormToolkit toolkit, Composite parent, Object model, ISmooksModelProvider formEditor, IEditorPart part) {
// List<AttributeFieldEditPart> list = createElementSelectionSection(Messages.JavabeanValueBinding12UICreator_DataGroupText, editingdomain, toolkit, parent,
// model, formEditor, part, Javabean12Package.eINSTANCE.getValueType_Data(), Javabean12Package.eINSTANCE
// .getValueType_DataNS());
// Composite groupParent = parent;
// for (Iterator<?> iterator = list.iterator(); iterator.hasNext();) {
// AttributeFieldEditPart attributeFieldEditPart = (AttributeFieldEditPart) iterator.next();
// if (attributeFieldEditPart.getAttribute() == null) {
// groupParent = (Composite) attributeFieldEditPart.getContentControl();
// break;
// }
// }
// list.add(SmooksUIUtils.createStringFieldEditor(groupParent, toolkit, getPropertyDescriptor(editingdomain,
// Javabean12Package.Literals.VALUE_TYPE__DEFAULT, model), model, false, false, null));
//
//// list.add(SmooksUIUtils.createStringFieldEditor(groupParent, toolkit, getPropertyDescriptor(editingdomain,
//// Javabean12Package.Literals.VALUE_TYPE__DECODER, model), model, false, false, null));
// return list;
return super.createExtendUIOnBottom(editingdomain, toolkit, parent, model, formEditor, part);
}
/*
* (non-Javadoc)
*
* @see
* org.jboss.tools.smooks.configuration.editors.PropertyUICreator#ignoreProperty
* (org.eclipse.emf.ecore.EAttribute)
*/
@Override
public boolean ignoreProperty(EAttribute feature) {
if (feature == Javabean12Package.eINSTANCE.getValueType_Data()) {
return true;
}
if (feature == Javabean12Package.eINSTANCE.getValueType_DataNS()) {
return true;
}
if (feature == Javabean12Package.eINSTANCE.getValueType_Decoder()) {
return true;
}
if (feature == Javabean12Package.eINSTANCE.getValueType_Default()) {
return true;
}
return super.ignoreProperty(feature);
}
@Override
public boolean isSelectorFeature(EAttribute attribute) {
return super.isSelectorFeature(attribute);
}
/*
* (non-Javadoc)
*
* @seeorg.jboss.tools.smooks.configuration.editors.javabean.
* PropertiesAndSetterMethodSearchFieldEditorCreator
* #getClassString(java.lang.Object)
*/
protected String getClassString(Object model) {
if (model instanceof EObject) {
EObject container = ((EObject) model).eContainer();
if (container instanceof BeanType) {
return ((BeanType) container).getClass_();
}
}
return super.getClassString(model);
}
}