/******************************************************************************* * 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.editparts; import java.util.List; import org.eclipse.bpel.model.BPELPackage; import org.eclipse.bpel.model.PartnerLink; import org.eclipse.bpel.model.PartnerLinks; import org.eclipse.bpel.ui.BPELEditor; import org.eclipse.bpel.ui.Messages; import org.eclipse.bpel.ui.factories.UIObjectFactoryProvider; import org.eclipse.bpel.ui.util.BatchedMultiObjectAdapter; import org.eclipse.bpel.ui.util.ModelHelper; import org.eclipse.draw2d.IFigure; import org.eclipse.draw2d.Label; import org.eclipse.emf.common.notify.Adapter; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.ecore.EObject; import org.eclipse.gef.requests.CreationFactory; /** * Interface Partners. */ public class PartnerLinksEditPart extends BPELTrayCategoryEditPart { /** * Only add inbound partners. */ @Override protected List<PartnerLink> getModelChildren() { return getPartnerLinks().getChildren(); // // List result = new ArrayList(); // for (Iterator iter = getPartnerLinks().getChildren().iterator(); iter.hasNext();) { // PartnerLink partner = (PartnerLink) iter.next(); // if (ModelHelper.isInterfacePartnerLink(partner)) { // result.add(partner); // } // } // return result; } // protected Object addEntry() { // CompoundCommand compound = new CompoundCommand(); // EObject parent = getPartnerLinks(); // final PartnerLink partner = (PartnerLink) getCreationFactory().getNewObject(); // compound.add(new InsertInContainerCommand(parent, partner, null)); // Definition artifactsDefinition = getBPELEditor().getArtifactsDefinition(); // PartnerLinkType plt = PartnerlinktypeFactory.eINSTANCE.createPartnerLinkType(); // Process process = ModelHelper.getProcess(parent); // compound.add(ModelHelper.getCreatePartnerLinkTypeCommand(process, partner, plt, artifactsDefinition, getRoleKind())); // getCommandStack().execute(compound); // // direct edit // getViewer().getControl().getDisplay().asyncExec(new Runnable() { // public void run() { // EditPart part = selectEditPart(partner); // part.performRequest(new DirectEditRequest()); // } // }); // return partner; // } protected int getRoleKind() { return ModelHelper.MY_ROLE; } protected PartnerLinks getPartnerLinks() { return (PartnerLinks)getModel(); } protected EObject getContainer() { return getPartnerLinks().eContainer(); } protected BPELEditor getBPELEditor() { return ModelHelper.getBPELEditor(getContainer()); } @Override protected CreationFactory getCreationFactory() { return UIObjectFactoryProvider.getInstance().getFactoryFor(BPELPackage.eINSTANCE.getPartnerLink()); } @Override protected IFigure getAddToolTip() { return new Label(Messages.PartnerLinksEditPart_0); } @Override protected IFigure getRemoveToolTip() { return new Label(Messages.PartnerLinksEditPart_1); } @Override protected Adapter createAdapter() { return new BatchedMultiObjectAdapter() { @Override public void finish() { refresh(); } @Override public void notify(Notification n) { } }; } }