public class DataIoBarrierFeatureContainer extends CustomShapeFeatureContainer {
@Override
protected IShapeFeatureContainer createFeatureContainer(IFeatureProvider fp) {
return new DataObjectFeatureContainer() {
@Override
public IAddFeature getAddFeature(IFeatureProvider fp) {
return new AddDataObjectFeature(fp) {
@Override
protected void decorateShape(IAddContext context, ContainerShape containerShape, DataObject businessObject) {
super.decorateShape(context, containerShape, businessObject);
}
};
}
@Override
public ICreateFeature getCreateFeature(IFeatureProvider fp) {
return new CreateDataObjectFeature(fp) {
@Override
public DataObject createBusinessObject(ICreateContext context) {
DataObject businessObject = (DataObject) super.createBusinessObject(context);
return businessObject;
}
@Override
public String getCreateImageId() {
return SampleImageProvider.getImageId(customTaskDescriptor, IconSize.SMALL);
}
@Override
public String getCreateLargeImageId() {
return SampleImageProvider.getImageId(customTaskDescriptor, IconSize.LARGE);
}
@Override
public String getCreateDescription() {
return "Create "+customTaskDescriptor.getName();
}
};
}
@Override
public IDirectEditingFeature getDirectEditingFeature(IFeatureProvider fp) {
return null;
}
@Override
public IResizeShapeFeature getResizeFeature(IFeatureProvider fp) {
return null;
}
};
}
public String getId(EObject arg0) {
EStructuralFeature f = ModelDecorator.getAnyAttribute(arg0, "type");
if (f!=null) {
Object id = arg0.eGet(f);
if (TYPE_VALUE.equals(id))
return CUSTOM_TASK_ID;
}
return null;
}
}
<customTask
category="Interoperability"
description="Data Interoperability Barrier"
featureContainer="com.hedadura16.DataIoBarrierFeatureContainer"
icon="InteroperabilityBarrier.png"
id="com.hedadura16.dataIoBarrierId"
name="Data Interoperability Barrier"
runtimeId="com.hedadura16.runtimeId"
type="DataObject">
<property name="type" value="DataIoBarrier">
</property>
</customTask>