blob: 41699d1836a85a84efecbbdf8ca8eb8a4564f9da [file] [log] [blame]
/*******************************************************************************
* 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.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;
}
}