From 8797ef4420a774cc24c8a0d002c28eab4df2ede3 Mon Sep 17 00:00:00 2001
From: Lukas Ladenberger <lukas.ladenberger@googlemail.com>
Date: Tue, 11 Dec 2012 11:57:07 +0100
Subject: [PATCH] working on observer view

---
 .../icons/eclipse16/linkto_help.gif           | Bin 0 -> 618 bytes
 de.bmotionstudio.gef.editor/plugin.xml        |   3 +-
 .../gef/editor/BMotionAbstractWizard.java     |  10 +++++++
 .../gef/editor/EditorImageRegistry.java       |   5 ++--
 .../gef/editor/observer/ObserverWizard.java   |   8 +++++
 .../gef/editor/observer/view/HelpAction.java  |  28 ++++++++++++++++++
 .../editor/observer/view/ObserverPage.java    |  25 ++++++++++++++--
 .../rodin/PerspectiveEditFactory.java         |   2 ++
 8 files changed, 75 insertions(+), 6 deletions(-)
 create mode 100644 de.bmotionstudio.gef.editor/icons/eclipse16/linkto_help.gif
 create mode 100644 de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/view/HelpAction.java

diff --git a/de.bmotionstudio.gef.editor/icons/eclipse16/linkto_help.gif b/de.bmotionstudio.gef.editor/icons/eclipse16/linkto_help.gif
new file mode 100644
index 0000000000000000000000000000000000000000..86550fe9f4505c88287a70add9bb89bd24d0e8b2
GIT binary patch
literal 618
zcmZ?wbhEHb6krfwc*el+@8AEApT0hL{PNG=|DQg8&8?ZTb<c^5*Y3GTR|Kau1*JBG
zq&0=4H^t_6#^rbB)J*A~v3la%^^4c;*|O)v`K$NtKYp22GbOubN>TI7l9pM;Aadrs
z)q57K*|TWvo`q|6FJ8NQ^PUs8?mzqR`TO%%?+Tk|_Rd*9f6bnGt9LJ4yJyG2Gh6na
zIC$#nnJf3^uGuqp_3o3G@14JP@4~gar?1?7^77r^fB#QixqIW`%j@@_J$Ui%-RJLL
zfB*mW_y3CzU+=wm_wv*CFTekP|MUOtr?21s{D1T5>(9Uc|NQ&^_0RtwfB%2~`~Ua9
z|KI-p|Ml<x$_*P&ojLOV|9^%-1{8m?FfuUsGw6Wa1&R{}_TvryP0cN>t$qs9JUr40
zer^8R{6g$3jO;?JY^{odOr}OcLMjYQg2K&y{Gz4;9DIBnTBf4>{r>WDZb}@IZp?gK
zZf=_LO;Uz7UM40!%DjADULsOWJT9)THZ~SqTspU%xSKd#Jf2(Kvv7Ux^4MQO*U{0_
zm_ydn^NX%TlZN`|rY9DO$tNZ$I{GaTc=F^>ud=(9!h?d86BDJy@@zAc9v$nG=cswZ
nP;}U3vXigQj)sei*?Gjp{G^ILEplmMQH{%JIT9S8z+epk<qr9R

literal 0
HcmV?d00001

diff --git a/de.bmotionstudio.gef.editor/plugin.xml b/de.bmotionstudio.gef.editor/plugin.xml
index a4ff042b..3a5e5027 100644
--- a/de.bmotionstudio.gef.editor/plugin.xml
+++ b/de.bmotionstudio.gef.editor/plugin.xml
@@ -49,7 +49,8 @@
             class="de.bmotionstudio.gef.editor.library.LibraryView"
             icon="icons/icon_library.gif"
             id="de.bmotionstudio.gef.editor.LibraryView"
-            name="BMS Library">
+            name="Library"
+            restorable="true">
       </view>
       <view
             allowMultiple="false"
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionAbstractWizard.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionAbstractWizard.java
index a1ff60af..fa865249 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionAbstractWizard.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionAbstractWizard.java
@@ -32,8 +32,18 @@ public abstract class BMotionAbstractWizard extends TrayDialog {
 		return this.control;
 	}
 
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+	}
+
 	public abstract String getName();
 	
+	@Override
+	protected int getShellStyle() {
+		return SWT.SHELL_TRIM;
+	}
+
 	@Override
 	protected Control createDialogArea(Composite parent) {
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/EditorImageRegistry.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/EditorImageRegistry.java
index 22a64fdc..72511e5f 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/EditorImageRegistry.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/EditorImageRegistry.java
@@ -70,8 +70,9 @@ public class EditorImageRegistry implements IBMotionStudioImageRegistry {
 				"org.eclipse.ui", "$nl$/icons/full/etool16/delete_edit.gif");
 		BMotionStudioImage.registerImage(IMG_ICON_DELETE_EDIT,
 				"org.eclipse.ui", "$nl$/icons/full/etool16/delete_edit.gif");
-		BMotionStudioImage.registerImage(IMG_ICON_HELP, "org.eclipse.ui",
-				"$nl$/icons/full/dlcl16/linkto_help.gif");
+		BMotionStudioImage.registerImage(IMG_ICON_HELP,
+				BMotionEditorPlugin.PLUGIN_ID,
+				"icons/eclipse16/linkto_help.gif");
 		BMotionStudioImage
 				.registerImage(IMG_ICON_TR_UP, BMotionEditorPlugin.PLUGIN_ID,
 						"icons/eclipse16/updated_co.gif");
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/ObserverWizard.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/ObserverWizard.java
index 9fdcc5b3..a281190d 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/ObserverWizard.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/ObserverWizard.java
@@ -8,6 +8,7 @@ package de.bmotionstudio.gef.editor.observer;
 
 import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.PlatformUI;
 
 import de.bmotionstudio.gef.editor.BMotionAbstractWizard;
 import de.bmotionstudio.gef.editor.model.BControl;
@@ -41,4 +42,11 @@ public abstract class ObserverWizard extends BMotionAbstractWizard {
 		return observer.getName();
 	}
 
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		PlatformUI.getWorkbench().getHelpSystem()
+				.setHelp(newShell, observer.getID());
+	}
+
 }
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/view/HelpAction.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/view/HelpAction.java
new file mode 100644
index 00000000..df48c6e9
--- /dev/null
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/view/HelpAction.java
@@ -0,0 +1,28 @@
+package de.bmotionstudio.gef.editor.observer.view;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.ui.PlatformUI;
+
+import de.bmotionstudio.gef.editor.BMotionStudioImage;
+
+public class HelpAction extends Action {
+
+	private String observerID;
+
+	public HelpAction() {
+		setText("Show help...");
+		setImageDescriptor(BMotionStudioImage
+				.getImageDescriptor("icons/eclipse16/linkto_help.gif"));
+		setEnabled(false);
+	}
+
+	@Override
+	public void run() {
+		PlatformUI.getWorkbench().getHelpSystem().displayHelp(observerID);
+	}
+
+	public void setObserverID(String observerID) {
+		this.observerID = observerID;
+	}
+
+}
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/view/ObserverPage.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/view/ObserverPage.java
index 23204cc4..3d21b76a 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/view/ObserverPage.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/observer/view/ObserverPage.java
@@ -21,6 +21,7 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.ISelectionListener;
 import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.part.IPageSite;
 import org.eclipse.ui.part.Page;
 
 import de.bmotionstudio.gef.editor.BMotionStudioImage;
@@ -40,7 +41,7 @@ public class ObserverPage extends Page implements ISelectionListener {
 
 	private Composite rightContainer;
 
-	private Control oControl;
+	private HelpAction helpAction;
 
 	@Override
 	public void createControl(Composite parent) {
@@ -114,6 +115,7 @@ public class ObserverPage extends Page implements ISelectionListener {
 
 			@Override
 			public void selectionChanged(SelectionChangedEvent event) {
+				restoreHelpButton();
 				if (rightContainer != null)
 					rightContainer.dispose();
 				if (event.getSelection() != null
@@ -132,6 +134,8 @@ public class ObserverPage extends Page implements ISelectionListener {
 								GridData.FILL_BOTH));
 						rightContainer.setLayout(new FillLayout());
 						wizard.createWizardContent(rightContainer);
+						helpAction.setEnabled(true);
+						helpAction.setObserverID(o.getID());
 					}
 				}
 				container.layout();
@@ -139,9 +143,19 @@ public class ObserverPage extends Page implements ISelectionListener {
 		});
 		
 		getSite().getPage().addPostSelectionListener(this);
+		createActions();
+		createMenu(getSite());
 
 	}
 
+	private void createActions() {
+		helpAction = new HelpAction();
+	}
+
+	private void createMenu(final IPageSite pageSite) {
+		pageSite.getActionBars().getToolBarManager().add(helpAction);
+	}
+
 	@Override
 	public Control getControl() {
 		return container;
@@ -170,8 +184,9 @@ public class ObserverPage extends Page implements ISelectionListener {
 						listViewer.setSelection(new StructuredSelection(
 								firstObserver));
 					} else {
-						if (oControl != null)
-							oControl.dispose();
+						restoreHelpButton();
+						if (rightContainer != null)
+							rightContainer.dispose();
 					}
 				}
 			}
@@ -184,4 +199,8 @@ public class ObserverPage extends Page implements ISelectionListener {
 		super.dispose();
 	}
 
+	private void restoreHelpButton() {
+		helpAction.setEnabled(false);
+	}
+
 }
diff --git a/de.bmotionstudio.rodin/src/de/bmotionstudio/rodin/PerspectiveEditFactory.java b/de.bmotionstudio.rodin/src/de/bmotionstudio/rodin/PerspectiveEditFactory.java
index 35a2c477..3dd55a03 100644
--- a/de.bmotionstudio.rodin/src/de/bmotionstudio/rodin/PerspectiveEditFactory.java
+++ b/de.bmotionstudio.rodin/src/de/bmotionstudio/rodin/PerspectiveEditFactory.java
@@ -11,6 +11,7 @@ import org.eclipse.ui.IPageLayout;
 import org.eclipse.ui.IPerspectiveFactory;
 
 import de.bmotionstudio.gef.editor.library.LibraryView;
+import de.bmotionstudio.gef.editor.observer.view.ObserverView;
 
 public class PerspectiveEditFactory implements IPerspectiveFactory {
 
@@ -37,6 +38,7 @@ public class PerspectiveEditFactory implements IPerspectiveFactory {
 				IPageLayout.BOTTOM, 0.75f, editorArea);
 		// Properties view
 		bottom.addView(IPageLayout.ID_PROP_SHEET);
+		bottom.addView(ObserverView.ID);
 
 	}
 
-- 
GitLab