From 58c554169728899aec0d7aa591843b3fb52a5aa6 Mon Sep 17 00:00:00 2001
From: Florian Hoelzl <hoelzl@fortiss.org>
Date: Sun, 12 Jun 2011 11:05:07 +0000
Subject: [PATCH] kernel refactoring: extract ui components

---
 .../trunk/META-INF/MANIFEST.MF                |  2 +
 .../GraphicalConnectionEditPartBase.java      |  4 +-
 .../ui/editpart/GraphicalEditPartBase.java    |  4 +-
 .../base/ui/editpart/NodeEditPartBase.java    |  6 +-
 .../ui}/internal/command/EMF2GEFCommand.java  |  2 +-
 .../ui}/internal/command/GEF2EMFCommand.java  |  2 +-
 .../internal/command/GEF2EMFCommandStack.java |  2 +-
 .../base/ui}/layout/IPointLayouter.java       |  2 +-
 .../layout/constants/LayoutKeyConstants.java  |  2 +-
 .../constants/RecommendedLayoutConstants.java |  2 +-
 .../ui/layout/util/EditPartLayoutUtils.java   |  6 +-
 .../base/ui}/layout/util/LayoutDataUtils.java |  6 +-
 .../ui}/layout/util/OrientationUtils.java     |  4 +-
 .../base/ui}/layout/util/ZoomUtils.java       |  2 +-
 .../trunk/META-INF/MANIFEST.MF                |  3 -
 .../tooling/base/ToolingBaseActivator.java    |  4 +-
 .../trunk/META-INF/MANIFEST.MF                |  8 +-
 .../tooling/kernel/ui/base/EditorBase.java    |  2 +-
 .../ui}/base/ModelElementHandlerBase.java     |  4 +-
 ...NamedCommentedModelElementHandlerBase.java |  4 +-
 .../databinding/EObjectObservableValue.java   |  5 +-
 .../kernel/ui}/databinding/Observables.java   |  4 +-
 .../ui}/interfaces/IModelElementHandler.java  |  2 +-
 .../kernel/ui/internal/EditorService.java     | 18 +++-
 .../ui}/internal/ModelElementService.java     |  6 +-
 .../ui/internal/editor/BindingEditor.java     |  2 +-
 .../editor/ModelElementEditorInput.java       |  4 +-
 .../properties/IdLabeledPropertySection.java  |  2 +-
 .../NamedCommentedPropertySection.java        |  2 +-
 .../kernel/ui/internal/views/LibraryView.java |  4 +-
 .../views/NavigatorTreeContentProvider.java   |  4 +-
 .../views/NavigatorTreeLabelProvider.java     |  4 +-
 .../kernel/ui/internal/views/NewMenu.java     |  2 +-
 .../kernel/ui/services/IEditorService.java    |  3 +
 .../ui}/services/IModelElementService.java    |  6 +-
 .../trunk/META-INF/MANIFEST.MF                |  7 --
 .../kernel/base/EObjectAware2ServiceBase.java |  4 +-
 .../kernel/base/EObjectAwareServiceBase.java  |  4 +-
 .../kernel/internal/CommandStackService.java  |  2 +-
 .../kernel/internal/PrototypeService.java     |  4 +-
 .../eclipse/EMFTransactionalCommand.java      |  2 +-
 .../EclipseResourceStorageProvider.java       | 70 +++++++-------
 .../storage/eclipse/ModelContext.java         | 46 ++-------
 .../kernel/util/ExtensionPointUtils.java      | 88 +++++++++++++++++
 .../tooling/kernel/util/LoggingUtils.java     | 96 +++++++++++++++++++
 45 files changed, 313 insertions(+), 149 deletions(-)
 rename {org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base => org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui}/internal/command/EMF2GEFCommand.java (97%)
 rename {org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base => org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui}/internal/command/GEF2EMFCommand.java (98%)
 rename {org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base => org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui}/internal/command/GEF2EMFCommandStack.java (98%)
 rename {org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base => org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui}/layout/IPointLayouter.java (97%)
 rename {org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base => org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui}/layout/constants/LayoutKeyConstants.java (97%)
 rename {org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base => org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui}/layout/constants/RecommendedLayoutConstants.java (98%)
 rename {org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base => org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui}/layout/util/LayoutDataUtils.java (98%)
 rename {org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base => org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui}/layout/util/OrientationUtils.java (96%)
 rename {org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base => org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui}/layout/util/ZoomUtils.java (97%)
 rename {org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel => org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui}/base/ModelElementHandlerBase.java (96%)
 rename {org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel => org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui}/base/NamedCommentedModelElementHandlerBase.java (94%)
 rename {org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel => org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui}/databinding/EObjectObservableValue.java (97%)
 rename {org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel => org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui}/databinding/Observables.java (97%)
 rename {org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel => org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui}/interfaces/IModelElementHandler.java (98%)
 rename {org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel => org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui}/internal/ModelElementService.java (95%)
 rename {org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel => org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui}/services/IModelElementService.java (90%)
 create mode 100644 org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/util/ExtensionPointUtils.java
 create mode 100644 org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/util/LoggingUtils.java

diff --git a/org.fortiss.tooling.base.ui/trunk/META-INF/MANIFEST.MF b/org.fortiss.tooling.base.ui/trunk/META-INF/MANIFEST.MF
index 0ef04857a..339fec841 100644
--- a/org.fortiss.tooling.base.ui/trunk/META-INF/MANIFEST.MF
+++ b/org.fortiss.tooling.base.ui/trunk/META-INF/MANIFEST.MF
@@ -16,4 +16,6 @@ Export-Package: org.fortiss.tooling.kernel.base.ui,
  org.fortiss.tooling.kernel.base.ui.editpart,
  org.fortiss.tooling.kernel.base.ui.editpart.anchor,
  org.fortiss.tooling.kernel.base.ui.editpart.policy,
+ org.fortiss.tooling.kernel.base.ui.layout,
+ org.fortiss.tooling.kernel.base.ui.layout.constants,
  org.fortiss.tooling.kernel.base.ui.layout.util
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/editpart/GraphicalConnectionEditPartBase.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/editpart/GraphicalConnectionEditPartBase.java
index 24e18f743..8f33ace03 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/editpart/GraphicalConnectionEditPartBase.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/editpart/GraphicalConnectionEditPartBase.java
@@ -23,8 +23,8 @@ import org.eclipse.emf.common.notify.impl.AdapterImpl;
 import org.eclipse.gef.editparts.AbstractConnectionEditPart;
 import org.fortiss.tooling.base.model.element.IConnection;
 import org.fortiss.tooling.base.model.layout.ILayoutedModelElement;
-import org.fortiss.tooling.kernel.interfaces.IModelElementHandler;
-import org.fortiss.tooling.kernel.services.IModelElementService;
+import org.fortiss.tooling.kernel.ui.interfaces.IModelElementHandler;
+import org.fortiss.tooling.kernel.ui.services.IModelElementService;
 
 /**
  * Base class for graphical connection edit parts.
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/editpart/GraphicalEditPartBase.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/editpart/GraphicalEditPartBase.java
index 0328e855d..f1b5e296e 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/editpart/GraphicalEditPartBase.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/editpart/GraphicalEditPartBase.java
@@ -22,8 +22,8 @@ import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.impl.AdapterImpl;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.fortiss.tooling.kernel.interfaces.IModelElementHandler;
-import org.fortiss.tooling.kernel.services.IModelElementService;
+import org.fortiss.tooling.kernel.ui.interfaces.IModelElementHandler;
+import org.fortiss.tooling.kernel.ui.services.IModelElementService;
 
 /**
  * The base class for all graphical edit parts.
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/editpart/NodeEditPartBase.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/editpart/NodeEditPartBase.java
index e880b3d79..da102ddda 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/editpart/NodeEditPartBase.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/editpart/NodeEditPartBase.java
@@ -28,11 +28,11 @@ import org.eclipse.draw2d.geometry.Rectangle;
 import org.eclipse.gef.Request;
 import org.eclipse.gef.RequestConstants;
 import org.eclipse.swt.graphics.Color;
-import org.fortiss.tooling.base.layout.constants.RecommendedLayoutConstants;
-import org.fortiss.tooling.base.layout.util.LayoutDataUtils;
 import org.fortiss.tooling.base.model.layout.ILayoutedModelElement;
+import org.fortiss.tooling.kernel.base.ui.layout.constants.RecommendedLayoutConstants;
+import org.fortiss.tooling.kernel.base.ui.layout.util.LayoutDataUtils;
 import org.fortiss.tooling.kernel.model.INamedCommentedElement;
-import org.fortiss.tooling.kernel.services.IModelElementService;
+import org.fortiss.tooling.kernel.ui.services.IModelElementService;
 
 /**
  * The base class for graphical edit parts which encapsulate nodes (i.e. the
diff --git a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/internal/command/EMF2GEFCommand.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/internal/command/EMF2GEFCommand.java
similarity index 97%
rename from org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/internal/command/EMF2GEFCommand.java
rename to org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/internal/command/EMF2GEFCommand.java
index 3840ce633..2cc2bc8aa 100644
--- a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/internal/command/EMF2GEFCommand.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/internal/command/EMF2GEFCommand.java
@@ -15,7 +15,7 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.base.internal.command;
+package org.fortiss.tooling.kernel.base.ui.internal.command;
 
 import org.eclipse.gef.commands.Command;
 
diff --git a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/internal/command/GEF2EMFCommand.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/internal/command/GEF2EMFCommand.java
similarity index 98%
rename from org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/internal/command/GEF2EMFCommand.java
rename to org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/internal/command/GEF2EMFCommand.java
index 967bf7263..c367a47d2 100644
--- a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/internal/command/GEF2EMFCommand.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/internal/command/GEF2EMFCommand.java
@@ -15,7 +15,7 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.base.internal.command;
+package org.fortiss.tooling.kernel.base.ui.internal.command;
 
 import java.util.Collection;
 import java.util.Collections;
diff --git a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/internal/command/GEF2EMFCommandStack.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/internal/command/GEF2EMFCommandStack.java
similarity index 98%
rename from org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/internal/command/GEF2EMFCommandStack.java
rename to org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/internal/command/GEF2EMFCommandStack.java
index ae54acc8e..8b457d4e0 100644
--- a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/internal/command/GEF2EMFCommandStack.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/internal/command/GEF2EMFCommandStack.java
@@ -15,7 +15,7 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.base.internal.command;
+package org.fortiss.tooling.kernel.base.ui.internal.command;
 
 import java.util.EventObject;
 
diff --git a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/layout/IPointLayouter.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/IPointLayouter.java
similarity index 97%
rename from org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/layout/IPointLayouter.java
rename to org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/IPointLayouter.java
index 96ee10e59..d5863b128 100644
--- a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/layout/IPointLayouter.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/IPointLayouter.java
@@ -15,7 +15,7 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.base.layout;
+package org.fortiss.tooling.kernel.base.ui.layout;
 
 import org.fortiss.tooling.base.model.layout.Point;
 
diff --git a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/layout/constants/LayoutKeyConstants.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/constants/LayoutKeyConstants.java
similarity index 97%
rename from org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/layout/constants/LayoutKeyConstants.java
rename to org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/constants/LayoutKeyConstants.java
index ddc147ef7..a10ffded1 100644
--- a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/layout/constants/LayoutKeyConstants.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/constants/LayoutKeyConstants.java
@@ -15,7 +15,7 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.base.layout.constants;
+package org.fortiss.tooling.kernel.base.ui.layout.constants;
 
 /**
  * Layout constants defining keys for the commonly used layout objects, like
diff --git a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/layout/constants/RecommendedLayoutConstants.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/constants/RecommendedLayoutConstants.java
similarity index 98%
rename from org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/layout/constants/RecommendedLayoutConstants.java
rename to org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/constants/RecommendedLayoutConstants.java
index effee9146..bb4bae830 100644
--- a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/layout/constants/RecommendedLayoutConstants.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/constants/RecommendedLayoutConstants.java
@@ -15,7 +15,7 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.base.layout.constants;
+package org.fortiss.tooling.kernel.base.ui.layout.constants;
 
 import org.conqat.ide.commons.ui.swt.FontUtils;
 import org.eclipse.draw2d.geometry.Dimension;
diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/util/EditPartLayoutUtils.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/util/EditPartLayoutUtils.java
index 0c340b9cd..85ae1fcae 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/util/EditPartLayoutUtils.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/util/EditPartLayoutUtils.java
@@ -23,14 +23,12 @@ import org.eclipse.draw2d.PositionConstants;
 import org.eclipse.draw2d.geometry.Dimension;
 import org.eclipse.draw2d.geometry.Point;
 import org.eclipse.draw2d.geometry.Rectangle;
-import org.fortiss.tooling.base.layout.constants.LayoutKeyConstants;
-import org.fortiss.tooling.base.layout.constants.RecommendedLayoutConstants;
-import org.fortiss.tooling.base.layout.util.LayoutDataUtils;
-import org.fortiss.tooling.base.layout.util.OrientationUtils;
 import org.fortiss.tooling.base.model.layout.EOrientation;
 import org.fortiss.tooling.base.model.layout.ILayoutedModelElement;
 import org.fortiss.tooling.base.model.layout.OffsetOrientation;
 import org.fortiss.tooling.kernel.base.ui.dnd.DropContext;
+import org.fortiss.tooling.kernel.base.ui.layout.constants.LayoutKeyConstants;
+import org.fortiss.tooling.kernel.base.ui.layout.constants.RecommendedLayoutConstants;
 
 /**
  * Utility class collecting EditPart layout methods.
diff --git a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/layout/util/LayoutDataUtils.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/util/LayoutDataUtils.java
similarity index 98%
rename from org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/layout/util/LayoutDataUtils.java
rename to org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/util/LayoutDataUtils.java
index c9c269227..226dc2793 100644
--- a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/layout/util/LayoutDataUtils.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/util/LayoutDataUtils.java
@@ -15,12 +15,10 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.base.layout.util;
+package org.fortiss.tooling.kernel.base.ui.layout.util;
 
 import org.eclipse.draw2d.geometry.Rectangle;
 import org.eclipse.emf.ecore.EObject;
-import org.fortiss.tooling.base.layout.constants.LayoutKeyConstants;
-import org.fortiss.tooling.base.layout.constants.RecommendedLayoutConstants;
 import org.fortiss.tooling.base.model.layout.Angle;
 import org.fortiss.tooling.base.model.layout.Dimension;
 import org.fortiss.tooling.base.model.layout.EOrientation;
@@ -31,6 +29,8 @@ import org.fortiss.tooling.base.model.layout.Offset;
 import org.fortiss.tooling.base.model.layout.Orientation;
 import org.fortiss.tooling.base.model.layout.Point;
 import org.fortiss.tooling.base.model.layout.Points;
+import org.fortiss.tooling.kernel.base.ui.layout.constants.LayoutKeyConstants;
+import org.fortiss.tooling.kernel.base.ui.layout.constants.RecommendedLayoutConstants;
 
 /**
  * Utility methods for {@link ILayoutedModelElement} and {@link ILayoutData}.
diff --git a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/layout/util/OrientationUtils.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/util/OrientationUtils.java
similarity index 96%
rename from org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/layout/util/OrientationUtils.java
rename to org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/util/OrientationUtils.java
index f3f695910..3c6115fe7 100644
--- a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/layout/util/OrientationUtils.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/util/OrientationUtils.java
@@ -15,16 +15,16 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.base.layout.util;
+package org.fortiss.tooling.kernel.base.ui.layout.util;
 
 import org.eclipse.draw2d.geometry.Dimension;
 import org.eclipse.draw2d.geometry.Point;
-import org.fortiss.tooling.base.layout.constants.RecommendedLayoutConstants;
 import org.fortiss.tooling.base.model.layout.EOrientation;
 import org.fortiss.tooling.base.model.layout.LayoutFactory;
 import org.fortiss.tooling.base.model.layout.Offset;
 import org.fortiss.tooling.base.model.layout.OffsetOrientation;
 import org.fortiss.tooling.base.model.layout.Orientation;
+import org.fortiss.tooling.kernel.base.ui.layout.constants.RecommendedLayoutConstants;
 
 /**
  * Class for handling orientation relative coordinates.
diff --git a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/layout/util/ZoomUtils.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/util/ZoomUtils.java
similarity index 97%
rename from org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/layout/util/ZoomUtils.java
rename to org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/util/ZoomUtils.java
index d58c707dc..5111f47e9 100644
--- a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/layout/util/ZoomUtils.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/kernel/base/ui/layout/util/ZoomUtils.java
@@ -15,7 +15,7 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.base.layout.util;
+package org.fortiss.tooling.kernel.base.ui.layout.util;
 
 import org.eclipse.gef.RootEditPart;
 import org.eclipse.gef.editparts.ScalableFreeformRootEditPart;
diff --git a/org.fortiss.tooling.base/trunk/META-INF/MANIFEST.MF b/org.fortiss.tooling.base/trunk/META-INF/MANIFEST.MF
index 252afa7ca..cc9f27177 100644
--- a/org.fortiss.tooling.base/trunk/META-INF/MANIFEST.MF
+++ b/org.fortiss.tooling.base/trunk/META-INF/MANIFEST.MF
@@ -10,9 +10,6 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.fortiss.tooling.kernel;bundle-version="0.0.1";visibility:=reexport
 Bundle-ActivationPolicy: lazy
 Export-Package: org.fortiss.tooling.base,
- org.fortiss.tooling.base.layout,
- org.fortiss.tooling.base.layout.constants,
- org.fortiss.tooling.base.layout.util,
  org.fortiss.tooling.base.model.element,
  org.fortiss.tooling.base.model.element.impl,
  org.fortiss.tooling.base.model.element.util,
diff --git a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/ToolingBaseActivator.java b/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/ToolingBaseActivator.java
index 62d4df8dd..af05f0673 100644
--- a/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/ToolingBaseActivator.java
+++ b/org.fortiss.tooling.base/trunk/src/org/fortiss/tooling/base/ToolingBaseActivator.java
@@ -17,7 +17,7 @@ $Id$
 +--------------------------------------------------------------------------*/
 package org.fortiss.tooling.base;
 
-import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.core.runtime.Plugin;
 import org.osgi.framework.BundleContext;
 
 /**
@@ -28,7 +28,7 @@ import org.osgi.framework.BundleContext;
  * @version $Rev$
  * @ConQAT.Rating RED Hash: D6B33EFB704B0CA151E1C945B5BC48C6
  */
-public class ToolingBaseActivator extends AbstractUIPlugin {
+public class ToolingBaseActivator extends Plugin {
 
 	/** The plug-in ID. */
 	public static final String PLUGIN_ID = "org.fortiss.tooling.base"; //$NON-NLS-1$
diff --git a/org.fortiss.tooling.kernel.ui/trunk/META-INF/MANIFEST.MF b/org.fortiss.tooling.kernel.ui/trunk/META-INF/MANIFEST.MF
index b83dfc265..cdae75d96 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/META-INF/MANIFEST.MF
+++ b/org.fortiss.tooling.kernel.ui/trunk/META-INF/MANIFEST.MF
@@ -7,12 +7,18 @@ Bundle-Activator: org.fortiss.tooling.kernel.ui.ToolingKernelUIActivator
 Require-Bundle: org.eclipse.ui;visibility:=reexport,
  org.eclipse.core.runtime;visibility:=reexport,
  org.fortiss.tooling.kernel;bundle-version="0.0.1";visibility:=reexport,
- org.eclipse.core.resources;bundle-version="3.6.1"
+ org.eclipse.core.resources;bundle-version="3.6.1";visibility:=reexport,
+ org.eclipse.gef;bundle-version="3.6.2";visibility:=reexport,
+ org.conqat.ide.commons.gef;bundle-version="2.7.0";visibility:=reexport,
+ org.conqat.ide.commons.ui;bundle-version="2.7.0";visibility:=reexport,
+ org.eclipse.ui.views.properties.tabbed;bundle-version="3.5.100";visibility:=reexport,
+ org.eclipse.jface.databinding;bundle-version="1.4.0";visibility:=reexport
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: fortiss
 Export-Package: org.fortiss.tooling.kernel.ui,
  org.fortiss.tooling.kernel.ui.base,
+ org.fortiss.tooling.kernel.ui.databinding,
  org.fortiss.tooling.kernel.ui.interfaces,
  org.fortiss.tooling.kernel.ui.services,
  org.fortiss.tooling.kernel.ui.util
diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/base/EditorBase.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/base/EditorBase.java
index badfc042b..c5484805a 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/base/EditorBase.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/base/EditorBase.java
@@ -24,9 +24,9 @@ import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorSite;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.part.EditorPart;
-import org.fortiss.tooling.kernel.interfaces.IModelElementHandler;
 import org.fortiss.tooling.kernel.services.ICommandStackService;
 import org.fortiss.tooling.kernel.ui.interfaces.IEditorBinding;
+import org.fortiss.tooling.kernel.ui.interfaces.IModelElementHandler;
 import org.fortiss.tooling.kernel.ui.internal.editor.ModelElementEditorInput;
 
 /**
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/ModelElementHandlerBase.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/base/ModelElementHandlerBase.java
similarity index 96%
rename from org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/ModelElementHandlerBase.java
rename to org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/base/ModelElementHandlerBase.java
index bd396144f..59ad1fdfb 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/ModelElementHandlerBase.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/base/ModelElementHandlerBase.java
@@ -15,7 +15,7 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.base;
+package org.fortiss.tooling.kernel.ui.base;
 
 import java.util.Collections;
 import java.util.List;
@@ -23,7 +23,7 @@ import java.util.List;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.graphics.Image;
-import org.fortiss.tooling.kernel.interfaces.IModelElementHandler;
+import org.fortiss.tooling.kernel.ui.interfaces.IModelElementHandler;
 
 /**
  * Base implementation for {@link IModelElementHandler}s.
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/NamedCommentedModelElementHandlerBase.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/base/NamedCommentedModelElementHandlerBase.java
similarity index 94%
rename from org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/NamedCommentedModelElementHandlerBase.java
rename to org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/base/NamedCommentedModelElementHandlerBase.java
index c334c4559..34cbca88b 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/NamedCommentedModelElementHandlerBase.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/base/NamedCommentedModelElementHandlerBase.java
@@ -15,10 +15,10 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.base;
+package org.fortiss.tooling.kernel.ui.base;
 
-import org.fortiss.tooling.kernel.interfaces.IModelElementHandler;
 import org.fortiss.tooling.kernel.model.INamedCommentedElement;
+import org.fortiss.tooling.kernel.ui.interfaces.IModelElementHandler;
 
 /**
  * {@link IModelElementHandler} base implementation for
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/databinding/EObjectObservableValue.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/databinding/EObjectObservableValue.java
similarity index 97%
rename from org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/databinding/EObjectObservableValue.java
rename to org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/databinding/EObjectObservableValue.java
index b1a2c6c2b..026942f43 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/databinding/EObjectObservableValue.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/databinding/EObjectObservableValue.java
@@ -15,7 +15,7 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.databinding;
+package org.fortiss.tooling.kernel.ui.databinding;
 
 import org.eclipse.core.databinding.observable.Diffs;
 import org.eclipse.core.databinding.observable.Realm;
@@ -35,12 +35,11 @@ import org.fortiss.tooling.kernel.services.ICommandStackService;
 /**
  * Implementation of {@link IObservableValue} for {@link EObject}s.
  * 
- * @author hummelb
+ * @author hummel
  * @author $Author$
  * @version $Rev$
  * @ConQAT.Rating RED Hash: 15CFC8E0F8C76EB39F1E306637EC6436
  */
-// TODO (FH): move UI parts, e.g. Display
 public class EObjectObservableValue extends AbstractObservableValue {
 
 	/** The wrapped object. */
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/databinding/Observables.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/databinding/Observables.java
similarity index 97%
rename from org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/databinding/Observables.java
rename to org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/databinding/Observables.java
index 326090d11..80c2da76b 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/databinding/Observables.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/databinding/Observables.java
@@ -15,7 +15,7 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.databinding;
+package org.fortiss.tooling.kernel.ui.databinding;
 
 import org.conqat.lib.commons.assertion.CCSMPre;
 import org.eclipse.core.databinding.observable.Realm;
@@ -26,7 +26,7 @@ import org.eclipse.emf.ecore.EStructuralFeature;
 /**
  * Observerables for EObject models.
  * 
- * @author hummelb
+ * @author hummel
  * @author $Author$
  * @version $Rev$
  * @ConQAT.Rating RED Hash: D2469271EB80E5AA630EB34902E89A52
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/interfaces/IModelElementHandler.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/interfaces/IModelElementHandler.java
similarity index 98%
rename from org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/interfaces/IModelElementHandler.java
rename to org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/interfaces/IModelElementHandler.java
index d68376758..d962ffb41 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/interfaces/IModelElementHandler.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/interfaces/IModelElementHandler.java
@@ -15,7 +15,7 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.interfaces;
+package org.fortiss.tooling.kernel.ui.interfaces;
 
 import java.util.List;
 
diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/EditorService.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/EditorService.java
index b72dc9b69..d787d9bcd 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/EditorService.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/EditorService.java
@@ -21,7 +21,6 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 
-import org.conqat.ide.commons.ui.logging.LoggingUtils;
 import org.conqat.lib.commons.collections.CollectionUtils;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.ui.PartInitException;
@@ -32,6 +31,7 @@ import org.fortiss.tooling.kernel.ui.interfaces.IEditorBinding;
 import org.fortiss.tooling.kernel.ui.internal.editor.BindingEditor;
 import org.fortiss.tooling.kernel.ui.internal.editor.ModelElementEditorInput;
 import org.fortiss.tooling.kernel.ui.services.IEditorService;
+import org.fortiss.tooling.kernel.util.LoggingUtils;
 
 /**
  * This class implements the {@link IEditorService} interface.
@@ -41,7 +41,6 @@ import org.fortiss.tooling.kernel.ui.services.IEditorService;
  * @version $Rev$
  * @ConQAT.Rating RED Hash: 251E6B64F0C35EAE01484E4CFED5EBD5
  */
-// TODO (FH): move to UI
 public class EditorService extends
 		EObjectAwareServiceBase<IEditorBinding<EObject>> implements
 		IEditorService {
@@ -122,4 +121,19 @@ public class EditorService extends
 			return eb1.getPriority() - eb0.getPriority();
 		}
 	}
+
+	/** {@inheritDoc} */
+	@Override
+	public void closeEditors(EObject rootElement) {
+		// TODO (FH): implement
+
+		// for (final IEditorPart editor : editors) {
+		// editor.getSite().getShell().getDisplay().asyncExec(new Runnable() {
+		// @Override
+		// public void run() {
+		// editor.getSite().getPage().closeEditor(editor, false);
+		// }
+		// });
+		// }
+	}
 }
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/ModelElementService.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/ModelElementService.java
similarity index 95%
rename from org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/ModelElementService.java
rename to org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/ModelElementService.java
index 5fb4a374e..7567176de 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/ModelElementService.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/ModelElementService.java
@@ -15,7 +15,7 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.internal;
+package org.fortiss.tooling.kernel.ui.internal;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -26,8 +26,8 @@ import org.conqat.lib.commons.reflect.ReflectionUtils;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.emf.ecore.EObject;
 import org.fortiss.tooling.kernel.ToolingKernelActivator;
-import org.fortiss.tooling.kernel.interfaces.IModelElementHandler;
-import org.fortiss.tooling.kernel.services.IModelElementService;
+import org.fortiss.tooling.kernel.ui.interfaces.IModelElementHandler;
+import org.fortiss.tooling.kernel.ui.services.IModelElementService;
 import org.osgi.framework.Bundle;
 
 /**
diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/editor/BindingEditor.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/editor/BindingEditor.java
index 87d5e011c..7a73db432 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/editor/BindingEditor.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/editor/BindingEditor.java
@@ -36,9 +36,9 @@ import org.eclipse.ui.views.properties.IPropertySheetPage;
 import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
 import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
 import org.fortiss.tooling.kernel.ToolingKernelActivator;
-import org.fortiss.tooling.kernel.interfaces.IModelElementHandler;
 import org.fortiss.tooling.kernel.ui.interfaces.IBindingEditorPageChangeListener;
 import org.fortiss.tooling.kernel.ui.interfaces.IEditorBinding;
+import org.fortiss.tooling.kernel.ui.interfaces.IModelElementHandler;
 import org.fortiss.tooling.kernel.ui.services.IEditorService;
 import org.fortiss.tooling.kernel.ui.services.IPropertiesService;
 
diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/editor/ModelElementEditorInput.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/editor/ModelElementEditorInput.java
index 5d6a893dc..81c8f8846 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/editor/ModelElementEditorInput.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/editor/ModelElementEditorInput.java
@@ -21,8 +21,8 @@ import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IPersistableElement;
-import org.fortiss.tooling.kernel.interfaces.IModelElementHandler;
-import org.fortiss.tooling.kernel.services.IModelElementService;
+import org.fortiss.tooling.kernel.ui.interfaces.IModelElementHandler;
+import org.fortiss.tooling.kernel.ui.services.IModelElementService;
 
 /**
  * {@link IEditorInput} used when opening a {@link BindingEditor}.
diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/properties/IdLabeledPropertySection.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/properties/IdLabeledPropertySection.java
index 3debc89e4..a077c79e4 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/properties/IdLabeledPropertySection.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/properties/IdLabeledPropertySection.java
@@ -23,10 +23,10 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-import org.fortiss.tooling.kernel.databinding.Observables;
 import org.fortiss.tooling.kernel.model.FortissToolingKernelPackage;
 import org.fortiss.tooling.kernel.model.IIdLabeled;
 import org.fortiss.tooling.kernel.ui.base.PropertySectionBase;
+import org.fortiss.tooling.kernel.ui.databinding.Observables;
 
 /**
  * Property section for {@link IIdLabeled} objects.
diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/properties/NamedCommentedPropertySection.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/properties/NamedCommentedPropertySection.java
index ceaa59547..9f168198b 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/properties/NamedCommentedPropertySection.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/properties/NamedCommentedPropertySection.java
@@ -23,10 +23,10 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-import org.fortiss.tooling.kernel.databinding.Observables;
 import org.fortiss.tooling.kernel.model.FortissToolingKernelPackage;
 import org.fortiss.tooling.kernel.model.INamedCommentedElement;
 import org.fortiss.tooling.kernel.ui.base.PropertySectionBase;
+import org.fortiss.tooling.kernel.ui.databinding.Observables;
 
 /**
  * Property section for {@link INamedCommentedElement} objects.
diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/LibraryView.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/LibraryView.java
index 79c0118b5..a69bb235f 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/LibraryView.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/LibraryView.java
@@ -39,13 +39,13 @@ import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.dialogs.FilteredTree;
 import org.eclipse.ui.dialogs.PatternFilter;
 import org.eclipse.ui.part.ViewPart;
-import org.fortiss.tooling.kernel.interfaces.IModelElementHandler;
-import org.fortiss.tooling.kernel.services.IModelElementService;
 import org.fortiss.tooling.kernel.services.IPrototypeService;
 import org.fortiss.tooling.kernel.services.IPrototypeService.Prototype;
 import org.fortiss.tooling.kernel.ui.base.EditorBase;
 import org.fortiss.tooling.kernel.ui.interfaces.IBindingEditorPageChangeListener;
+import org.fortiss.tooling.kernel.ui.interfaces.IModelElementHandler;
 import org.fortiss.tooling.kernel.ui.internal.editor.BindingEditor;
+import org.fortiss.tooling.kernel.ui.services.IModelElementService;
 
 /**
  * {@link ViewPart} for the model element library view.
diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NavigatorTreeContentProvider.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NavigatorTreeContentProvider.java
index dcde4838a..de93fb029 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NavigatorTreeContentProvider.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NavigatorTreeContentProvider.java
@@ -23,10 +23,10 @@ import java.util.List;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.Viewer;
-import org.fortiss.tooling.kernel.interfaces.IModelElementHandler;
 import org.fortiss.tooling.kernel.interfaces.ITopLevelElementContext;
-import org.fortiss.tooling.kernel.services.IModelElementService;
 import org.fortiss.tooling.kernel.services.IPersistencyService;
+import org.fortiss.tooling.kernel.ui.interfaces.IModelElementHandler;
+import org.fortiss.tooling.kernel.ui.services.IModelElementService;
 
 /**
  * Content provider for the model navigator tree viewer.
diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NavigatorTreeLabelProvider.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NavigatorTreeLabelProvider.java
index c1d986aea..5ebab7759 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NavigatorTreeLabelProvider.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NavigatorTreeLabelProvider.java
@@ -21,8 +21,8 @@ import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jface.viewers.BaseLabelProvider;
 import org.eclipse.jface.viewers.ILabelProvider;
 import org.eclipse.swt.graphics.Image;
-import org.fortiss.tooling.kernel.interfaces.IModelElementHandler;
-import org.fortiss.tooling.kernel.services.IModelElementService;
+import org.fortiss.tooling.kernel.ui.interfaces.IModelElementHandler;
+import org.fortiss.tooling.kernel.ui.services.IModelElementService;
 
 /**
  * {@link ILabelProvider} for the model navigator tree.
diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NewMenu.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NewMenu.java
index 6abfcce69..0cae44aca 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NewMenu.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NewMenu.java
@@ -25,10 +25,10 @@ import org.eclipse.ui.actions.CompoundContributionItem;
 import org.fortiss.tooling.kernel.interfaces.IPrototypeProvider;
 import org.fortiss.tooling.kernel.services.ICommandStackService;
 import org.fortiss.tooling.kernel.services.ICompositorService;
-import org.fortiss.tooling.kernel.services.IModelElementService;
 import org.fortiss.tooling.kernel.services.IPrototypeService;
 import org.fortiss.tooling.kernel.services.IPrototypeService.Prototype;
 import org.fortiss.tooling.kernel.ui.services.IEditorService;
+import org.fortiss.tooling.kernel.ui.services.IModelElementService;
 import org.fortiss.tooling.kernel.ui.services.INavigatorService;
 import org.fortiss.tooling.kernel.ui.util.EObjectSelectionUtils;
 
diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/services/IEditorService.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/services/IEditorService.java
index cf68e7c52..968aec710 100644
--- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/services/IEditorService.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/services/IEditorService.java
@@ -39,6 +39,9 @@ public interface IEditorService {
 	/** Opens an editor for the given element. */
 	void openInEditor(EObject element);
 
+	/** Closes editors which depend on the given element or a sub-element. */
+	void closeEditors(EObject rootElement);
+
 	/** Returns registered editor bindings for the given {@link EObject}. */
 	List<IEditorBinding<EObject>> getBindings(EObject element);
 }
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/IModelElementService.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/services/IModelElementService.java
similarity index 90%
rename from org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/IModelElementService.java
rename to org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/services/IModelElementService.java
index 08810886f..d4a06451f 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/IModelElementService.java
+++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/services/IModelElementService.java
@@ -15,11 +15,11 @@ $Id$
 | See the License for the specific language governing permissions and      |
 | limitations under the License.                                           |
 +--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.services;
+package org.fortiss.tooling.kernel.ui.services;
 
 import org.eclipse.emf.ecore.EObject;
-import org.fortiss.tooling.kernel.interfaces.IModelElementHandler;
-import org.fortiss.tooling.kernel.internal.ModelElementService;
+import org.fortiss.tooling.kernel.ui.interfaces.IModelElementHandler;
+import org.fortiss.tooling.kernel.ui.internal.ModelElementService;
 
 /**
  * The model context service provides information about registered model
diff --git a/org.fortiss.tooling.kernel/trunk/META-INF/MANIFEST.MF b/org.fortiss.tooling.kernel/trunk/META-INF/MANIFEST.MF
index a360d8e6e..617d86ba6 100644
--- a/org.fortiss.tooling.kernel/trunk/META-INF/MANIFEST.MF
+++ b/org.fortiss.tooling.kernel/trunk/META-INF/MANIFEST.MF
@@ -7,21 +7,14 @@ Bundle-Activator: org.fortiss.tooling.kernel.ToolingKernelActivator
 Bundle-Vendor: fortiss
 Require-Bundle: org.eclipse.core.runtime;visibility:=reexport,
  org.eclipse.core.databinding;visibility:=reexport,
- org.eclipse.jface.databinding;bundle-version="1.4.0";visibility:=reexport,
- org.eclipse.ui;visibility:=reexport,
- org.eclipse.ui.views.properties.tabbed;bundle-version="3.5.100";visibility:=reexport,
  org.eclipse.emf.ecore;bundle-version="2.6.1";visibility:=reexport,
- org.eclipse.gef;visibility:=reexport,
  org.conqat.ide.commons;bundle-version="2.7.0";visibility:=reexport,
- org.conqat.ide.commons.ui;bundle-version="2.7.0";visibility:=reexport,
- org.conqat.ide.commons.gef;bundle-version="2.7.0";visibility:=reexport,
  org.eclipse.emf.ecore.xmi;bundle-version="2.5.0",
  org.eclipse.emf.transaction;bundle-version="1.4.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Export-Package: org.fortiss.tooling.kernel;uses:="org.eclipse.core.runtime,org.osgi.framework",
  org.fortiss.tooling.kernel.base;uses:="org.eclipse.emf.ecore,org.eclipse.swt.graphics,org.fortiss.tooling.kernel.interfaces",
- org.fortiss.tooling.kernel.databinding;uses:="org.eclipse.core.databinding.observable,org.eclipse.emf.ecore,org.eclipse.core.databinding.observable.value",
  org.fortiss.tooling.kernel.interfaces;
   uses:="org.eclipse.core.runtime,
    org.eclipse.emf.ecore,
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/EObjectAware2ServiceBase.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/EObjectAware2ServiceBase.java
index 7217c43d9..759bc7ceb 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/EObjectAware2ServiceBase.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/EObjectAware2ServiceBase.java
@@ -22,14 +22,14 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.conqat.ide.commons.ui.extension.ExtensionPointUtils;
-import org.conqat.ide.commons.ui.logging.LoggingUtils;
 import org.conqat.lib.commons.reflect.ReflectionUtils;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.emf.ecore.EObject;
 import org.fortiss.tooling.kernel.ToolingKernelActivator;
 import org.fortiss.tooling.kernel.interfaces.IEObjectAware2;
+import org.fortiss.tooling.kernel.util.ExtensionPointUtils;
+import org.fortiss.tooling.kernel.util.LoggingUtils;
 import org.osgi.framework.Bundle;
 
 /**
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/EObjectAwareServiceBase.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/EObjectAwareServiceBase.java
index 45877fd3c..b0bad78a3 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/EObjectAwareServiceBase.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/EObjectAwareServiceBase.java
@@ -22,14 +22,14 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 
-import org.conqat.ide.commons.ui.extension.ExtensionPointUtils;
-import org.conqat.ide.commons.ui.logging.LoggingUtils;
 import org.conqat.lib.commons.reflect.ReflectionUtils;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.emf.ecore.EObject;
 import org.fortiss.tooling.kernel.ToolingKernelActivator;
 import org.fortiss.tooling.kernel.interfaces.IEObjectAware;
+import org.fortiss.tooling.kernel.util.ExtensionPointUtils;
+import org.fortiss.tooling.kernel.util.LoggingUtils;
 import org.osgi.framework.Bundle;
 
 /**
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/CommandStackService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/CommandStackService.java
index 08967ffaa..ee60e0103 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/CommandStackService.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/CommandStackService.java
@@ -17,13 +17,13 @@ $Id$
 +--------------------------------------------------------------------------*/
 package org.fortiss.tooling.kernel.internal;
 
-import org.conqat.ide.commons.ui.logging.LoggingUtils;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.emf.ecore.EObject;
 import org.fortiss.tooling.kernel.ToolingKernelActivator;
 import org.fortiss.tooling.kernel.interfaces.ITopLevelElementContext;
 import org.fortiss.tooling.kernel.services.ICommandStackService;
 import org.fortiss.tooling.kernel.services.IPersistencyService;
+import org.fortiss.tooling.kernel.util.LoggingUtils;
 
 /**
  * This class implements the {@link ICommandStackService} interface. This class
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PrototypeService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PrototypeService.java
index 9b2aa11f5..d4ccf6db6 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PrototypeService.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PrototypeService.java
@@ -21,8 +21,6 @@ import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
 
-import org.conqat.ide.commons.ui.extension.ExtensionPointUtils;
-import org.conqat.ide.commons.ui.logging.LoggingUtils;
 import org.conqat.lib.commons.collections.CollectionUtils;
 import org.conqat.lib.commons.collections.UnmodifiableList;
 import org.eclipse.core.runtime.IConfigurationElement;
@@ -31,6 +29,8 @@ import org.fortiss.tooling.kernel.ToolingKernelActivator;
 import org.fortiss.tooling.kernel.interfaces.IPrototypeProvider;
 import org.fortiss.tooling.kernel.services.ICompositorService;
 import org.fortiss.tooling.kernel.services.IPrototypeService;
+import org.fortiss.tooling.kernel.util.ExtensionPointUtils;
+import org.fortiss.tooling.kernel.util.LoggingUtils;
 import org.osgi.framework.Bundle;
 
 /**
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/EMFTransactionalCommand.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/EMFTransactionalCommand.java
index 9e2266c81..0fbb72ac6 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/EMFTransactionalCommand.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/EMFTransactionalCommand.java
@@ -19,7 +19,6 @@ package org.fortiss.tooling.kernel.internal.storage.eclipse;
 
 import java.util.Collection;
 
-import org.conqat.ide.commons.ui.logging.LoggingUtils;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.emf.common.command.Command;
 import org.eclipse.emf.common.command.CompoundCommand;
@@ -29,6 +28,7 @@ import org.eclipse.emf.transaction.Transaction;
 import org.eclipse.emf.transaction.TransactionalEditingDomain;
 import org.eclipse.emf.transaction.impl.InternalTransactionalEditingDomain;
 import org.fortiss.tooling.kernel.ToolingKernelActivator;
+import org.fortiss.tooling.kernel.util.LoggingUtils;
 
 /**
  * This class wraps another EMF command and makes sure that all execute methods
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/EclipseResourceStorageProvider.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/EclipseResourceStorageProvider.java
index f17422b10..11bbd93d5 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/EclipseResourceStorageProvider.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/EclipseResourceStorageProvider.java
@@ -24,8 +24,6 @@ import java.util.IdentityHashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.conqat.ide.commons.ui.dialog.MessageUtils;
-import org.conqat.ide.commons.ui.logging.LoggingUtils;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
@@ -36,11 +34,11 @@ import org.eclipse.core.resources.IResourceDeltaVisitor;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.swt.widgets.Display;
 import org.fortiss.tooling.kernel.ToolingKernelActivator;
 import org.fortiss.tooling.kernel.interfaces.IStorageProvider;
 import org.fortiss.tooling.kernel.interfaces.ITopLevelElementContext;
 import org.fortiss.tooling.kernel.services.IPersistencyService;
+import org.fortiss.tooling.kernel.util.LoggingUtils;
 
 /**
  * This class implements the persistency service behavior for Eclipse file
@@ -138,39 +136,41 @@ public class EclipseResourceStorageProvider implements IResourceChangeListener,
 	private void handleChange(final IFile file) {
 		final ModelContext context = loadedContexts.get(file);
 		if (!context.getLastChangeWasIntended()) {
-			Display.getDefault().asyncExec(new Runnable() {
-				@Override
-				public void run() {
-					final boolean reload = MessageUtils.askQuestion(
-							"Reload changed file?",
-							"The file "
-									+ file.getName()
-									+ " changed on disk. "
-									+ "Load these changes? "
-									+ "Note that loading the changes will discard all editors, "
-									+ "so all unsaved changes and the undo history will be lost. "
-									+ "However if you do not reload now, "
-									+ "the contents of the file will be overwritten "
-									+ "the next time you perform a save.");
-
-					if (reload) {
-						unloadContext(file);
-						try {
-							loadContext(file).setLastChangeWasIntended();
-
-							// perform touch to make sure the viewer does a
-							// refresh
-							file.touch(null);
-						} catch (final Exception e) {
-							LoggingUtils.error(
-									ToolingKernelActivator.getDefault(),
-									"Had an error during reloading the file!",
-									e);
-						}
-					}
+			// TODO (FH): find a solution for this ui code
+			// Display.getDefault().asyncExec(new Runnable() {
+			// @Override
+			// public void run() {
+			// final boolean reload = true;
+			// // MessageUtils.askQuestion(
+			// // "Reload changed file?",
+			// // "The file "
+			// // + file.getName()
+			// // + " changed on disk. "
+			// // + "Load these changes? "
+			// // +
+			// // "Note that loading the changes will discard all editors, "
+			// // +
+			// // "so all unsaved changes and the undo history will be lost. "
+			// // + "However if you do not reload now, "
+			// // + "the contents of the file will be overwritten "
+			// // + "the next time you perform a save.");
+			//
+			// if (reload) {
+			// }
+			//
+			// }
+			// });
+			unloadContext(file);
+			try {
+				loadContext(file).setLastChangeWasIntended();
 
-				}
-			});
+				// perform touch to make sure the viewer does a
+				// refresh
+				file.touch(null);
+			} catch (final Exception e) {
+				LoggingUtils.error(ToolingKernelActivator.getDefault(),
+						"Had an error during reloading the file!", e);
+			}
 		}
 	}
 
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/ModelContext.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/ModelContext.java
index 580295108..fecedefb8 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/ModelContext.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/storage/eclipse/ModelContext.java
@@ -21,15 +21,12 @@ import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.lang.reflect.Method;
-import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Set;
 
-import org.conqat.ide.commons.ui.logging.LoggingUtils;
-import org.conqat.lib.commons.collections.IdentityHashSet;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.WorkspaceJob;
 import org.eclipse.core.runtime.CoreException;
@@ -46,12 +43,12 @@ import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.transaction.TransactionalCommandStack;
 import org.eclipse.emf.transaction.TransactionalEditingDomain;
-import org.eclipse.ui.IEditorPart;
 import org.fortiss.tooling.kernel.ToolingKernelActivator;
 import org.fortiss.tooling.kernel.interfaces.ITopLevelElementContext;
 import org.fortiss.tooling.kernel.model.IIdLabeled;
-import org.fortiss.tooling.kernel.services.IModelElementService;
+import org.fortiss.tooling.kernel.model.INamedElement;
 import org.fortiss.tooling.kernel.util.EMFResourceUtils;
+import org.fortiss.tooling.kernel.util.LoggingUtils;
 
 /**
  * The model context provides additional commands and hooks for a model.
@@ -79,12 +76,6 @@ class ModelContext implements ITopLevelElementContext {
 	/** The transactional command stack. */
 	private final AutoUndoCommandStack transactionalCommandStack;
 
-	/**
-	 * Set of editors which depend on this context. These editors are closed
-	 * when the underlying file is deleted or changed.
-	 */
-	private final Set<IEditorPart> dependentEditors = new IdentityHashSet<IEditorPart>();
-
 	/** Flag for remembering whether the last change of the file was intended. */
 	private boolean lastChangeWasIntended = false;
 
@@ -204,35 +195,11 @@ class ModelContext implements ITopLevelElementContext {
 		}
 	}
 
-	/**
-	 * Add a dependent editor part which will be closed when this context
-	 * becomes invalid.
-	 */
-	/* package */void addDependentEditor(IEditorPart editor) {
-		dependentEditors.add(editor);
-	}
-
-	/** Removes an editor added via {@link #addDependentEditor(IEditorPart)}. */
-	/* package */void removeDependentEditor(IEditorPart editor) {
-		dependentEditors.remove(editor);
-	}
-
 	/** Destroys this context and closes all dependent editors. */
 	public void destroy() {
 		// discard changes
 		((BasicCommandStack) editingDomain.getCommandStack()).saveIsDone();
 
-		List<IEditorPart> editors = new ArrayList<IEditorPart>(dependentEditors);
-		dependentEditors.clear();
-
-		for (final IEditorPart editor : editors) {
-			editor.getSite().getShell().getDisplay().asyncExec(new Runnable() {
-				@Override
-				public void run() {
-					editor.getSite().getPage().closeEditor(editor, false);
-				}
-			});
-		}
 	}
 
 	/** Returns the file associated with this model. */
@@ -377,10 +344,11 @@ class ModelContext implements ITopLevelElementContext {
 				children = result.eContents();
 			}
 			for (final EObject e : children) {
-				if (namePart.equals(IModelElementService.INSTANCE
-						.getModelElementHandler(e).getName(e))) {
-					result = e;
-					continue OUTER;
+				if (e instanceof INamedElement) {
+					if (namePart.equals(((INamedElement) e).getName())) {
+						result = e;
+						continue OUTER;
+					}
 				}
 			}
 			return null;
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/util/ExtensionPointUtils.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/util/ExtensionPointUtils.java
new file mode 100644
index 000000000..8f3c2c633
--- /dev/null
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/util/ExtensionPointUtils.java
@@ -0,0 +1,88 @@
+/*--------------------------------------------------------------------------+
+$Id$
+|                                                                          |
+| Copyright 2005-2010 Technische Universitaet Muenchen                     |
+|                                                                          |
+| Licensed under the Apache License, Version 2.0 (the "License");          |
+| you may not use this file except in compliance with the License.         |
+| You may obtain a copy of the License at                                  |
+|                                                                          |
+|    http://www.apache.org/licenses/LICENSE-2.0                            |
+|                                                                          |
+| Unless required by applicable law or agreed to in writing, software      |
+| distributed under the License is distributed on an "AS IS" BASIS,        |
+| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+| See the License for the specific language governing permissions and      |
+| limitations under the License.                                           |
++--------------------------------------------------------------------------*/
+package org.fortiss.tooling.kernel.util;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.fortiss.tooling.kernel.ToolingKernelActivator;
+import org.osgi.framework.Bundle;
+
+/**
+ * Utility methods for the extension points of plug-ins.
+ * 
+ * Note: This class originates form the org.conqat.ide.commons.ui
+ * implementation. It re-packaged with the kernel to avoid any dependency to
+ * eclipse.ui packages. See http://www.conqat.org for the original version.
+ * 
+ * @author hummelb
+ * @author $Author$
+ * @version $Rev$
+ * @levd.rating GREEN Hash: 3A6C32DF7541A73EFF1BBA7204FFB23D
+ */
+public class ExtensionPointUtils {
+
+	/** Load the given class and throws an exception in case of problems. */
+	public static Class<?> loadClass(String className, Bundle bundle)
+			throws ClassNotFoundException {
+		if (className == null) {
+			throw new ClassNotFoundException("Class name not configured.");
+		}
+		return bundle.loadClass(className);
+	}
+
+	/** Returns the bundle an extension is declared in. */
+	public static Bundle getBundle(IConfigurationElement configElement) {
+		Bundle bundle = Platform.getBundle(configElement
+				.getDeclaringExtension().getNamespaceIdentifier());
+		return bundle;
+	}
+
+	/**
+	 * Returns the {@link IConfigurationElement}s for a given extension point
+	 * and element name.
+	 */
+	@SuppressWarnings("unchecked")
+	public static List<IConfigurationElement> getConfigurationElements(
+			String extensionPointName, String configurationElementName) {
+		IExtensionPoint extensionPoint = Platform.getExtensionRegistry()
+				.getExtensionPoint(extensionPointName);
+		if (extensionPoint == null) {
+			LoggingUtils.log(ToolingKernelActivator.getDefault(),
+					"Could not find extension point " + extensionPointName,
+					IStatus.ERROR);
+			return Collections.EMPTY_LIST;
+		}
+
+		List<IConfigurationElement> configurationElements = new ArrayList<IConfigurationElement>();
+		for (IExtension e : extensionPoint.getExtensions()) {
+			for (IConfigurationElement ce : e.getConfigurationElements()) {
+				if (ce.getName().equals(configurationElementName)) {
+					configurationElements.add(ce);
+				}
+			}
+		}
+		return configurationElements;
+	}
+}
\ No newline at end of file
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/util/LoggingUtils.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/util/LoggingUtils.java
new file mode 100644
index 000000000..72c3b23b5
--- /dev/null
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/util/LoggingUtils.java
@@ -0,0 +1,96 @@
+/*--------------------------------------------------------------------------+
+$Id$
+|                                                                          |
+| Copyright 2005-2010 Technische Universitaet Muenchen                     |
+|                                                                          |
+| Licensed under the Apache License, Version 2.0 (the "License");          |
+| you may not use this file except in compliance with the License.         |
+| You may obtain a copy of the License at                                  |
+|                                                                          |
+|    http://www.apache.org/licenses/LICENSE-2.0                            |
+|                                                                          |
+| Unless required by applicable law or agreed to in writing, software      |
+| distributed under the License is distributed on an "AS IS" BASIS,        |
+| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+| See the License for the specific language governing permissions and      |
+| limitations under the License.                                           |
++--------------------------------------------------------------------------*/
+package org.fortiss.tooling.kernel.util;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.core.runtime.Status;
+
+/**
+ * Utility code for performing logging.
+ * 
+ * Note: This class originates form the org.conqat.ide.commons.ui
+ * implementation. It re-packaged with the kernel to avoid any dependency to
+ * eclipse.ui packages. See http://www.conqat.org for the original version.
+ * 
+ * @author hummelb
+ * @author schwitze
+ * @author $Author$
+ * @version $Rev$
+ * @levd.rating GREEN Hash: AA5D7661DFC5CC4BF4D59C1A84E5D471
+ */
+public class LoggingUtils {
+
+	/**
+	 * Logs a message that occurred in the context of the given plug-in with the
+	 * given severity.
+	 * 
+	 * @see IStatus
+	 * 
+	 * @param plugin
+	 *            The plug-in that logs the message in its context.
+	 * @param message
+	 *            The message text to log.
+	 * @param severity
+	 *            The severity of the log message. See {@link IStatus} for valid
+	 *            constants.
+	 * 
+	 */
+	public static void log(Plugin plugin, String message, int severity) {
+		log(plugin, message, severity, null);
+	}
+
+	/**
+	 * Logs a message that occurred in the context of the given plug-in with the
+	 * given severity and a given {@link Throwable} that originally caused this
+	 * log message.
+	 * 
+	 * @see IStatus
+	 * 
+	 * @param plugin
+	 *            The plug-in that logs the message in its context.
+	 * @param message
+	 *            The message text to log.
+	 * @param severity
+	 *            The severity of the log message. See {@link IStatus} for valid
+	 *            constants.
+	 * @param cause
+	 *            The {@link Throwable} that originally caused this log message.
+	 */
+	public static void log(Plugin plugin, String message, int severity,
+			Throwable cause) {
+		String pluginId = plugin.getBundle().getSymbolicName();
+		IStatus status = new Status(severity, pluginId, message, cause);
+		plugin.getLog().log(status);
+	}
+
+	/**
+	 * Logs an exception that occurred in the context of the given plug-in with
+	 * the severity {@link IStatus#ERROR}.
+	 * 
+	 * @param plugin
+	 *            The plug-in that logs the message in its context.
+	 * @param message
+	 *            The message text to log.
+	 * @param cause
+	 *            The {@link Throwable} that originally caused this log message.
+	 */
+	public static void error(Plugin plugin, String message, Throwable cause) {
+		log(plugin, message, IStatus.ERROR, cause);
+	}
+}
-- 
GitLab