From a6b538d0cb0554ee8e375f7bf0f76503847ad6e8 Mon Sep 17 00:00:00 2001
From: Lukas Ladenberger <lukas.ladenberger@googlemail.com>
Date: Fri, 31 Aug 2012 15:29:49 +0200
Subject: [PATCH] added context sensitive help for observer

---
 .../wizard/AbstractObserverWizardPage.java    | 30 +++++++++++++++++++
 .../WizardObserverCSwitchCoordinates.java     |  8 +++--
 ...ardObserverListenOperationByPredicate.java |  8 +++--
 .../wizard/WizardObserverSetAttribute.java    |  7 +++--
 .../WizardObserverSimpleValueDisplay.java     |  8 +++--
 .../WizardObserverSwitchCoordinates.java      |  8 +++--
 .../wizard/WizardObserverSwitchImage.java     |  7 +++--
 de.bmotionstudio.help/build.properties        |  4 ++-
 .../contextDefinitionFile.xml                 | 21 +++++++++++++
 de.bmotionstudio.help/plugin.xml              |  7 +++++
 10 files changed, 89 insertions(+), 19 deletions(-)
 create mode 100644 de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/AbstractObserverWizardPage.java
 create mode 100644 de.bmotionstudio.help/contextDefinitionFile.xml

diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/AbstractObserverWizardPage.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/AbstractObserverWizardPage.java
new file mode 100644
index 00000000..2450ad1a
--- /dev/null
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/AbstractObserverWizardPage.java
@@ -0,0 +1,30 @@
+/** 
+ * (c) 2009 Lehrstuhl fuer Softwaretechnik und Programmiersprachen, 
+ * Heinrich Heine Universitaet Duesseldorf
+ * This software is licenced under EPL 1.0 (http://www.eclipse.org/org/documents/epl-v10.html) 
+ * */
+
+package de.bmotionstudio.gef.editor.observer.wizard;
+
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.PlatformUI;
+
+import de.bmotionstudio.gef.editor.observer.Observer;
+
+public class AbstractObserverWizardPage extends WizardPage {
+
+	private Observer observer;
+
+	protected AbstractObserverWizardPage(String pageName, Observer observer) {
+		super(pageName);
+		this.observer = observer;
+	}
+
+	@Override
+	public void createControl(Composite parent) {
+		PlatformUI.getWorkbench().getHelpSystem()
+				.setHelp(parent, observer.getClass().getName());
+	}
+
+}
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverCSwitchCoordinates.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverCSwitchCoordinates.java
index 38305895..ff64394f 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverCSwitchCoordinates.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverCSwitchCoordinates.java
@@ -21,7 +21,6 @@ import org.eclipse.jface.viewers.ITableLabelProvider;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
@@ -55,16 +54,19 @@ public class WizardObserverCSwitchCoordinates extends ObserverWizard {
 
 	private String lastChangedControlID;
 
-	private class ObserverCSwitchCoordinatesPage extends WizardPage {
+	private class ObserverCSwitchCoordinatesPage extends
+			AbstractObserverWizardPage {
 
 		private TableViewer tableViewer;
 
 		protected ObserverCSwitchCoordinatesPage(final String pageName) {
-			super(pageName);
+			super(pageName, getObserver());
 		}
 
 		public void createControl(Composite parent) {
 
+			super.createControl(parent);
+
 			DataBindingContext dbc = new DataBindingContext();
 
 			Composite container = new Composite(parent, SWT.NONE);
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverListenOperationByPredicate.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverListenOperationByPredicate.java
index e5bf19cf..cb308453 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverListenOperationByPredicate.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverListenOperationByPredicate.java
@@ -30,7 +30,6 @@ import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CCombo;
 import org.eclipse.swt.events.FocusEvent;
@@ -68,16 +67,19 @@ public class WizardObserverListenOperationByPredicate extends ObserverWizard {
 
 	private String lastChangedAttributeID;
 
-	private class ObserverListenOperationByPredicatePage extends WizardPage {
+	private class ObserverListenOperationByPredicatePage extends
+			AbstractObserverWizardPage {
 
 		private TableViewer tableViewer;
 
 		protected ObserverListenOperationByPredicatePage(final String pageName) {
-			super(pageName);
+			super(pageName, getObserver());
 		}
 
 		public void createControl(final Composite parent) {
 
+			super.createControl(parent);
+
 			DataBindingContext dbc = new DataBindingContext();
 
 			Composite container = new Composite(parent, SWT.NONE);
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSetAttribute.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSetAttribute.java
index fae15b93..9e55dcc0 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSetAttribute.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSetAttribute.java
@@ -29,7 +29,6 @@ import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CCombo;
 import org.eclipse.swt.events.FocusEvent;
@@ -68,18 +67,20 @@ public class WizardObserverSetAttribute extends ObserverWizard {
 
 	private String lastChangedAttributeID;
 
-	private class WizardSetAttributePage extends WizardPage {
+	private class WizardSetAttributePage extends AbstractObserverWizardPage {
 
 		private WritableList input;
 
 		private TableViewer tableViewer;
 
 		protected WizardSetAttributePage(final String pageName) {
-			super(pageName);
+			super(pageName, getObserver());
 		}
 
 		public void createControl(Composite parent) {
 
+			super.createControl(parent);
+
 			DataBindingContext dbc = new DataBindingContext();
 
 			GridLayout gl = new GridLayout(1, true);
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSimpleValueDisplay.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSimpleValueDisplay.java
index f8a70400..1f9a6b76 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSimpleValueDisplay.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSimpleValueDisplay.java
@@ -10,7 +10,6 @@ import org.eclipse.core.databinding.DataBindingContext;
 import org.eclipse.core.databinding.beans.BeansObservables;
 import org.eclipse.jface.databinding.swt.SWTObservables;
 import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.graphics.Font;
 import org.eclipse.swt.graphics.FontData;
@@ -29,7 +28,8 @@ import de.bmotionstudio.gef.editor.observer.SimpleValueDisplay;
 
 public class WizardObserverSimpleValueDisplay extends ObserverWizard {
 
-	private class ObserverSimpleValueDisplayPage extends WizardPage {
+	private class ObserverSimpleValueDisplayPage extends
+			AbstractObserverWizardPage {
 
 		private Text txtReplacementString;
 		private Text txtExpression;
@@ -40,11 +40,13 @@ public class WizardObserverSimpleValueDisplay extends ObserverWizard {
 		}
 
 		protected ObserverSimpleValueDisplayPage(final String pageName) {
-			super(pageName);
+			super(pageName, getObserver());
 		}
 
 		public void createControl(final Composite parent) {
 
+			super.createControl(parent);
+
 			final DataBindingContext dbc = new DataBindingContext();
 
 			Composite container = new Composite(parent, SWT.NONE);
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSwitchCoordinates.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSwitchCoordinates.java
index b0082eef..12146bfe 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSwitchCoordinates.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSwitchCoordinates.java
@@ -22,7 +22,6 @@ import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
@@ -54,16 +53,19 @@ import de.bmotionstudio.gef.editor.util.BMotionWizardUtil;
 
 public class WizardObserverSwitchCoordinates extends ObserverWizard {
 
-	private class ObserverToggleCoordinatesPage extends WizardPage {
+	private class ObserverToggleCoordinatesPage extends
+			AbstractObserverWizardPage {
 
 		private TableViewer tableViewer;
 
 		protected ObserverToggleCoordinatesPage(final String pageName) {
-			super(pageName);
+			super(pageName, getObserver());
 		}
 
 		public void createControl(Composite parent) {
 
+			super.createControl(parent);
+
 			DataBindingContext dbc = new DataBindingContext();
 
 			Composite container = new Composite(parent, SWT.NONE);
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSwitchImage.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSwitchImage.java
index b9e689f1..61e83313 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSwitchImage.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/wizard/WizardObserverSwitchImage.java
@@ -22,7 +22,6 @@ import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.wizard.WizardPage;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
@@ -56,16 +55,18 @@ import de.bmotionstudio.gef.editor.util.BMotionWizardUtil;
 
 public class WizardObserverSwitchImage extends ObserverWizard {
 
-	private class ObserverSwitchImagePage extends WizardPage {
+	private class ObserverSwitchImagePage extends AbstractObserverWizardPage {
 
 		private TableViewer tableViewer;
 
 		protected ObserverSwitchImagePage(final String pageName) {
-			super(pageName);
+			super(pageName, getObserver());
 		}
 
 		public void createControl(final Composite parent) {
 
+
+
 			DataBindingContext dbc = new DataBindingContext();
 
 			Composite container = new Composite(parent, SWT.NONE);
diff --git a/de.bmotionstudio.help/build.properties b/de.bmotionstudio.help/build.properties
index 6164c6c0..09563db7 100644
--- a/de.bmotionstudio.help/build.properties
+++ b/de.bmotionstudio.help/build.properties
@@ -7,4 +7,6 @@ bin.includes = META-INF/,\
                images/,\
                User_Guide/,\
                about.html,\
-               doc/
+               doc/,\
+               User-Guide-Glossary-toc.xml,\
+               contextDefinitionFile.xml
diff --git a/de.bmotionstudio.help/contextDefinitionFile.xml b/de.bmotionstudio.help/contextDefinitionFile.xml
new file mode 100644
index 00000000..6fa0faad
--- /dev/null
+++ b/de.bmotionstudio.help/contextDefinitionFile.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<contexts>
+  <context id="SwitchChildCoordinates">
+    <topic href="User_Guide/Reference/Observer.html#Switch_Child_Coordinates" label="Switch Child Coordinates Observer" />
+  </context>
+   <context id="SwitchCoordinates">
+      <topic href="User_Guide/Reference/Observer.html#Switch_Coordinates" label="Switch Coordinates Observer"/>
+   </context>
+   <context id="SetAttribute">
+      <topic href="User_Guide/Reference/Observer.html#Set_Attribute" label="Set Attribute Observer"/>
+   </context>
+   <context id="SimpleValueDisplay">
+      <topic href="User_Guide/Reference/Observer.html#Simple_Value_Display" label="Simple Value Display Observer"/>
+   </context>
+   <context id="SwitchImage">
+      <topic href="User_Guide/Reference/Observer.html#Switch_Image" label="Switch Image Observer"/>
+   </context>
+   <context id="ListenOperationByPredicate">
+      <topic href="User_Guide/Reference/Observer.html#Listen_Operation" label="Listen Operation Observer"/>
+   </context>
+</contexts> 
diff --git a/de.bmotionstudio.help/plugin.xml b/de.bmotionstudio.help/plugin.xml
index 15735205..edb7436b 100644
--- a/de.bmotionstudio.help/plugin.xml
+++ b/de.bmotionstudio.help/plugin.xml
@@ -19,5 +19,12 @@
             primary="false">
       </toc>
    </extension>
+   <extension
+         point="org.eclipse.help.contexts">
+      <contexts
+            file="contextDefinitionFile.xml"
+            plugin="de.bmotionstudio.gef.editor.observer">
+      </contexts>
+   </extension>
 
 </plugin>
-- 
GitLab