/******************************************************************************* | |
* 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 2.0 | |
* which accompanies this distribution, and is available at | |
* https://www.eclipse.org/legal/epl-2.0/ | |
* | |
* SPDX-License-Identifier: EPL-2.0 | |
* | |
* Contributors: | |
* IBM Corporation - initial API and implementation | |
*******************************************************************************/ | |
package org.eclipse.bpel.ui.adapters; | |
import java.util.ArrayList; | |
import java.util.List; | |
import org.eclipse.bpel.model.Process; | |
import org.eclipse.bpel.model.adapters.AbstractAdapter; | |
import org.eclipse.bpel.ui.BPELUIPlugin; | |
import org.eclipse.bpel.ui.IBPELUIConstants; | |
import org.eclipse.bpel.ui.Messages; | |
import org.eclipse.bpel.ui.actions.editpart.CreateProcessEventHandlerAction; | |
import org.eclipse.bpel.ui.actions.editpart.CreateProcessFaultHandlerAction; | |
import org.eclipse.bpel.ui.actions.editpart.IEditPartAction; | |
import org.eclipse.bpel.ui.editparts.StartNodeEditPart; | |
import org.eclipse.bpel.ui.uiextensionmodel.StartNode; | |
import org.eclipse.bpel.ui.util.BPELUtil; | |
import org.eclipse.gef.EditPart; | |
import org.eclipse.gef.EditPartFactory; | |
import org.eclipse.swt.graphics.Image; | |
public class StartNodeAdapter extends AbstractAdapter implements EditPartFactory, ILabeledElement, IEditPartActionContributor { | |
/* ILabeledElement */ | |
public Image getSmallImage(Object object) { | |
return BPELUIPlugin.INSTANCE.getImage( | |
IBPELUIConstants.ICON_STARTNODE_16_GIF); | |
} | |
public Image getLargeImage(Object object) { | |
// There is no large image for the start node. | |
return null; | |
} | |
public String getLabel(Object object) { | |
return getTypeLabel(object); | |
} | |
public String getTypeLabel(Object object) { | |
return Messages.StartNodeAdapter_Start_1; | |
} | |
/* EditPartFactory */ | |
public EditPart createEditPart(EditPart context, Object model) { | |
EditPart result = new StartNodeEditPart(); | |
result.setModel(model); | |
return result; | |
} | |
/* IEditPartActionContributor */ | |
public List<IEditPartAction> getEditPartActions(final EditPart editPart) { | |
List<IEditPartAction> actions = new ArrayList<IEditPartAction>(); | |
StartNode startNode = (StartNode)editPart.getModel(); | |
Process process = startNode.getProcess(); | |
IFaultHandlerHolder ifh = BPELUtil.adapt(process, IFaultHandlerHolder.class); | |
if (ifh != null && ifh.getFaultHandler(process) == null) { | |
actions.add(new CreateProcessFaultHandlerAction(editPart)); | |
} | |
IEventHandlerHolder ieh = BPELUtil.adapt(process, IEventHandlerHolder.class); | |
if (ieh != null && ieh.getEventHandler(process) == null) { | |
actions.add(new CreateProcessEventHandlerAction(editPart)); | |
} | |
return actions; | |
} | |
} |