RESOLVED - bug 286904: [modeling] Integrate Forms enhanced tooltips support in AbstractEmfFormPage
https://bugs.eclipse.org/bugs/show_bug.cgi?id=286904
diff --git a/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/editor/DSEditorConfig.java b/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/editor/DSEditorConfig.java
index 06521d2..588c002 100644
--- a/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/editor/DSEditorConfig.java
+++ b/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/editor/DSEditorConfig.java
@@ -8,7 +8,7 @@
  * Contributors:
  *     Anyware Technologies - initial API and implementation
  *
- * $Id: DSEditorConfig.java,v 1.4 2009/09/13 18:04:02 bcabe Exp $
+ * $Id: DSEditorConfig.java,v 1.5 2009/09/13 18:18:42 bcabe Exp $
  */
 package org.eclipse.pde.ds.ui.internal.editor;
 
@@ -34,4 +34,9 @@
 	public boolean isShowSourcePage() {
 		return true;
 	}
+
+	@Override
+	public boolean isUseRichFormsTooltips() {
+		return true;
+	}
 }
diff --git a/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/AbstractEmfFormPage.java b/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/AbstractEmfFormPage.java
index ef49440..7264986 100644
--- a/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/AbstractEmfFormPage.java
+++ b/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/AbstractEmfFormPage.java
@@ -8,7 +8,7 @@
  * Contributors:
  *     Anyware Technologies - initial API and implementation
  *
- * $Id: AbstractEmfFormPage.java,v 1.6 2009/07/28 16:38:44 bcabe Exp $
+ * $Id: AbstractEmfFormPage.java,v 1.7 2009/08/07 11:03:24 bcabe Exp $
  */
 package org.eclipse.pde.emfforms.editor;
 
@@ -16,12 +16,14 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.viewers.*;
+import org.eclipse.pde.emfforms.internal.validation.RichTooltipHyperlinkAdapter;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.ui.forms.IManagedForm;
 import org.eclipse.ui.forms.editor.FormPage;
 import org.eclipse.ui.forms.widgets.Form;
+import org.eclipse.ui.internal.forms.widgets.FormHeading;
 
 /**
  * Generic page for {@link EObject} edition
@@ -102,6 +104,10 @@
 			}
 		}
 
+		if (getEditor().getEditorConfig().isUseRichFormsTooltips()) {
+			managedForm.getForm().getForm().addMessageHyperlinkListener(new RichTooltipHyperlinkAdapter(managedForm));
+			((FormHeading) managedForm.getForm().getForm().getHead()).setMessageToolTipManager(null);
+		}
 	}
 
 	private void createHeader() {
diff --git a/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/DefaultEmfFormEditorConfig.java b/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/DefaultEmfFormEditorConfig.java
index 7552cd6..5b58a20 100644
--- a/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/DefaultEmfFormEditorConfig.java
+++ b/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/DefaultEmfFormEditorConfig.java
@@ -8,7 +8,7 @@
  * Contributors:
  *     Anyware Technologies - initial API and implementation
  *
- * $Id: DefaultEmfFormEditorConfig.java,v 1.6 2009/09/13 18:18:43 bcabe Exp $
+ * $Id: DefaultEmfFormEditorConfig.java,v 1.7 2009/09/13 19:50:28 bcabe Exp $
  */
 package org.eclipse.pde.emfforms.editor;
 
@@ -47,6 +47,10 @@
 		return false;
 	}
 
+	public boolean isUseRichFormsTooltips() {
+		return false;
+	}
+
 	public PDEFormToolkit createPDEFormToolkit(Display display) {
 		if (this.customizedToolkit != null) {
 			return this.customizedToolkit;
diff --git a/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/EmfFormEditor.java b/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/EmfFormEditor.java
index db1d4c4..b1eded3 100644
--- a/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/EmfFormEditor.java
+++ b/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/EmfFormEditor.java
@@ -8,7 +8,7 @@
  * Contributors:
  *     Anyware Technologies - initial API and implementation
  *
- * $Id: EmfFormEditor.java,v 1.27 2009/09/13 18:04:04 bcabe Exp $
+ * $Id: EmfFormEditor.java,v 1.28 2009/09/13 18:18:43 bcabe Exp $
  */
 package org.eclipse.pde.emfforms.editor;
 
@@ -785,6 +785,10 @@
 
 	public abstract String getID();
 
+	public IEmfFormEditorConfig<EmfFormEditor<O>, O> getEditorConfig() {
+		return _editorConfig;
+	}
+
 	/* package */void validate() {
 		// TODO perform validation in a separate job
 		_validator.validate();
diff --git a/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/IEmfFormEditorConfig.java b/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/IEmfFormEditorConfig.java
index c189d38..9149dcf 100644
--- a/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/IEmfFormEditorConfig.java
+++ b/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/IEmfFormEditorConfig.java
@@ -8,7 +8,7 @@
  * Contributors:
  *     Anyware Technologies - initial API and implementation
  *
- * $Id: IEmfFormEditorConfig.java,v 1.5 2009/09/13 18:04:04 bcabe Exp $
+ * $Id: IEmfFormEditorConfig.java,v 1.6 2009/09/13 18:18:43 bcabe Exp $
  */
 package org.eclipse.pde.emfforms.editor;
 
@@ -55,6 +55,8 @@
 
 	boolean isShowSourcePage();
 
+	boolean isUseRichFormsTooltips();
+
 	/**
 	 * 
 	 * @param display