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 ae868f1be4e131bdfb489e51a4fb366960527fed..bdb5cee237aef3008ada0da44165f76cf121c2f3 100644 --- a/org.fortiss.tooling.kernel.ui/trunk/META-INF/MANIFEST.MF +++ b/org.fortiss.tooling.kernel.ui/trunk/META-INF/MANIFEST.MF @@ -16,7 +16,6 @@ Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Bundle-Vendor: fortiss Export-Package: org.fortiss.tooling.kernel.ui, - org.fortiss.tooling.kernel.ui.databinding, org.fortiss.tooling.kernel.ui.extension, org.fortiss.tooling.kernel.ui.extension.base, org.fortiss.tooling.kernel.ui.extension.data, diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/databinding/EObjectObservableValue.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/databinding/EObjectObservableValue.java deleted file mode 100644 index 4e9caba2441d7d447ca38022517bdf413878d13c..0000000000000000000000000000000000000000 --- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/databinding/EObjectObservableValue.java +++ /dev/null @@ -1,128 +0,0 @@ -/*--------------------------------------------------------------------------+ -$Id$ -| | -| Copyright 2011 ForTISS GmbH | -| | -| 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.ui.databinding; - -import org.eclipse.core.databinding.observable.Diffs; -import org.eclipse.core.databinding.observable.Realm; -import org.eclipse.core.databinding.observable.value.AbstractObservableValue; -import org.eclipse.core.databinding.observable.value.IObservableValue; -import org.eclipse.emf.common.notify.Adapter; -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.impl.AdapterImpl; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.EAttribute; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EReference; -import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.swt.widgets.Display; -import org.fortiss.tooling.kernel.service.ICommandStackService; - -/** - * Implementation of {@link IObservableValue} for {@link EObject}s. - * - * @author hummel - * @author $Author$ - * @version $Rev$ - * @ConQAT.Rating GREEN Hash: 94D2F02DEDBCCDFD7ABC432477684C9B - */ -public class EObjectObservableValue extends AbstractObservableValue { - - /** The wrapped object. */ - private final EObject eObject; - - /** The wrapped structural feature. */ - private final EStructuralFeature structuralFeature; - - /** Flag used for detecting our own updates. */ - private boolean updating = false; - - /** The adapter for sending change events. */ - private final Adapter modelChangeAdapter = new AdapterImpl() { - /** {@inheritDoc} */ - @Override - public void notifyChanged(final Notification msg) { - if (!updating && msg.getFeature() == structuralFeature) { - Display.getDefault().asyncExec(new Runnable() { - @Override - public void run() { - fireValueChange(Diffs.createValueDiff( - msg.getOldValue(), msg.getNewValue())); - } - }); - } - } - }; - - /** Constructor. */ - public EObjectObservableValue(Realm realm, EObject eObject, - EStructuralFeature structuralFeature) { - super(realm); - this.eObject = eObject; - this.structuralFeature = structuralFeature; - - eObject.eAdapters().add(modelChangeAdapter); - } - - /** {@inheritDoc} */ - @Override - public synchronized void dispose() { - eObject.eAdapters().remove(modelChangeAdapter); - super.dispose(); - } - - /** {@inheritDoc} */ - @Override - protected Object doGetValue() { - return eObject.eGet(structuralFeature); - } - - /** {@inheritDoc} */ - @Override - protected void doSetValue(final Object value) { - Object oldValue = doGetValue(); - if (oldValue == null && value == null || oldValue != null - && oldValue.equals(value)) { - return; - } - - updating = true; - ICommandStackService.INSTANCE.runAsCommand(eObject, new Runnable() { - @Override - public void run() { - eObject.eSet(structuralFeature, value); - } - }); - updating = false; - } - - /** {@inheritDoc} */ - @Override - public Object getValueType() { - if (structuralFeature.isMany()) { - return EList.class; - } - - if (structuralFeature instanceof EAttribute) { - return ((EAttribute) structuralFeature).getEAttributeType() - .getInstanceClass(); - } - return ((EReference) structuralFeature).getEReferenceType() - .getInstanceClass(); - } - -} diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/databinding/Observables.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/databinding/Observables.java deleted file mode 100644 index ab4a5a430f6db9e87589261b71447cf0a535fe8f..0000000000000000000000000000000000000000 --- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/databinding/Observables.java +++ /dev/null @@ -1,48 +0,0 @@ -/*--------------------------------------------------------------------------+ -$Id$ -| | -| Copyright 2011 ForTISS GmbH | -| | -| 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.ui.databinding; - -import org.conqat.lib.commons.assertion.CCSMPre; -import org.eclipse.core.databinding.observable.Realm; -import org.eclipse.core.databinding.observable.value.IObservableValue; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EStructuralFeature; - -/** - * Observerables for {@link EObject} models. - * - * @author hummel - * @author $Author$ - * @version $Rev$ - * @ConQAT.Rating GREEN Hash: 714FEC022718BEA0D783DC7A39A08742 - */ -public class Observables { - - /** Returns an observable for the given object and structural feature. */ - public static IObservableValue observeValue(EObject eObject, - EStructuralFeature structuralFeature) { - return observeValue(Realm.getDefault(), eObject, structuralFeature); - } - - /** Returns an observable for the given object and structural feature. */ - public static IObservableValue observeValue(Realm realm, EObject eObject, - EStructuralFeature structuralFeature) { - CCSMPre.isTrue(eObject != null, "Can not observe null value!"); - return new EObjectObservableValue(realm, eObject, structuralFeature); - } -} diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/databinding/package.html b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/databinding/package.html deleted file mode 100644 index e6cd7c22577eacf40c385337d417f3e28d3f4e8c..0000000000000000000000000000000000000000 --- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/databinding/package.html +++ /dev/null @@ -1,8 +0,0 @@ -<!-- - $Id$ - @version $Rev$ - @ConQAT.Rating GREEN Hash: 996283773B2EC0D22D4A844A3C9E30A8 ---> -<body> -Support classes for using the data binding mechanism with EMF EObjects. -</body> diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/EObjectActionBase.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/EObjectActionBase.java index 789263ed8b40e224406a2fe31142fbcde7f5ffca..29b2eed21a1f0988fabb2b72403089985fd14bba 100644 --- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/EObjectActionBase.java +++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/EObjectActionBase.java @@ -48,4 +48,5 @@ public abstract class EObjectActionBase extends Action { public EObject getTarget() { return target; } + } diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/PropertySectionBase.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/PropertySectionBase.java index d6f835945be7d9c5240fcc7f4cd88767b1c8a8a5..45f53d68ca03faa09099fdf99cdc4e8d42f5fe67 100644 --- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/PropertySectionBase.java +++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/extension/base/PropertySectionBase.java @@ -20,11 +20,11 @@ package org.fortiss.tooling.kernel.ui.extension.base; import org.conqat.ide.commons.ui.databinding.validate.NumberPositiveValidator; import org.conqat.ide.commons.ui.databinding.validate.TextToDoubleValidator; import org.conqat.ide.commons.ui.databinding.validate.TextToIntegerValidator; -import org.eclipse.core.databinding.DataBindingContext; import org.eclipse.core.databinding.conversion.NumberToStringConverter; import org.eclipse.core.databinding.conversion.StringToNumberConverter; import org.eclipse.core.databinding.observable.value.IObservableValue; import org.eclipse.core.databinding.validation.IValidator; +import org.eclipse.emf.databinding.EMFDataBindingContext; import org.eclipse.gef.EditPart; import org.eclipse.jface.fieldassist.ControlDecoration; import org.eclipse.jface.layout.GridDataFactory; @@ -60,7 +60,7 @@ public abstract class PropertySectionBase extends AbstractPropertySection { protected Composite composite; /** Stores the data binding context used. */ - protected DataBindingContext dbc = new DataBindingContext(); + protected EMFDataBindingContext dbc = new EMFDataBindingContext(); /** {@inheritDoc} */ @Override @@ -144,7 +144,7 @@ public abstract class PropertySectionBase extends AbstractPropertySection { @Override public void refresh() { dbc.dispose(); - dbc = new DataBindingContext(); + dbc = new EMFDataBindingContext(); } /** Binds a positive double value. */ 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 66443a0db1596f4a39fbed0d82d7da12f9d5ef7c..663e0b6995e8d6c935bad593b235419b309e3122 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 @@ -18,6 +18,7 @@ $Id$ package org.fortiss.tooling.kernel.ui.internal.properties; import org.eclipse.core.databinding.observable.value.IObservableValue; +import org.eclipse.emf.databinding.EMFObservables; import org.eclipse.jface.databinding.swt.SWTObservables; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; @@ -25,7 +26,6 @@ import org.eclipse.swt.widgets.Text; import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage; import org.fortiss.tooling.kernel.model.FortissToolingKernelPackage; import org.fortiss.tooling.kernel.model.IIdLabeled; -import org.fortiss.tooling.kernel.ui.databinding.Observables; import org.fortiss.tooling.kernel.ui.extension.base.PropertySectionBase; /** @@ -65,8 +65,9 @@ public class IdLabeledPropertySection extends PropertySectionBase { public void refresh() { super.refresh(); - IObservableValue modelObservable = Observables.observeValue(idLabeled, - FortissToolingKernelPackage.Literals.IID_LABELED__ID); + IObservableValue modelObservable = EMFObservables + .observeValue(idLabeled, + FortissToolingKernelPackage.Literals.IID_LABELED__ID); dbc.bindValue(SWTObservables.observeText(idText, SWT.None), modelObservable, null, null); } 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 1dfaee3b66f617b5a335102dc93595fc7c2aa0b5..3d19626eb71d940a6a4ed7666f94a509f0c29ef4 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 @@ -18,6 +18,7 @@ $Id$ package org.fortiss.tooling.kernel.ui.internal.properties; import org.eclipse.core.databinding.observable.value.IObservableValue; +import org.eclipse.emf.databinding.EMFObservables; import org.eclipse.jface.databinding.swt.SWTObservables; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; @@ -25,7 +26,6 @@ import org.eclipse.swt.widgets.Text; import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage; import org.fortiss.tooling.kernel.model.FortissToolingKernelPackage; import org.fortiss.tooling.kernel.model.INamedCommentedElement; -import org.fortiss.tooling.kernel.ui.databinding.Observables; import org.fortiss.tooling.kernel.ui.extension.base.PropertySectionBase; /** @@ -73,12 +73,12 @@ public class NamedCommentedPropertySection extends PropertySectionBase { public void refresh() { super.refresh(); - IObservableValue modelObservable = Observables.observeValue( + IObservableValue modelObservable = EMFObservables.observeValue( namedCommented, FortissToolingKernelPackage.Literals.INAMED_ELEMENT__NAME); dbc.bindValue(SWTObservables.observeText(nameText, SWT.FocusOut), modelObservable, null, null); - modelObservable = Observables + modelObservable = EMFObservables .observeValue( namedCommented, FortissToolingKernelPackage.Literals.INAMED_COMMENTED_ELEMENT__COMMENT); diff --git a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NavigatorViewPart.java b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NavigatorViewPart.java index 9909358270f4283c4af7c7af19669e9ab6605408..fe47cf1ddf9385b8cb0bdc437e20a6acdbb4df6c 100644 --- a/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NavigatorViewPart.java +++ b/org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NavigatorViewPart.java @@ -64,6 +64,7 @@ import org.fortiss.tooling.kernel.ui.service.IModelEditorBindingService; import org.fortiss.tooling.kernel.ui.service.INavigatorService; import org.fortiss.tooling.kernel.ui.service.IPropertiesService; import org.fortiss.tooling.kernel.ui.util.EObjectSelectionUtils; +import org.fortiss.tooling.kernel.ui.util.ModelElementLabelProvider; /** * {@link ViewPart} of the model navigator provided by the tooling kernel. @@ -127,7 +128,7 @@ public final class NavigatorViewPart extends ViewPart implements IDecoratorManager decoratorManager = PlatformUI.getWorkbench() .getDecoratorManager(); viewer.setLabelProvider(new DecoratingLabelProvider( - new NavigatorTreeLabelProvider(), decoratorManager + new ModelElementLabelProvider(), decoratorManager .getLabelDecorator())); viewer.setContentProvider(new NavigatorTreeContentProvider()); 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/util/ModelElementLabelProvider.java similarity index 78% rename from org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/internal/views/NavigatorTreeLabelProvider.java rename to org.fortiss.tooling.kernel.ui/trunk/src/org/fortiss/tooling/kernel/ui/util/ModelElementLabelProvider.java index 56baecb76f94aa3b3cc4645667c86ed8405cf87f..14bf57e7bb7dfbb212bb01e23a8202b73a5df2bf 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/util/ModelElementLabelProvider.java @@ -15,51 +15,47 @@ $Id$ | See the License for the specific language governing permissions and | | limitations under the License. | +--------------------------------------------------------------------------*/ -package org.fortiss.tooling.kernel.ui.internal.views; +package org.fortiss.tooling.kernel.ui.util; import org.eclipse.emf.ecore.EObject; -import org.eclipse.jface.viewers.BaseLabelProvider; -import org.eclipse.jface.viewers.ILabelProvider; +import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.graphics.Image; import org.fortiss.tooling.kernel.ui.extension.IModelElementHandler; import org.fortiss.tooling.kernel.ui.service.IModelElementHandlerService; /** - * {@link ILabelProvider} for the model navigator tree. * - * @author hoelzlf + * @author mou * @author $Author$ * @version $Rev$ - * @ConQAT.Rating GREEN Hash: FFAE22D5782B4A3DB33744FDE430B00D + * @ConQAT.Rating RED Hash: */ -public final class NavigatorTreeLabelProvider extends BaseLabelProvider - implements ILabelProvider { - +public class ModelElementLabelProvider extends LabelProvider { /** {@inheritDoc} */ @Override - public Image getImage(Object element) { - // delegate to the model element handlers + public String getText(Object element) { if (element instanceof EObject) { IModelElementHandler<EObject> handler = IModelElementHandlerService.INSTANCE .getModelElementHandler((EObject) element); - if (handler != null) { - return handler.getIcon(); - } + + if (handler != null) + return handler.getName((EObject) element); } - return null; + + return super.getText(element); } /** {@inheritDoc} */ @Override - public String getText(Object element) { - // delegate to the model element handlers + public Image getImage(Object element) { if (element instanceof EObject) { IModelElementHandler<EObject> handler = IModelElementHandlerService.INSTANCE .getModelElementHandler((EObject) element); - if (handler != null) { - return handler.getName((EObject) element); - } + + if (handler != null) + return handler.getIcon(); } - return ""; + + return super.getImage(element); } }