blob: 51bae682830ea37c5e23e79dd15cfe3202852c2c [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 org.eclipse.bpel.model.BPELPackage;
import org.eclipse.bpel.model.ForEach;
import org.eclipse.bpel.model.Scope;
import org.eclipse.bpel.ui.adapters.delegates.ActivityContainer;
import org.eclipse.bpel.ui.editparts.OutlineTreeEditPart;
import org.eclipse.bpel.ui.editparts.SequenceEditPart;
import org.eclipse.gef.EditPart;
public class ForEachAdapter extends ContainerActivityAdapter implements IAnnotatedElement {
/* IContainer delegate */
@Override
public IContainer createContainerDelegate() {
return new ActivityContainer(BPELPackage.eINSTANCE.getForEach_Activity());
}
/* EditPartFactory */
@Override
public EditPart createEditPart(EditPart context, Object model) {
EditPart result = new SequenceEditPart();
result.setModel(model);
return result;
}
/* IOutlineEditPartFactory */
@Override
public EditPart createOutlineEditPart(EditPart context, Object model) {
EditPart result = new OutlineTreeEditPart();
result.setModel(model);
return result;
}
/* IAnnotatedElement */
public String[] getAnnotation(Object object) {
ForEach obj = (ForEach)object;
return new String[] {
Messages.ForEachAdapter_2, AnnotationHelper.getAnnotation(obj.getCounterName()),
Messages.ForEachAdapter_0, AnnotationHelper.getAnnotation(obj.getStartCounterValue()),
Messages.ForEachAdapter_1, AnnotationHelper.getAnnotation(obj.getStartCounterValue()),
};
}
@Override
public boolean canAddObject(Object object, Object child, Object insertBefore) {
ForEach forEach = (ForEach)object;
if (forEach.getActivity()==null && child instanceof Scope) {
return getContainerDelegate(object).canAddObject(object, child, insertBefore);
}
else
return false;
}
}