/******************************************************************************* | |
* Copyright (c) 2005, 2012 IBM Corporation and others. | |
* 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: | |
* IBM Corporation - initial API and implementation | |
*******************************************************************************/ | |
package org.eclipse.bpel.ui.properties; | |
import org.eclipse.bpel.common.ui.details.ButtonIValue; | |
import org.eclipse.bpel.common.ui.details.IDetailsAreaConstants; | |
import org.eclipse.bpel.common.ui.flatui.FlatFormAttachment; | |
import org.eclipse.bpel.common.ui.flatui.FlatFormData; | |
import org.eclipse.bpel.common.ui.flatui.FlatFormLayout; | |
import org.eclipse.bpel.model.BPELPackage; | |
import org.eclipse.bpel.model.Pick; | |
import org.eclipse.bpel.model.Receive; | |
import org.eclipse.bpel.ui.IHelpContextIds; | |
import org.eclipse.bpel.ui.Messages; | |
import org.eclipse.emf.ecore.EObject; | |
import org.eclipse.swt.SWT; | |
import org.eclipse.swt.layout.FillLayout; | |
import org.eclipse.swt.widgets.Button; | |
import org.eclipse.swt.widgets.Composite; | |
import org.eclipse.ui.PlatformUI; | |
/** | |
* Details section for the "createInstance" property of Receive and Pick activities. | |
*/ | |
public class CreateInstanceSection extends BPELPropertySection { | |
Button fCreateInstanceButton; | |
EditController fCreteInstanceController ; | |
protected void createChangeTrackers() { | |
fCreteInstanceController = createEditController(); | |
fCreteInstanceController.setViewIValue(new ButtonIValue(fCreateInstanceButton)); | |
fCreteInstanceController.startListeningTo(fCreateInstanceButton); | |
} | |
@Override | |
protected void basicSetInput(EObject newInput) { | |
super.basicSetInput(newInput); | |
if (newInput instanceof Receive) { | |
fCreteInstanceController.setFeature(BPELPackage.eINSTANCE.getReceive_CreateInstance()); | |
fCreteInstanceController.setInput(newInput); | |
} else if (newInput instanceof Pick) { | |
fCreteInstanceController.setFeature(BPELPackage.eINSTANCE.getPick_CreateInstance()); | |
fCreteInstanceController.setInput(newInput); | |
} else { | |
fCreteInstanceController.setFeature( null ); | |
fCreteInstanceController.setInput(newInput); | |
} | |
} | |
protected void createCreateInstanceWidgets(Composite composite) { | |
FlatFormData data; | |
Composite parent = fWidgetFactory.createComposite(composite); | |
data = new FlatFormData(); | |
data.left = new FlatFormAttachment(0, IDetailsAreaConstants.HSPACE); | |
data.top = new FlatFormAttachment(0, IDetailsAreaConstants.VSPACE); | |
parent.setLayoutData(data); | |
parent.setLayout(new FillLayout()); | |
fCreateInstanceButton = fWidgetFactory.createButton(parent, Messages.CreateInstanceDetails_Create_a_new_Process_instance_if_one_does_not_already_exist_1, SWT.CHECK); | |
} | |
@Override | |
protected void createClient(Composite parent) { | |
Composite composite = createFlatFormComposite(parent); | |
// HACK: the checkbox by itself looks cramped..give it a little extra space | |
((FlatFormLayout)composite.getLayout()).marginHeight += 3; | |
createCreateInstanceWidgets(composite); | |
createChangeTrackers(); | |
PlatformUI.getWorkbench().getHelpSystem().setHelp( | |
composite, IHelpContextIds.PROPERTY_PAGE_PICK_IMPLEMENTATION); | |
} | |
/** | |
* @see org.eclipse.bpel.ui.properties.BPELPropertySection#getUserContext() | |
*/ | |
@Override | |
public Object getUserContext() { | |
return null; | |
} | |
/** | |
* @see org.eclipse.bpel.ui.properties.BPELPropertySection#restoreUserContext(java.lang.Object) | |
*/ | |
@Override | |
public void restoreUserContext(Object userContext) { | |
fCreateInstanceButton.setFocus(); | |
} | |
/** | |
* @see org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#shouldUseExtraSpace() | |
*/ | |
@Override | |
public boolean shouldUseExtraSpace () { | |
return false; | |
} | |
/** | |
* @see org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#getMinimumHeight() | |
*/ | |
@Override | |
public int getMinimumHeight () { | |
return 40; | |
} | |
} |