Bug 479936 - Show UUIDs of DMRs in Tooling
* Shown as tooltip
Change-Id: I8c857d0da88223e511aa45d532dd5738073cf78e
Signed-off-by: Johannes Faltermeier <jfaltermeier@eclipsesource.com>
diff --git a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/DomainModelReferenceControlSWTRenderer.java b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/DomainModelReferenceControlSWTRenderer.java
index 25b2779..b85d6bd 100644
--- a/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/DomainModelReferenceControlSWTRenderer.java
+++ b/bundles/org.eclipse.emf.ecp.ui.view.editor.controls/src/org/eclipse/emf/ecp/view/internal/editor/controls/DomainModelReferenceControlSWTRenderer.java
@@ -11,6 +11,7 @@
******************************************************************************/
package org.eclipse.emf.ecp.view.internal.editor.controls;
+import java.text.MessageFormat;
import java.util.Collection;
import java.util.HashSet;
@@ -28,6 +29,7 @@
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.impl.EReferenceImpl;
+import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecp.core.util.ECPUtil;
import org.eclipse.emf.ecp.edit.internal.swt.SWTImageHelper;
import org.eclipse.emf.ecp.edit.spi.swt.reference.DeleteReferenceAction;
@@ -44,6 +46,7 @@
import org.eclipse.emf.ecp.view.spi.model.VControl;
import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
+import org.eclipse.emf.ecp.view.spi.model.util.VViewResourceImpl;
import org.eclipse.emf.ecp.view.spi.table.model.VTableDomainModelReference;
import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
import org.eclipse.emf.edit.command.SetCommand;
@@ -58,6 +61,7 @@
import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
import org.eclipse.emfforms.spi.localization.LocalizationServiceHelper;
import org.eclipse.jface.action.Action;
+import org.eclipse.jface.databinding.swt.ISWTObservableValue;
import org.eclipse.jface.databinding.swt.WidgetProperties;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.layout.GridLayoutFactory;
@@ -144,7 +148,7 @@
@Override
protected Binding[] createBindings(Control control) throws DatabindingFailedException {
- final Binding[] bindings = new Binding[2];
+ final Binding[] bindings = new Binding[3];
final IObservableValue value = WidgetProperties.text().observe(setLabel);
bindings[0] = getDataBindingContext().bindValue(value, getModelValue(), new UpdateValueStrategy() {
@@ -175,6 +179,26 @@
}
});
+ final ISWTObservableValue setLabelTooltip = WidgetProperties.tooltipText().observe(setLabel);
+ bindings[2] = getDataBindingContext().bindValue(
+ setLabelTooltip,
+ getModelValue(),
+ new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER),
+ new UpdateValueStrategy() {
+ @Override
+ public Object convert(Object value) {
+ if (!EObject.class.isInstance(value)) {
+ return ""; //$NON-NLS-1$
+ }
+ final EObject eObject = EObject.class.cast(value);
+ final Resource resource = eObject.eResource();
+ if (!VViewResourceImpl.class.isInstance(resource)) {
+ return ""; //$NON-NLS-1$
+ }
+ final String id = VViewResourceImpl.class.cast(resource).getID(eObject);
+ return MessageFormat.format("UUID: {0}", id); //$NON-NLS-1$
+ }
+ });
return bindings;
}