Modify template for ItemProviders to override getChildImage - implemented based on target objects. This gives nice effects for all available BPMN icons.
diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/BPMNDiagramItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/BPMNDiagramItemProvider.java
index bc24652..5512f7b 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/BPMNDiagramItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/BPMNDiagramItemProvider.java
@@ -114,6 +114,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/BPMNLabelItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/BPMNLabelItemProvider.java
index 135758b..79c03cb 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/BPMNLabelItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/BPMNLabelItemProvider.java
@@ -92,6 +92,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/BPMNLabelStyleItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/BPMNLabelStyleItemProvider.java
index 856990d..d9b9e13 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/BPMNLabelStyleItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/BPMNLabelStyleItemProvider.java
@@ -113,6 +113,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/BPMNPlaneItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/BPMNPlaneItemProvider.java
index d21e35e..6b0b42e 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/BPMNPlaneItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/BPMNPlaneItemProvider.java
@@ -92,6 +92,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/BPMNShapeItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/BPMNShapeItemProvider.java
index 9fe1067..a3a704c 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/BPMNShapeItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/BPMNShapeItemProvider.java
@@ -192,6 +192,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/DocumentRootItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/DocumentRootItemProvider.java
index d034a61..3ee4273 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/DocumentRootItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/di/provider/DocumentRootItemProvider.java
@@ -118,6 +118,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/AdHocSubProcessItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/AdHocSubProcessItemProvider.java
index 28a572a..78fcd52 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/AdHocSubProcessItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/AdHocSubProcessItemProvider.java
@@ -134,6 +134,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/AssignmentItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/AssignmentItemProvider.java
index 38c6c92..e82a0f3 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/AssignmentItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/AssignmentItemProvider.java
@@ -100,6 +100,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/AssociationItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/AssociationItemProvider.java
index 47d06ed..7bc2bcb 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/AssociationItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/AssociationItemProvider.java
@@ -113,6 +113,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/AuditingItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/AuditingItemProvider.java
index 0ae2ab4..fc5db23 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/AuditingItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/AuditingItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/BoundaryEventItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/BoundaryEventItemProvider.java
index 208b252..0316f26 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/BoundaryEventItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/BoundaryEventItemProvider.java
@@ -102,6 +102,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/BusinessRuleTaskItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/BusinessRuleTaskItemProvider.java
index 94c7110..f51554a 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/BusinessRuleTaskItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/BusinessRuleTaskItemProvider.java
@@ -91,6 +91,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CallActivityItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CallActivityItemProvider.java
index 566cc8c..06949a6 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CallActivityItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CallActivityItemProvider.java
@@ -89,6 +89,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CallChoreographyItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CallChoreographyItemProvider.java
index 104acd8..dc0799d 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CallChoreographyItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CallChoreographyItemProvider.java
@@ -122,6 +122,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CallConversationItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CallConversationItemProvider.java
index 18e351a..24d8aa6 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CallConversationItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CallConversationItemProvider.java
@@ -122,6 +122,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CancelEventDefinitionItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CancelEventDefinitionItemProvider.java
index ae54198..0cdedd4 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CancelEventDefinitionItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CancelEventDefinitionItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CategoryItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CategoryItemProvider.java
index d028b35..a1a276e 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CategoryItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CategoryItemProvider.java
@@ -123,6 +123,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CategoryValueItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CategoryValueItemProvider.java
index 7d76174..82be843 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CategoryValueItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CategoryValueItemProvider.java
@@ -102,6 +102,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ChoreographyItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ChoreographyItemProvider.java
index a7ec9cc..7ea0050 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ChoreographyItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ChoreographyItemProvider.java
@@ -111,6 +111,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ChoreographyTaskItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ChoreographyTaskItemProvider.java
index 948bdf5..4df4c4f 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ChoreographyTaskItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ChoreographyTaskItemProvider.java
@@ -89,6 +89,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CollaborationItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CollaborationItemProvider.java
index 442dbe4..f3166da 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CollaborationItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CollaborationItemProvider.java
@@ -153,6 +153,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CompensateEventDefinitionItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CompensateEventDefinitionItemProvider.java
index 0c454e5..0daf915 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CompensateEventDefinitionItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CompensateEventDefinitionItemProvider.java
@@ -102,6 +102,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ComplexBehaviorDefinitionItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ComplexBehaviorDefinitionItemProvider.java
index 424b29f..fde6da1 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ComplexBehaviorDefinitionItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ComplexBehaviorDefinitionItemProvider.java
@@ -111,6 +111,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ComplexGatewayItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ComplexGatewayItemProvider.java
index e9aecd7..4f18bfc 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ComplexGatewayItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ComplexGatewayItemProvider.java
@@ -122,6 +122,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ConditionalEventDefinitionItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ConditionalEventDefinitionItemProvider.java
index 8ea3dba..5506b68 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ConditionalEventDefinitionItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ConditionalEventDefinitionItemProvider.java
@@ -110,6 +110,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ConversationAssociationItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ConversationAssociationItemProvider.java
index cf7722f..d7151fe 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ConversationAssociationItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ConversationAssociationItemProvider.java
@@ -100,6 +100,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ConversationItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ConversationItemProvider.java
index f48b788..8473336 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ConversationItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ConversationItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ConversationLinkItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ConversationLinkItemProvider.java
index 59b24fd..02e30fc 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ConversationLinkItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ConversationLinkItemProvider.java
@@ -113,6 +113,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CorrelationPropertyBindingItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CorrelationPropertyBindingItemProvider.java
index 3194d40..9773433 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CorrelationPropertyBindingItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CorrelationPropertyBindingItemProvider.java
@@ -122,6 +122,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CorrelationPropertyItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CorrelationPropertyItemProvider.java
index 1232614..b956009 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CorrelationPropertyItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CorrelationPropertyItemProvider.java
@@ -134,6 +134,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CorrelationPropertyRetrievalExpressionItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CorrelationPropertyRetrievalExpressionItemProvider.java
index dd88bfc..2d998ab 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CorrelationPropertyRetrievalExpressionItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CorrelationPropertyRetrievalExpressionItemProvider.java
@@ -100,6 +100,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CorrelationSubscriptionItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CorrelationSubscriptionItemProvider.java
index ebf1b26..9ecbf14 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CorrelationSubscriptionItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/CorrelationSubscriptionItemProvider.java
@@ -122,6 +122,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataAssociationItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataAssociationItemProvider.java
index 84e02d6..d2e337a 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataAssociationItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataAssociationItemProvider.java
@@ -134,6 +134,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataInputAssociationItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataInputAssociationItemProvider.java
index 2c0d1c7..f3930e6 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataInputAssociationItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataInputAssociationItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataInputItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataInputItemProvider.java
index 828abd9..cc36e21 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataInputItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataInputItemProvider.java
@@ -135,6 +135,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataObjectItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataObjectItemProvider.java
index a70af97..69b17ee 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataObjectItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataObjectItemProvider.java
@@ -134,6 +134,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataObjectReferenceItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataObjectReferenceItemProvider.java
index 0c92e45..6a64ad2 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataObjectReferenceItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataObjectReferenceItemProvider.java
@@ -133,6 +133,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataOutputAssociationItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataOutputAssociationItemProvider.java
index 8fc782e..d7361a2 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataOutputAssociationItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataOutputAssociationItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataOutputItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataOutputItemProvider.java
index 0aa176b..2a17cf9 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataOutputItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataOutputItemProvider.java
@@ -135,6 +135,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataStateItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataStateItemProvider.java
index a60b0e6..4c4f38e 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataStateItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataStateItemProvider.java
@@ -91,6 +91,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataStoreItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataStoreItemProvider.java
index 17a347f..39056f5 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataStoreItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataStoreItemProvider.java
@@ -113,6 +113,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataStoreReferenceItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataStoreReferenceItemProvider.java
index ab10379..953854a 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataStoreReferenceItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DataStoreReferenceItemProvider.java
@@ -133,6 +133,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DefinitionsItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DefinitionsItemProvider.java
index e181b4f..eee6118 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DefinitionsItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DefinitionsItemProvider.java
@@ -183,6 +183,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DocumentRootItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DocumentRootItemProvider.java
index 734701b..1466c44 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DocumentRootItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DocumentRootItemProvider.java
@@ -249,6 +249,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DocumentationItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DocumentationItemProvider.java
index 6bc7411..c62ca4a 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DocumentationItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/DocumentationItemProvider.java
@@ -102,6 +102,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/EndEventItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/EndEventItemProvider.java
index 4f1f90e..d73228c 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/EndEventItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/EndEventItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/EndPointItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/EndPointItemProvider.java
index af0eceb..826e5b7 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/EndPointItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/EndPointItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ErrorEventDefinitionItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ErrorEventDefinitionItemProvider.java
index b778a72..7da8bed 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ErrorEventDefinitionItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ErrorEventDefinitionItemProvider.java
@@ -89,6 +89,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ErrorItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ErrorItemProvider.java
index 11c6efe..960e5fd 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ErrorItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ErrorItemProvider.java
@@ -112,6 +112,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/EscalationEventDefinitionItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/EscalationEventDefinitionItemProvider.java
index 046d1bd..34d324b 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/EscalationEventDefinitionItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/EscalationEventDefinitionItemProvider.java
@@ -89,6 +89,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/EscalationItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/EscalationItemProvider.java
index 7d443fe..ba475ee 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/EscalationItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/EscalationItemProvider.java
@@ -115,6 +115,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/EventBasedGatewayItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/EventBasedGatewayItemProvider.java
index 5917275..30ee95d 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/EventBasedGatewayItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/EventBasedGatewayItemProvider.java
@@ -102,6 +102,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExclusiveGatewayItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExclusiveGatewayItemProvider.java
index 0a0c1b0..cc2554d 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExclusiveGatewayItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExclusiveGatewayItemProvider.java
@@ -89,6 +89,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExpressionItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExpressionItemProvider.java
index f818436..5e07a51 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExpressionItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExpressionItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExtensionAttributeDefinitionItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExtensionAttributeDefinitionItemProvider.java
index 83544d4..3321119 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExtensionAttributeDefinitionItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExtensionAttributeDefinitionItemProvider.java
@@ -115,6 +115,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExtensionAttributeValueItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExtensionAttributeValueItemProvider.java
index a3bc337..752deeb 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExtensionAttributeValueItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExtensionAttributeValueItemProvider.java
@@ -137,6 +137,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExtensionDefinitionItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExtensionDefinitionItemProvider.java
index 5c805e3..dc13c6f 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExtensionDefinitionItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExtensionDefinitionItemProvider.java
@@ -125,6 +125,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExtensionItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExtensionItemProvider.java
index 23b5369..8fbf5b7 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExtensionItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ExtensionItemProvider.java
@@ -125,6 +125,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/FormalExpressionItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/FormalExpressionItemProvider.java
index f5c60ca..985ac26 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/FormalExpressionItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/FormalExpressionItemProvider.java
@@ -113,6 +113,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalBusinessRuleTaskItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalBusinessRuleTaskItemProvider.java
index 9207e5a..769c936 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalBusinessRuleTaskItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalBusinessRuleTaskItemProvider.java
@@ -91,6 +91,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalChoreographyTaskItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalChoreographyTaskItemProvider.java
index b5e1cc2..e2e87ab 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalChoreographyTaskItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalChoreographyTaskItemProvider.java
@@ -89,6 +89,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalConversationItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalConversationItemProvider.java
index a9c5a42..ad253b4 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalConversationItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalConversationItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalManualTaskItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalManualTaskItemProvider.java
index 2f897c3..88e1e1a 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalManualTaskItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalManualTaskItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalScriptTaskItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalScriptTaskItemProvider.java
index c4e570a..89a4660 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalScriptTaskItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalScriptTaskItemProvider.java
@@ -102,6 +102,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalTaskItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalTaskItemProvider.java
index c203bab..31b136f 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalTaskItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalTaskItemProvider.java
@@ -110,6 +110,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalUserTaskItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalUserTaskItemProvider.java
index 70c0562..059e08b 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalUserTaskItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GlobalUserTaskItemProvider.java
@@ -123,6 +123,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GroupItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GroupItemProvider.java
index ea3ade7..8688c1f 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GroupItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/GroupItemProvider.java
@@ -89,6 +89,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/HumanPerformerItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/HumanPerformerItemProvider.java
index 35f2a68..cabfab1 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/HumanPerformerItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/HumanPerformerItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ImplicitThrowEventItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ImplicitThrowEventItemProvider.java
index dc11473..3ddb6cc 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ImplicitThrowEventItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ImplicitThrowEventItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ImportItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ImportItemProvider.java
index 9feb1d8..581677b 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ImportItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ImportItemProvider.java
@@ -115,6 +115,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/InclusiveGatewayItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/InclusiveGatewayItemProvider.java
index f4a0314..d2ebe1b 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/InclusiveGatewayItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/InclusiveGatewayItemProvider.java
@@ -89,6 +89,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/InputOutputBindingItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/InputOutputBindingItemProvider.java
index fa55869..343719e 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/InputOutputBindingItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/InputOutputBindingItemProvider.java
@@ -112,6 +112,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/InputOutputSpecificationItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/InputOutputSpecificationItemProvider.java
index 1d31352..6d0f15a 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/InputOutputSpecificationItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/InputOutputSpecificationItemProvider.java
@@ -113,6 +113,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/InputSetItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/InputSetItemProvider.java
index 3f2050f..a82c70e 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/InputSetItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/InputSetItemProvider.java
@@ -135,6 +135,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/InterfaceItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/InterfaceItemProvider.java
index 45d36cb..24e8712 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/InterfaceItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/InterfaceItemProvider.java
@@ -134,6 +134,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/IntermediateCatchEventItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/IntermediateCatchEventItemProvider.java
index 905c78d..631abe1 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/IntermediateCatchEventItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/IntermediateCatchEventItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/IntermediateThrowEventItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/IntermediateThrowEventItemProvider.java
index ebe43ec..c6b1cc2 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/IntermediateThrowEventItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/IntermediateThrowEventItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ItemAwareElementItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ItemAwareElementItemProvider.java
index 167a264..21f2be1 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ItemAwareElementItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ItemAwareElementItemProvider.java
@@ -122,6 +122,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ItemDefinitionItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ItemDefinitionItemProvider.java
index ff48b3c..c7bf7d4 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ItemDefinitionItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ItemDefinitionItemProvider.java
@@ -124,6 +124,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/LaneItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/LaneItemProvider.java
index ad2e9ea..84cd5a2 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/LaneItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/LaneItemProvider.java
@@ -146,6 +146,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/LaneSetItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/LaneSetItemProvider.java
index 2eeafbf..a3f63d3 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/LaneSetItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/LaneSetItemProvider.java
@@ -123,6 +123,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/LinkEventDefinitionItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/LinkEventDefinitionItemProvider.java
index 61ce033..35b587e 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/LinkEventDefinitionItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/LinkEventDefinitionItemProvider.java
@@ -113,6 +113,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ManualTaskItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ManualTaskItemProvider.java
index 76ee57b..58ed669 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ManualTaskItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ManualTaskItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MessageEventDefinitionItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MessageEventDefinitionItemProvider.java
index d2b1df7..32f5006 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MessageEventDefinitionItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MessageEventDefinitionItemProvider.java
@@ -100,6 +100,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MessageFlowAssociationItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MessageFlowAssociationItemProvider.java
index 8a91423..c281e1c 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MessageFlowAssociationItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MessageFlowAssociationItemProvider.java
@@ -100,6 +100,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MessageFlowItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MessageFlowItemProvider.java
index 0fe9d71..6a5c024 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MessageFlowItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MessageFlowItemProvider.java
@@ -124,6 +124,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MessageItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MessageItemProvider.java
index 3b9c2f7..99bac2c 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MessageItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MessageItemProvider.java
@@ -102,6 +102,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MonitoringItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MonitoringItemProvider.java
index 0be19d3..bb8921f 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MonitoringItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MonitoringItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MultiInstanceLoopCharacteristicsItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MultiInstanceLoopCharacteristicsItemProvider.java
index c1421a7..fba07fe 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MultiInstanceLoopCharacteristicsItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/MultiInstanceLoopCharacteristicsItemProvider.java
@@ -182,6 +182,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/OperationItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/OperationItemProvider.java
index 8632136..d51b218 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/OperationItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/OperationItemProvider.java
@@ -135,6 +135,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/OutputSetItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/OutputSetItemProvider.java
index 05b58ec..94aca1c 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/OutputSetItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/OutputSetItemProvider.java
@@ -135,6 +135,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ParallelGatewayItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ParallelGatewayItemProvider.java
index 141295b..31a00ea 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ParallelGatewayItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ParallelGatewayItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ParticipantAssociationItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ParticipantAssociationItemProvider.java
index c22d53f..788f238 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ParticipantAssociationItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ParticipantAssociationItemProvider.java
@@ -100,6 +100,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ParticipantItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ParticipantItemProvider.java
index e771d83..230a2ce 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ParticipantItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ParticipantItemProvider.java
@@ -178,6 +178,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ParticipantMultiplicityItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ParticipantMultiplicityItemProvider.java
index 6aaabe7..c0b422c 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ParticipantMultiplicityItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ParticipantMultiplicityItemProvider.java
@@ -104,6 +104,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/PartnerEntityItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/PartnerEntityItemProvider.java
index c1e0149..42e7b65 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/PartnerEntityItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/PartnerEntityItemProvider.java
@@ -102,6 +102,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/PartnerRoleItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/PartnerRoleItemProvider.java
index 7e831c9..823b23d 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/PartnerRoleItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/PartnerRoleItemProvider.java
@@ -1,23 +1,7 @@
-/**

- * <copyright>

- * 

- * Copyright (c) 2010 SAP AG.

- * 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:

- *    Reiner Hille-Doering (SAP AG) - initial API and implementation and/or initial documentation

- * 

- * </copyright>

- *

- */

 package org.eclipse.bpmn2.provider;

 

 import java.util.Collection;

 import java.util.List;

-

 import org.eclipse.bpmn2.Bpmn2Package;

 import org.eclipse.bpmn2.PartnerRole;

 import org.eclipse.emf.common.notify.AdapterFactory;

@@ -102,6 +86,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

@@ -144,4 +144,4 @@
         super.collectNewChildDescriptors(newChildDescriptors, object);

     }

 

-}

+}
\ No newline at end of file
diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/PerformerItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/PerformerItemProvider.java
index 6d1b615..39e8640 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/PerformerItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/PerformerItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/PotentialOwnerItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/PotentialOwnerItemProvider.java
index 997d72b..b5a6674 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/PotentialOwnerItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/PotentialOwnerItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ProcessItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ProcessItemProvider.java
index 39f8cf7..4ed5375 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ProcessItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ProcessItemProvider.java
@@ -22,6 +22,7 @@
 import org.eclipse.bpmn2.Bpmn2Package;

 import org.eclipse.emf.common.notify.AdapterFactory;

 import org.eclipse.emf.common.notify.Notification;

+import org.eclipse.emf.ecore.EObject;

 import org.eclipse.emf.ecore.EStructuralFeature;

 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;

 import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;

@@ -35,15 +36,14 @@
 

 /**

  * This is the item provider adapter for a {@link org.eclipse.bpmn2.Process} object.

- * <!-- begin-user-doc -->

- * <!-- end-user-doc -->

+ * <!-- begin-user-doc --> <!-- end-user-doc -->

  * @generated

  */

 public class ProcessItemProvider extends CallableElementItemProvider implements IEditingDomainItemProvider, IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {

     /**

-     * This constructs an instance from a factory and a notifier.

-     * <!-- begin-user-doc -->

-     * <!-- end-user-doc -->

+     * This constructs an instance from a factory and a notifier. <!--

+     * begin-user-doc --> <!-- end-user-doc -->

+     * 

      * @generated

      */

     public ProcessItemProvider(AdapterFactory adapterFactory) {

@@ -51,9 +51,9 @@
     }

 

     /**

-     * This returns the property descriptors for the adapted class.

-     * <!-- begin-user-doc -->

-     * <!-- end-user-doc -->

+     * This returns the property descriptors for the adapted class. <!--

+     * begin-user-doc --> <!-- end-user-doc -->

+     * 

      * @generated

      */

     @Override

@@ -71,9 +71,9 @@
     }

 

     /**

-     * This adds a property descriptor for the Supports feature.

-     * <!-- begin-user-doc -->

-     * <!-- end-user-doc -->

+     * This adds a property descriptor for the Supports feature. <!--

+     * begin-user-doc --> <!-- end-user-doc -->

+     * 

      * @generated

      */

     protected void addSupportsPropertyDescriptor(Object object) {

@@ -82,8 +82,7 @@
 

     /**

      * This adds a property descriptor for the Definitional Collaboration Ref feature.

-     * <!-- begin-user-doc -->

-     * <!-- end-user-doc -->

+     * <!-- begin-user-doc --> <!-- end-user-doc -->

      * @generated

      */

     protected void addDefinitionalCollaborationRefPropertyDescriptor(Object object) {

@@ -91,9 +90,9 @@
     }

 

     /**

-     * This adds a property descriptor for the Is Closed feature.

-     * <!-- begin-user-doc -->

-     * <!-- end-user-doc -->

+     * This adds a property descriptor for the Is Closed feature. <!--

+     * begin-user-doc --> <!-- end-user-doc -->

+     * 

      * @generated

      */

     protected void addIsClosedPropertyDescriptor(Object object) {

@@ -101,9 +100,9 @@
     }

 

     /**

-     * This adds a property descriptor for the Is Executable feature.

-     * <!-- begin-user-doc -->

-     * <!-- end-user-doc -->

+     * This adds a property descriptor for the Is Executable feature. <!--

+     * begin-user-doc --> <!-- end-user-doc -->

+     * 

      * @generated

      */

     protected void addIsExecutablePropertyDescriptor(Object object) {

@@ -111,9 +110,9 @@
     }

 

     /**

-     * This adds a property descriptor for the Process Type feature.

-     * <!-- begin-user-doc -->

-     * <!-- end-user-doc -->

+     * This adds a property descriptor for the Process Type feature. <!--

+     * begin-user-doc --> <!-- end-user-doc -->

+     * 

      * @generated

      */

     protected void addProcessTypePropertyDescriptor(Object object) {

@@ -124,8 +123,7 @@
      * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an

      * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or

      * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.

-     * <!-- begin-user-doc -->

-     * <!-- end-user-doc -->

+     * <!-- begin-user-doc --> <!-- end-user-doc -->

      * @generated

      */

     @Override

@@ -144,8 +142,7 @@
     }

 

     /**

-     * <!-- begin-user-doc -->

-     * <!-- end-user-doc -->

+     * <!-- begin-user-doc --> <!-- end-user-doc -->

      * @generated

      */

     @Override

@@ -158,8 +155,7 @@
 

     /**

      * This returns Process.png.

-     * <!-- begin-user-doc -->

-     * <!-- end-user-doc -->

+     * <!-- begin-user-doc --> <!-- end-user-doc -->

      * @generated

      */

     @Override

@@ -173,8 +169,8 @@
 

     /**

      * This returns the label text for the adapted class.

-     * <!-- begin-user-doc -->

-     * <!-- end-user-doc -->

+     * <!-- begin-user-doc

+     * --> <!-- end-user-doc -->

      * @generated

      */

     @Override

@@ -186,8 +182,8 @@
     /**

      * This handles model notifications by calling {@link #updateChildren} to update any cached

      * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.

-     * <!-- begin-user-doc -->

-     * <!-- end-user-doc -->

+     * <!-- begin-user-doc --> <!--

+     * end-user-doc -->

      * @generated

      */

     @Override

@@ -214,10 +210,10 @@
     }

 

     /**

-     * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children

-     * that can be created under this object.

-     * <!-- begin-user-doc -->

-     * <!-- end-user-doc -->

+     * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s

+     * describing the children that can be created under this object. <!--

+     * begin-user-doc --> <!-- end-user-doc -->

+     * 

      * @generated

      */

     @Override

@@ -303,4 +299,15 @@
         newChildDescriptors.add(createChildParameter(Bpmn2Package.Literals.PROCESS__CORRELATION_SUBSCRIPTIONS, Bpmn2Factory.eINSTANCE.createCorrelationSubscription()));

     }

 

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        if (child instanceof EObject) {

+            IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+            if (imageProvider != null) {

+                return imageProvider.getImage(child);

+            }

+

+        }

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

 }

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/PropertyItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/PropertyItemProvider.java
index 7d8c0a4..38cab94 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/PropertyItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/PropertyItemProvider.java
@@ -91,6 +91,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ReceiveTaskItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ReceiveTaskItemProvider.java
index a18999b..972d678 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ReceiveTaskItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ReceiveTaskItemProvider.java
@@ -124,6 +124,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/RelationshipItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/RelationshipItemProvider.java
index 09fcf11..85527e3 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/RelationshipItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/RelationshipItemProvider.java
@@ -124,6 +124,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/RenderingItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/RenderingItemProvider.java
index c5f2800..53f1aff 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/RenderingItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/RenderingItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ResourceAssignmentExpressionItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ResourceAssignmentExpressionItemProvider.java
index 7d5c795..d0d09a0 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ResourceAssignmentExpressionItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ResourceAssignmentExpressionItemProvider.java
@@ -112,6 +112,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ResourceItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ResourceItemProvider.java
index e471d84..1f2d3cb 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ResourceItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ResourceItemProvider.java
@@ -123,6 +123,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ResourceParameterBindingItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ResourceParameterBindingItemProvider.java
index 7c8e913..1434bcc 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ResourceParameterBindingItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ResourceParameterBindingItemProvider.java
@@ -124,6 +124,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ResourceParameterItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ResourceParameterItemProvider.java
index 957be51..d9774e9 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ResourceParameterItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ResourceParameterItemProvider.java
@@ -113,6 +113,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ResourceRoleItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ResourceRoleItemProvider.java
index 0518e97..c912a4b 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ResourceRoleItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ResourceRoleItemProvider.java
@@ -135,6 +135,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ScriptTaskItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ScriptTaskItemProvider.java
index 0cde7ec..d7aa49b 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ScriptTaskItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ScriptTaskItemProvider.java
@@ -102,6 +102,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SendTaskItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SendTaskItemProvider.java
index f52de33..d71da5d 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SendTaskItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SendTaskItemProvider.java
@@ -113,6 +113,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SequenceFlowItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SequenceFlowItemProvider.java
index 5c3d0da..2c230cc 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SequenceFlowItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SequenceFlowItemProvider.java
@@ -145,6 +145,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ServiceTaskItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ServiceTaskItemProvider.java
index 6a57e9d..9bd6325 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ServiceTaskItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/ServiceTaskItemProvider.java
@@ -102,6 +102,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SignalEventDefinitionItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SignalEventDefinitionItemProvider.java
index a6d7932..379e40f 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SignalEventDefinitionItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SignalEventDefinitionItemProvider.java
@@ -89,6 +89,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SignalItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SignalItemProvider.java
index ca1522f..d8656d8 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SignalItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SignalItemProvider.java
@@ -102,6 +102,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/StandardLoopCharacteristicsItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/StandardLoopCharacteristicsItemProvider.java
index e59ac5c..cfb973a 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/StandardLoopCharacteristicsItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/StandardLoopCharacteristicsItemProvider.java
@@ -124,6 +124,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/StartEventItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/StartEventItemProvider.java
index fcfab8d..8881d0e 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/StartEventItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/StartEventItemProvider.java
@@ -91,6 +91,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SubChoreographyItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SubChoreographyItemProvider.java
index 310330e..ee55d08 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SubChoreographyItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SubChoreographyItemProvider.java
@@ -111,6 +111,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SubConversationItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SubConversationItemProvider.java
index 1deb20a..620cdb3 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SubConversationItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SubConversationItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SubProcessItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SubProcessItemProvider.java
index 11c8b23..7a4ffd3 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SubProcessItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/SubProcessItemProvider.java
@@ -124,6 +124,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/TaskItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/TaskItemProvider.java
index cf1e381..9d20169 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/TaskItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/TaskItemProvider.java
@@ -100,6 +100,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/TerminateEventDefinitionItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/TerminateEventDefinitionItemProvider.java
index 18bc05c..6410b92 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/TerminateEventDefinitionItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/TerminateEventDefinitionItemProvider.java
@@ -76,6 +76,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/TextAnnotationItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/TextAnnotationItemProvider.java
index 94e2651..87ecdcb 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/TextAnnotationItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/TextAnnotationItemProvider.java
@@ -102,6 +102,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/TimerEventDefinitionItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/TimerEventDefinitionItemProvider.java
index 05bb88b..bf513a9 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/TimerEventDefinitionItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/TimerEventDefinitionItemProvider.java
@@ -112,6 +112,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/TransactionItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/TransactionItemProvider.java
index 1572bbf..821b8e1 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/TransactionItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/TransactionItemProvider.java
@@ -102,6 +102,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/UserTaskItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/UserTaskItemProvider.java
index 535a32f..6ddcd21 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/UserTaskItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/bpmn2/provider/UserTaskItemProvider.java
@@ -123,6 +123,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/dc/provider/BoundsItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/dc/provider/BoundsItemProvider.java
index 7e827a2..9840c7b 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/dc/provider/BoundsItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/dc/provider/BoundsItemProvider.java
@@ -127,6 +127,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/dc/provider/DocumentRootItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/dc/provider/DocumentRootItemProvider.java
index 83e68a9..2c88858 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/dc/provider/DocumentRootItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/dc/provider/DocumentRootItemProvider.java
@@ -115,6 +115,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/dc/provider/FontItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/dc/provider/FontItemProvider.java
index 16de15c..d608349 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/dc/provider/FontItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/dc/provider/FontItemProvider.java
@@ -149,6 +149,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/dc/provider/PointItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/dc/provider/PointItemProvider.java
index 6a65565..1575f08 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/dc/provider/PointItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/dc/provider/PointItemProvider.java
@@ -105,6 +105,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/DiagramItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/DiagramItemProvider.java
index 8a4d9d6..5cb09ff 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/DiagramItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/DiagramItemProvider.java
@@ -149,6 +149,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/DocumentRootItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/DocumentRootItemProvider.java
index ed78b39..655e3b6 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/DocumentRootItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/DocumentRootItemProvider.java
@@ -122,6 +122,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/EdgeItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/EdgeItemProvider.java
index ce61795..f2c9679 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/EdgeItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/EdgeItemProvider.java
@@ -133,6 +133,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/LabelItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/LabelItemProvider.java
index d71938c..9e9d73f 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/LabelItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/LabelItemProvider.java
@@ -110,6 +110,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/LabeledEdgeItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/LabeledEdgeItemProvider.java
index 000e5a4..b9836de 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/LabeledEdgeItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/LabeledEdgeItemProvider.java
@@ -89,6 +89,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/PlaneItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/PlaneItemProvider.java
index 5e10c50..19bdd9c 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/PlaneItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/PlaneItemProvider.java
@@ -110,6 +110,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/ShapeItemProvider.java b/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/ShapeItemProvider.java
index e3deee9..0b7b7bf 100644
--- a/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/ShapeItemProvider.java
+++ b/org.eclipse.bpmn2.edit/src/org/eclipse/di/provider/ShapeItemProvider.java
@@ -110,6 +110,22 @@
     }

 

     /**

+     * This returns the image of the child object, if available.

+     * <!-- begin-user-doc -->

+     * <!-- end-user-doc -->

+     * @generated

+     */

+    @Override

+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {

+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);

+        if (imageProvider != null) {

+            return imageProvider.getImage(child);

+        }

+

+        return super.getCreateChildImage(owner, feature, child, selection);

+    }

+

+    /**

      * This returns the label text for the adapted class.

      * <!-- begin-user-doc -->

      * <!-- end-user-doc -->

diff --git a/org.eclipse.bpmn2/model/BPMN20.genmodel b/org.eclipse.bpmn2/model/BPMN20.genmodel
index c284710..51f661d 100644
--- a/org.eclipse.bpmn2/model/BPMN20.genmodel
+++ b/org.eclipse.bpmn2/model/BPMN20.genmodel
@@ -2,7 +2,7 @@
 <genmodel:GenModel xmi:version="2.0"

     xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"

     xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="&lt;copyright>&#xD;&#xA;&#xD;&#xA;Copyright (c) 2010 SAP AG.&#xD;&#xA;All rights reserved. This program and the accompanying materials&#xD;&#xA;are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA;which accompanies this distribution, and is available at&#xD;&#xA;http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA;Contributors:&#xD;&#xA;   Reiner Hille-Doering (SAP AG) - initial API and implementation and/or initial documentation&#xD;&#xA;&#xD;&#xA;&lt;/copyright>"

-    modelDirectory="/org.eclipse.bpmn2/src" modelPluginID="org.eclipse.bpmn2" templateDirectory="org.eclipse.bpmn/templates"

+    modelDirectory="/org.eclipse.bpmn2/src" modelPluginID="org.eclipse.bpmn2" templateDirectory="org.eclipse.bpmn2/templates"

     dynamicTemplates="true" modelName="bpmn2" modelPluginClass="" codeFormatting="true"

     importerID="org.eclipse.emf.importer.ecore" complianceLevel="6.0" copyrightFields="false"

     language="en">

diff --git a/org.eclipse.bpmn2/src/org/eclipse/bpmn2/util/Bpmn2ResourceImpl.java b/org.eclipse.bpmn2/src/org/eclipse/bpmn2/util/Bpmn2ResourceImpl.java
index 7353d99..766dbd4 100644
--- a/org.eclipse.bpmn2/src/org/eclipse/bpmn2/util/Bpmn2ResourceImpl.java
+++ b/org.eclipse.bpmn2/src/org/eclipse/bpmn2/util/Bpmn2ResourceImpl.java
@@ -36,4 +36,25 @@
         super(uri);

     }

 

+    /**

+     * @generated NOT

+     */

+    @Override

+    protected boolean useUUIDs() {

+        // We better have a UUID generated instead of having XMLResourceImpl writing URIs, that

+        // are not schema compliant

+        return true;

+    }

+    

+    /**

+     * @generated NOT

+     */

+    @Override

+    protected boolean assignIDsWhileLoading() {

+        // For some reason this must be false. 

+        // Else both, DocumentRoot and Definitions would create an ID (which is useless)

+        // which is then both written into the root element.

+        return false;

+    }

+

 } //Bpmn2ResourceImpl

diff --git a/org.eclipse.bpmn2/templates/edit/ItemProvider.javajet b/org.eclipse.bpmn2/templates/edit/ItemProvider.javajet
index e9df696..4292baf 100644
--- a/org.eclipse.bpmn2/templates/edit/ItemProvider.javajet
+++ b/org.eclipse.bpmn2/templates/edit/ItemProvider.javajet
@@ -5,6 +5,7 @@
  *
  * Copyright (c) 2002-2007 IBM Corporation and others.
  * Copyright (c) 2009      Intalio, Inc.
+ * Copyright (c) 2010      SAP AG. 
  * 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
@@ -13,6 +14,7 @@
  * Contributors:
  *   IBM - Initial API and implementation
  *   Intalio, Antoine Toulme- used .png file extension instead of relying on default gif.
+ *   SAP, Reiner Hille-Doering - add getCreateChildImage() method to use the target object's image.
  *
  * </copyright>
  */
@@ -215,6 +217,24 @@
 		}
 	}
 
+	/**
+	 * This returns the image of the child object, if available.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+<%if (genModel.useClassOverrideAnnotation()) {%>
+	@Override
+<%}%>
+    public Object getCreateChildImage(Object owner, Object feature, Object child, Collection<?> selection) {
+        IItemLabelProvider imageProvider = (IItemLabelProvider)adapterFactory.adapt(child, IItemLabelProvider.class);
+        if (imageProvider != null) {
+            return imageProvider.getImage(child);
+        }
+
+        return super.getCreateChildImage(owner, feature, child, selection);
+    }
+
 <%}%>
 	/**
 	 * This returns the label text for the adapted class.