diff --git a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/ElementDescriptor.java b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/ElementDescriptor.java
index 7d8f94f..9414d5d 100644
--- a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/ElementDescriptor.java
+++ b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/ElementDescriptor.java
@@ -271,8 +271,13 @@
 

     private Map<String, List<ElementDescriptor>> subDescriptors;

 

-    public void register(ElementDescriptor descriptor)

+    public void register(ElementDescriptor descriptor, Color color, float intensity)

     {

+      float red = color.getRed() * intensity;

+      float green = color.getGreen() * intensity;

+      float blue = color.getBlue() * intensity;

+      Color effective = new Color(Math.round(red), Math.round(green), Math.round(blue));

+      descriptor.getColor().setValue(effective);

       put(descriptor.getName(), descriptor);

     }

 

diff --git a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/_INIT_.java b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/_INIT_.java
index 6b7b1d5..04c1c8d 100644
--- a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/_INIT_.java
+++ b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/_INIT_.java
@@ -14,9 +14,9 @@
 import org.eclipse.emf.cdo.threedee.common.descriptors.cdo._INIT_CDO_;

 import org.eclipse.emf.cdo.threedee.common.descriptors.cdoclient._INIT_CDO_CLIENT_;

 import org.eclipse.emf.cdo.threedee.common.descriptors.cdoserver._INIT_CDO_SERVER_;

-import org.eclipse.emf.cdo.threedee.common.descriptors.emf._INIT_EMF_;

 import org.eclipse.emf.cdo.threedee.common.descriptors.net4j._INIT_NET4J_;

-import org.eclipse.emf.cdo.threedee.common.descriptors.net4jdb._INIT_NET4J_DB_;

+

+import java.awt.Color;

 

 /**

  * @author Eike Stepper

@@ -25,15 +25,16 @@
 {

   public static void init(Registry registry)

   {

-    _INIT_EMF_.init(registry);

+    // _INIT_EMF_.init(registry);

     _INIT_CDO_.init(registry);

     _INIT_CDO_CLIENT_.init(registry);

     _INIT_CDO_SERVER_.init(registry);

     _INIT_NET4J_.init(registry);

-    _INIT_NET4J_DB_.init(registry);

+    // _INIT_NET4J_DB_.init(registry);

 

-    registry.register(new ManagedContainerDescriptor());

-    registry.register(new MapEntryDescriptor());

-    registry.register(new CollectionDescriptor());

+    Color color = Color.white;

+    registry.register(new ManagedContainerDescriptor(), color, 0.8f);

+    registry.register(new MapEntryDescriptor(), color, 0.7f);

+    registry.register(new CollectionDescriptor(), color, 0.7f);

   }

 }

diff --git a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/cdo/_INIT_CDO_.java b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/cdo/_INIT_CDO_.java
index 2de3613..f75ff74 100644
--- a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/cdo/_INIT_CDO_.java
+++ b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/cdo/_INIT_CDO_.java
@@ -12,6 +12,8 @@
 

 import org.eclipse.emf.cdo.threedee.common.ElementDescriptor.Registry;

 

+import java.awt.Color;

+

 /**

  * @author Eike Stepper

  */

@@ -19,14 +21,15 @@
 {

   public static void init(Registry registry)

   {

-    registry.register(new CDODescriptor());

-    registry.register(new BranchDescriptor());

-    registry.register(new BranchManagerDescriptor());

-    registry.register(new PackageInfoDescriptor());

-    registry.register(new PackageRegistryDescriptor());

-    registry.register(new PackageUnitDescriptor());

-    registry.register(new RevisionCacheDescriptor());

-    registry.register(new RevisionDescriptor());

-    registry.register(new RevisionManagerDescriptor());

+    Color color = Color.magenta;

+    registry.register(new CDODescriptor(), color, 0.7f);

+    registry.register(new BranchDescriptor(), color, 0.7f);

+    registry.register(new BranchManagerDescriptor(), color, 0.7f);

+    registry.register(new PackageInfoDescriptor(), color, 0.7f);

+    registry.register(new PackageRegistryDescriptor(), color, 0.7f);

+    registry.register(new PackageUnitDescriptor(), color, 0.7f);

+    registry.register(new RevisionCacheDescriptor(), color, 0.7f);

+    registry.register(new RevisionDescriptor(), color, 0.7f);

+    registry.register(new RevisionManagerDescriptor(), color, 0.7f);

   }

 }

diff --git a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/cdoclient/_INIT_CDO_CLIENT_.java b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/cdoclient/_INIT_CDO_CLIENT_.java
index d2b4370..bc0485b 100644
--- a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/cdoclient/_INIT_CDO_CLIENT_.java
+++ b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/cdoclient/_INIT_CDO_CLIENT_.java
@@ -12,6 +12,8 @@
 

 import org.eclipse.emf.cdo.threedee.common.ElementDescriptor.Registry;

 

+import java.awt.Color;

+

 /**

  * @author Eike Stepper

  */

@@ -19,11 +21,12 @@
 {

   public static void init(Registry registry)

   {

-    registry.register(new CDOClientDescriptor());

-    registry.register(new CDOObjectDescriptor());

-    registry.register(new CDOSavepointDescriptor());

-    registry.register(new CDOSessionDescriptor());

-    registry.register(new CDOTransactionDescriptor());

-    registry.register(new CDOViewDescriptor());

+    Color color = Color.red;

+    registry.register(new CDOClientDescriptor(), color, 0.7f);

+    registry.register(new CDOObjectDescriptor(), color, 0.7f);

+    registry.register(new CDOSavepointDescriptor(), color, 0.7f);

+    registry.register(new CDOSessionDescriptor(), color, 0.7f);

+    registry.register(new CDOTransactionDescriptor(), color, 0.7f);

+    registry.register(new CDOViewDescriptor(), color, 0.7f);

   }

 }

diff --git a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/cdoserver/ClassMappingDescriptor.java b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/cdoserver/ClassMappingDescriptor.java
index 7a1b16e..2d4d494 100644
--- a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/cdoserver/ClassMappingDescriptor.java
+++ b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/cdoserver/ClassMappingDescriptor.java
@@ -30,8 +30,8 @@
     IClassMapping classMapping = (IClassMapping)object;

     element.setKeyAttribute(classMapping.getEClass().getName());

     element.addReference(false, classMapping.getEClass());

-    element.addReference(false, classMapping.getDBTables());

-    element.addReference(true, classMapping.getValueMappings());

-    element.addReference(true, classMapping.getListMappings());

+    element.addReferences(false, classMapping.getDBTables());

+    element.addReferences(true, classMapping.getValueMappings());

+    element.addReferences(true, classMapping.getListMappings());

   }

 }

diff --git a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/cdoserver/_INIT_CDO_SERVER_.java b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/cdoserver/_INIT_CDO_SERVER_.java
index dcb1281..fb7d9c6 100644
--- a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/cdoserver/_INIT_CDO_SERVER_.java
+++ b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/cdoserver/_INIT_CDO_SERVER_.java
@@ -12,6 +12,8 @@
 

 import org.eclipse.emf.cdo.threedee.common.ElementDescriptor.Registry;

 

+import java.awt.Color;

+

 /**

  * @author Eike Stepper

  */

@@ -19,18 +21,19 @@
 {

   public static void init(Registry registry)

   {

-    registry.register(new CDOServerDescriptor());

-    registry.register(new ClassMappingDescriptor());

-    registry.register(new DBStoreDescriptor());

-    registry.register(new IDHandlerDescriptor());

-    registry.register(new MappingStrategyDescriptor());

-    registry.register(new MetaDataManagerDescriptor());

-    registry.register(new TypeMappingDescriptor());

-    registry.register(new RepositoryDescriptor());

-    registry.register(new SessionDescriptor());

-    registry.register(new SessionManagerDescriptor());

-    registry.register(new StoreDescriptor());

-    registry.register(new TransactionDescriptor());

-    registry.register(new ViewDescriptor());

+    Color color = Color.blue;

+    registry.register(new CDOServerDescriptor(), color, 0.7f);

+    registry.register(new ClassMappingDescriptor(), color, 0.7f);

+    registry.register(new DBStoreDescriptor(), color, 0.7f);

+    registry.register(new IDHandlerDescriptor(), color, 0.7f);

+    registry.register(new MappingStrategyDescriptor(), color, 0.7f);

+    registry.register(new MetaDataManagerDescriptor(), color, 0.7f);

+    registry.register(new TypeMappingDescriptor(), color, 0.7f);

+    registry.register(new RepositoryDescriptor(), color, 0.7f);

+    registry.register(new SessionDescriptor(), color, 0.7f);

+    registry.register(new SessionManagerDescriptor(), color, 0.7f);

+    registry.register(new StoreDescriptor(), color, 0.7f);

+    registry.register(new TransactionDescriptor(), color, 0.7f);

+    registry.register(new ViewDescriptor(), color, 0.7f);

   }

 }

diff --git a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/emf/_INIT_EMF_.java b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/emf/_INIT_EMF_.java
index 86791e9..692999c 100644
--- a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/emf/_INIT_EMF_.java
+++ b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/emf/_INIT_EMF_.java
@@ -16,6 +16,8 @@
 

 import org.eclipse.emf.ecore.EPackage;

 

+import java.awt.Color;

+

 /**

  * @author Eike Stepper

  */

@@ -26,22 +28,23 @@
     IPluginContainer.INSTANCE.putElement("org.eclipse.emf.ecore.packageRegisties", "default", null,

         EPackage.Registry.INSTANCE);

 

-    registry.register(new EMFDescriptor());

-    registry.register(new EAnnotationDescriptor());

-    registry.register(new EAttributeDescriptor());

-    registry.register(new EClassDescriptor());

-    registry.register(new EClassifierDescriptor());

-    registry.register(new EDataTypeDescriptor());

-    registry.register(new EEnumDescriptor());

-    registry.register(new EEnumLiteralDescriptor());

-    registry.register(new EModelElementDescriptor());

-    registry.register(new ENamedElementDescriptor());

-    registry.register(new EOperationDescriptor());

-    registry.register(new EPackageDescriptor());

-    registry.register(new EPackageRegistryDescriptor());

-    registry.register(new EParameterDescriptor());

-    registry.register(new EReferenceDescriptor());

-    registry.register(new EStructuralFeatureDescriptor());

-    registry.register(new ETypedElementDescriptor());

+    Color color = Color.yellow;

+    registry.register(new EMFDescriptor(), color, 0.7f);

+    registry.register(new EAnnotationDescriptor(), color, 0.7f);

+    registry.register(new EAttributeDescriptor(), color, 0.7f);

+    registry.register(new EClassDescriptor(), color, 0.7f);

+    registry.register(new EClassifierDescriptor(), color, 0.7f);

+    registry.register(new EDataTypeDescriptor(), color, 0.7f);

+    registry.register(new EEnumDescriptor(), color, 0.7f);

+    registry.register(new EEnumLiteralDescriptor(), color, 0.7f);

+    registry.register(new EModelElementDescriptor(), color, 0.7f);

+    registry.register(new ENamedElementDescriptor(), color, 0.7f);

+    registry.register(new EOperationDescriptor(), color, 0.7f);

+    registry.register(new EPackageDescriptor(), color, 0.7f);

+    registry.register(new EPackageRegistryDescriptor(), color, 0.7f);

+    registry.register(new EParameterDescriptor(), color, 0.7f);

+    registry.register(new EReferenceDescriptor(), color, 0.7f);

+    registry.register(new EStructuralFeatureDescriptor(), color, 0.7f);

+    registry.register(new ETypedElementDescriptor(), color, 0.7f);

   }

 }

diff --git a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/net4j/_INIT_NET4J_.java b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/net4j/_INIT_NET4J_.java
index bf7b34a..0a0f3ce 100644
--- a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/net4j/_INIT_NET4J_.java
+++ b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/net4j/_INIT_NET4J_.java
@@ -11,7 +11,8 @@
 package org.eclipse.emf.cdo.threedee.common.descriptors.net4j;

 

 import org.eclipse.emf.cdo.threedee.common.ElementDescriptor.Registry;

-import org.eclipse.emf.cdo.threedee.common.descriptors.net4jdb._INIT_NET4J_DB_;

+

+import java.awt.Color;

 

 /**

  * @author Eike Stepper

@@ -20,18 +21,17 @@
 {

   public static void init(Registry registry)

   {

-    _INIT_NET4J_DB_.init(registry);

-

-    registry.register(new Net4jDescriptor());

-    registry.register(new AcceptorDescriptor());

-    registry.register(new BufferDescriptor());

-    registry.register(new ChannelDescriptor());

-    registry.register(new ChannelMultiplexerDescriptor());

-    registry.register(new ConnectorDescriptor());

-    registry.register(new ProtocolDescriptor());

-    registry.register(new SocketChannelDescriptor());

-    registry.register(new TCPAcceptorDescriptor());

-    registry.register(new TCPConnectorDescriptor());

-    registry.register(new TCPSelectorDescriptor());

+    Color color = Color.green;

+    registry.register(new Net4jDescriptor(), color, 0.7f);

+    registry.register(new AcceptorDescriptor(), color, 0.7f);

+    registry.register(new BufferDescriptor(), color, 0.7f);

+    registry.register(new ChannelDescriptor(), color, 0.7f);

+    registry.register(new ChannelMultiplexerDescriptor(), color, 0.7f);

+    registry.register(new ConnectorDescriptor(), color, 0.7f);

+    registry.register(new ProtocolDescriptor(), color, 0.7f);

+    registry.register(new SocketChannelDescriptor(), color, 0.7f);

+    registry.register(new TCPAcceptorDescriptor(), color, 0.7f);

+    registry.register(new TCPConnectorDescriptor(), color, 0.7f);

+    registry.register(new TCPSelectorDescriptor(), color, 0.7f);

   }

 }

diff --git a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/net4jdb/_INIT_NET4J_DB_.java b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/net4jdb/_INIT_NET4J_DB_.java
index a341b69..c0a3f26 100644
--- a/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/net4jdb/_INIT_NET4J_DB_.java
+++ b/org.eclipse.emf.cdo.threedee.common/src/org/eclipse/emf/cdo/threedee/common/descriptors/net4jdb/_INIT_NET4J_DB_.java
@@ -12,6 +12,8 @@
 

 import org.eclipse.emf.cdo.threedee.common.ElementDescriptor.Registry;

 

+import java.awt.Color;

+

 /**

  * @author Eike Stepper

  */

@@ -19,11 +21,12 @@
 {

   public static void init(Registry registry)

   {

-    registry.register(new Net4jDBDescriptor());

-    registry.register(new DBAdapterDescriptor());

-    registry.register(new DBFieldDescriptor());

-    registry.register(new DBIndexDescriptor());

-    registry.register(new DBSchemaDescriptor());

-    registry.register(new DBTableDescriptor());

+    Color color = Color.cyan;

+    registry.register(new Net4jDBDescriptor(), color, 0.7f);

+    registry.register(new DBAdapterDescriptor(), color, 0.7f);

+    registry.register(new DBFieldDescriptor(), color, 0.7f);

+    registry.register(new DBIndexDescriptor(), color, 0.7f);

+    registry.register(new DBSchemaDescriptor(), color, 0.7f);

+    registry.register(new DBTableDescriptor(), color, 0.7f);

   }

 }