/******************************************************************************* * Copyright (c) 2011, 2012 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 * * @author Innar Made ******************************************************************************/ package org.eclipse.bpmn2.modeler.ui.property.data; import org.eclipse.bpmn2.Bpmn2Package; import org.eclipse.bpmn2.modeler.core.merrimac.clad.AbstractBpmn2PropertySection; import org.eclipse.bpmn2.modeler.core.merrimac.clad.AbstractPropertiesProvider; import org.eclipse.bpmn2.modeler.core.merrimac.clad.DefaultDetailComposite; import org.eclipse.bpmn2.modeler.core.merrimac.dialogs.ComboObjectEditor; import org.eclipse.bpmn2.modeler.core.merrimac.dialogs.ObjectEditor; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EReference; import org.eclipse.swt.widgets.Composite; public class ItemAwareElementDetailComposite extends DefaultDetailComposite { private AbstractPropertiesProvider propertiesProvider; public ItemAwareElementDetailComposite(Composite parent, int style) { super(parent, style); } /** * @param section */ public ItemAwareElementDetailComposite(AbstractBpmn2PropertySection section) { super(section); } @Override public AbstractPropertiesProvider getPropertiesProvider(EObject object) { if (propertiesProvider==null) { propertiesProvider = new AbstractPropertiesProvider(object) { String[] properties = new String[] { "id", //$NON-NLS-1$ "name", //$NON-NLS-1$ "isCollection", //$NON-NLS-1$ "itemSubjectRef", //$NON-NLS-1$ "dataState", //$NON-NLS-1$ }; @Override public String[] getProperties() { return properties; } }; } return propertiesProvider; } @Override protected void bindReference(Composite parent, EObject object, EReference reference) { if (reference.getName().equals("itemSubjectRef")) { //$NON-NLS-1$ if (isModelObjectEnabled(object.eClass(), reference)) { if (parent==null) parent = getAttributesParent(); String displayName = getBusinessObjectDelegate().getLabel(object, reference); ObjectEditor editor = new ComboObjectEditor(this,object,reference, Bpmn2Package.eINSTANCE.getItemDefinition()); editor.createControl(parent,displayName); } } else super.bindReference(parent, object, reference); } }