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