/******************************************************************************* * 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 Bob Brodt ******************************************************************************/ package org.eclipse.bpmn2.modeler.ui.property.data; import org.eclipse.bpmn2.Expression; import org.eclipse.bpmn2.FormalExpression; import org.eclipse.bpmn2.ResourceParameterBinding; import org.eclipse.bpmn2.modeler.core.adapters.InsertionAdapter; import org.eclipse.bpmn2.modeler.core.merrimac.clad.AbstractBpmn2PropertySection; import org.eclipse.bpmn2.modeler.core.merrimac.clad.AbstractDetailComposite; import org.eclipse.bpmn2.modeler.core.merrimac.clad.DefaultDetailComposite; import org.eclipse.bpmn2.modeler.core.merrimac.clad.PropertiesCompositeFactory; import org.eclipse.bpmn2.modeler.core.runtime.TargetRuntime; import org.eclipse.emf.ecore.EObject; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; /** * @author Bob Brodt * */ public class ResourceParameterBindingDetailComposite extends DefaultDetailComposite { private AbstractDetailComposite exprDetails; /** * @param parent * @param style */ public ResourceParameterBindingDetailComposite(Composite parent, int style) { super(parent, style); } /** * @param section */ public ResourceParameterBindingDetailComposite(AbstractBpmn2PropertySection section) { super(section); } @Override protected void cleanBindings() { super.cleanBindings(); exprDetails = null; } @Override public void createBindings(final EObject be) { if (be instanceof ResourceParameterBinding) { final ResourceParameterBinding rpb = (ResourceParameterBinding) be; TargetRuntime rt = TargetRuntime.getRuntime(be); bindReference(this, be, PACKAGE.getResourceParameterBinding_ParameterRef()); // an MultipleAssignments is not really valid without both a From and To Expression expr = rpb.getExpression(); if (expr==null) { expr = createModelObject(FormalExpression.class); InsertionAdapter.add(rpb, PACKAGE.getResourceParameterBinding_Expression(), expr); } if (exprDetails==null) { exprDetails = PropertiesCompositeFactory.INSTANCE.createDetailComposite( Expression.class, this, rt, SWT.NONE); } exprDetails.setBusinessObject(expr); exprDetails.setTitle(Messages.ResourceParameterBindingDetailComposite_Expression_Label); } } }