Просмотр исходного кода

Reactivated Help Context in Property Pages

Andreas Mülder 14 лет назад
Родитель
Сommit
f6ae24b994
12 измененных файлов с 114 добавлено и 49 удалено
  1. 2 2
      plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/editor/StatechartDiagramEditor.java
  2. 2 2
      plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/editparts/EntryEditPart.java
  3. 2 2
      plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/editparts/StateTextCompartmentExpressionEditPart.java
  4. 2 2
      plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/editparts/StatechartTextExpressionEditPart.java
  5. 2 2
      plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/editparts/TransitionExpressionEditPart.java
  6. 3 3
      plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/policies/ContextSensitiveHelpPolicy.java
  7. 38 21
      plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/propertysheets/AbstractEditorPropertySection.java
  8. 18 3
      plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/propertysheets/AbstractTwoColumnEditorPropertySection.java
  9. 13 4
      plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/propertysheets/StatePropertySection.java
  10. 11 0
      plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/propertysheets/StatechartPropertySection.java
  11. 9 1
      plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/propertysheets/TransitionPropertySection.java
  12. 12 7
      plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/utils/IYakinduSctHelpContextIds.java

+ 2 - 2
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/editor/StatechartDiagramEditor.java

@@ -36,7 +36,7 @@ import org.eclipse.ui.help.IWorkbenchHelpSystem;
 import org.eclipse.ui.ide.IGotoMarker;
 import org.eclipse.xtext.ui.XtextProjectHelper;
 import org.yakindu.sct.ui.editor.DiagramActivator;
-import org.yakindu.sct.ui.editor.utils.IYakinduSctHelpContextIds;
+import org.yakindu.sct.ui.editor.utils.HelpContextIds;
 import org.yakindu.sct.ui.editor.validation.ValidationAction;
 
 import de.itemis.xtext.utils.gmf.resource.DirtyStateListener;
@@ -131,7 +131,7 @@ public class StatechartDiagramEditor extends DiagramDocumentEditor implements
 		IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench()
 				.getHelpSystem();
 		helpSystem.setHelp(getGraphicalViewer().getControl(),
-				IYakinduSctHelpContextIds.SC_EDITOR_GRAPHICAL_VIEWER);
+				HelpContextIds.SC_EDITOR_GRAPHICAL_VIEWER);
 	}
 
 	@Override

+ 2 - 2
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/editparts/EntryEditPart.java

@@ -27,7 +27,7 @@ import org.yakindu.sct.ui.editor.editor.figures.InitialStateFigure;
 import org.yakindu.sct.ui.editor.editor.figures.ShallowHistoryFigure;
 import org.yakindu.sct.ui.editor.editor.figures.utils.MapModeUtils;
 import org.yakindu.sct.ui.editor.policies.ContextSensitiveHelpPolicy;
-import org.yakindu.sct.ui.editor.utils.IYakinduSctHelpContextIds;
+import org.yakindu.sct.ui.editor.utils.HelpContextIds;
 
 import de.itemis.gmf.runtime.commons.editpolicies.OneWayConnectionHandlesEditPolicy;
 import de.itemis.gmf.runtime.commons.figures.EllipseAnchorDefaultSizeNodeFigure;
@@ -53,7 +53,7 @@ public class EntryEditPart extends BorderedShapeEditPart {
 		installEditPolicy(
 				EditPolicy.SELECTION_FEEDBACK_ROLE,
 				new ContextSensitiveHelpPolicy(
-						IYakinduSctHelpContextIds.SC_PROPERTIES_ENTRY_ENTRYKIND));
+						HelpContextIds.SC_PROPERTIES_ENTRY_ENTRYKIND));
 	}
 
 	@Override

+ 2 - 2
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/editparts/StateTextCompartmentExpressionEditPart.java

@@ -15,7 +15,7 @@ import org.eclipse.gmf.runtime.notation.View;
 import org.eclipse.swt.SWT;
 import org.yakindu.sct.ui.editor.extensions.ExpressionLanguageProviderExtensions.SemanticTarget;
 import org.yakindu.sct.ui.editor.policies.ContextSensitiveHelpPolicy;
-import org.yakindu.sct.ui.editor.utils.IYakinduSctHelpContextIds;
+import org.yakindu.sct.ui.editor.utils.HelpContextIds;
 
 import de.itemis.xtext.utils.gmf.directedit.IXtextAwareEditPart;
 
@@ -56,7 +56,7 @@ public class StateTextCompartmentExpressionEditPart extends
 		installEditPolicy(
 				EditPolicy.SELECTION_FEEDBACK_ROLE,
 				new ContextSensitiveHelpPolicy(
-						IYakinduSctHelpContextIds.SC_PROPERTIES_STATE_EXPRESSION));
+						HelpContextIds.SC_PROPERTIES_STATE_EXPRESSION));
 	}
 
 	private View getParentStateView() {

+ 2 - 2
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/editparts/StatechartTextExpressionEditPart.java

@@ -17,7 +17,7 @@ import org.eclipse.gmf.runtime.notation.View;
 import org.eclipse.swt.SWT;
 import org.yakindu.sct.ui.editor.extensions.ExpressionLanguageProviderExtensions.SemanticTarget;
 import org.yakindu.sct.ui.editor.policies.ContextSensitiveHelpPolicy;
-import org.yakindu.sct.ui.editor.utils.IYakinduSctHelpContextIds;
+import org.yakindu.sct.ui.editor.utils.HelpContextIds;
 
 /**
  * 
@@ -59,7 +59,7 @@ public class StatechartTextExpressionEditPart extends
 		installEditPolicy(
 				EditPolicy.SELECTION_FEEDBACK_ROLE,
 				new ContextSensitiveHelpPolicy(
-						IYakinduSctHelpContextIds.SC_PROPERTIES_STATECHART_EXPRESSION));
+						HelpContextIds.SC_PROPERTIES_STATECHART_EXPRESSION));
 		removeEditPolicy(EditPolicyRoles.CONNECTION_HANDLES_ROLE);
 	}
 

+ 2 - 2
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/editparts/TransitionExpressionEditPart.java

@@ -15,7 +15,7 @@ import org.eclipse.gmf.runtime.notation.View;
 import org.eclipse.swt.SWT;
 import org.yakindu.sct.ui.editor.extensions.ExpressionLanguageProviderExtensions.SemanticTarget;
 import org.yakindu.sct.ui.editor.policies.ContextSensitiveHelpPolicy;
-import org.yakindu.sct.ui.editor.utils.IYakinduSctHelpContextIds;
+import org.yakindu.sct.ui.editor.utils.HelpContextIds;
 
 import de.itemis.xtext.utils.gmf.directedit.IXtextAwareEditPart;
 
@@ -37,7 +37,7 @@ public class TransitionExpressionEditPart extends
 		installEditPolicy(
 				EditPolicy.SELECTION_FEEDBACK_ROLE,
 				new ContextSensitiveHelpPolicy(
-						IYakinduSctHelpContextIds.SC_PROPERTIES_TRANSITION_EXPRESSION));
+						HelpContextIds.SC_PROPERTIES_TRANSITION_EXPRESSION));
 	}
 
 	@Override

+ 3 - 3
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/policies/ContextSensitiveHelpPolicy.java

@@ -15,12 +15,12 @@ import org.eclipse.ui.IViewPart;
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PlatformUI;
-import org.yakindu.sct.ui.editor.utils.IYakinduSctHelpContextIds;
+import org.yakindu.sct.ui.editor.utils.HelpContextIds;
 
 /**
  * Adds context-sensitive help to the host <code>EditPart</code>. 
  * 
- * @see org.yakindu.sct.ui.editor.utils.IYakinduSctHelpContextIds
+ * @see org.yakindu.sct.ui.editor.utils.HelpContextIds
  * 
  * @author martin esser
  * 
@@ -48,7 +48,7 @@ public class ContextSensitiveHelpPolicy extends SelectionEditPolicy {
 	@Override
 	protected void hideSelection() {
 		if (isDynamicHelpViewShowing()) {
-			displayViewerHelpContext(IYakinduSctHelpContextIds.SC_EDITOR_GRAPHICAL_VIEWER);
+			displayViewerHelpContext(HelpContextIds.SC_EDITOR_GRAPHICAL_VIEWER);
 		}
 	}
 

+ 38 - 21
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/propertysheets/AbstractEditorPropertySection.java

@@ -17,15 +17,25 @@ import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.edit.domain.IEditingDomainProvider;
 import org.eclipse.gmf.runtime.diagram.ui.properties.sections.AbstractModelerPropertySection;
+import org.eclipse.jface.dialogs.IDialogLabelKeys;
 import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Layout;
 import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.forms.widgets.Form;
 import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ImageHyperlink;
+import org.eclipse.ui.help.IWorkbenchHelpSystem;
 import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
 import org.yakindu.sct.ui.editor.extensions.ExpressionLanguageProviderExtensions;
 import org.yakindu.sct.ui.editor.extensions.ExpressionLanguageProviderExtensions.SemanticTarget;
@@ -140,26 +150,33 @@ public abstract class AbstractEditorPropertySection extends
 	public EObject getContextObject() {
 		return getEObject();
 	}
-	// FIXME
-	// public void createHelpColumn(final Composite parent, final Control
-	// control) {
-	// final ImageHyperlink helpWidget = toolkit.createImageHyperlink(parent,
-	// SWT.CENTER);
-	// Image defaultImage = PlatformUI.getWorkbench().getSharedImages()
-	// .getImage(ISharedImages.IMG_LCL_LINKTO_HELP);
-	// helpWidget.setImage(defaultImage);
-	// GridDataFactory.fillDefaults().align(SWT.FILL, SWT.TOP)
-	// .applyTo(helpWidget);
-	// helpWidget.setToolTipText(JFaceResources
-	// .getString(IDialogLabelKeys.HELP_LABEL_KEY));
-	// helpWidget.addMouseListener(new MouseAdapter() {
-	// public void mouseDown(MouseEvent e) {
-	// control.setFocus();
-	// PlatformUI.getWorkbench().getHelpSystem().displayDynamicHelp();
-	// }
-	// });
-	// GridDataFactory.fillDefaults().applyTo(helpWidget);
-	// helpWidget.setEnabled(true);
-	// }
 
+
+	protected void createHelpWidget(final Composite parent, final Control control, String helpId) {
+		final ImageHyperlink helpWidget = toolkit.createImageHyperlink(parent,
+				SWT.CENTER);
+		Image defaultImage = PlatformUI.getWorkbench().getSharedImages()
+				.getImage(ISharedImages.IMG_LCL_LINKTO_HELP);
+		helpWidget.setImage(defaultImage);
+		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.TOP)
+				.applyTo(helpWidget);
+		helpWidget.setToolTipText(JFaceResources
+				.getString(IDialogLabelKeys.HELP_LABEL_KEY));
+		helpWidget.addMouseListener(new MouseAdapter() {
+			public void mouseDown(MouseEvent e) {
+				control.setFocus();
+				PlatformUI.getWorkbench().getHelpSystem().displayDynamicHelp();
+			}
+		});
+		GridDataFactory.fillDefaults().applyTo(helpWidget);
+		helpWidget.setEnabled(true);
+		setHelpContext(control, helpId);
+	}
+
+	protected void setHelpContext(Control control, String helpId) {
+		IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench()
+				.getHelpSystem();
+		helpSystem.setHelp(control, helpId);
+	}
+	
 }

+ 18 - 3
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/propertysheets/AbstractTwoColumnEditorPropertySection.java

@@ -15,6 +15,8 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.SashForm;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Layout;
+
 /**
  * 
  * @author andreas muelder - Initial contribution and API
@@ -35,12 +37,25 @@ public abstract class AbstractTwoColumnEditorPropertySection extends
 		sashForm.setBackground(ColorConstants.white);
 		sashForm.setLayout(new FillLayout());
 		Composite leftColumn = getToolkit().createComposite(sashForm);
-		leftColumn.setLayout(createBodyLayout());
+		leftColumn.setLayout(createLeftColumnLayout());
 		Composite rightColumn = getToolkit().createComposite(sashForm);
-		rightColumn.setLayout(createBodyLayout());
-		sashForm.setWeights(new int[]{2,3});
+		rightColumn.setLayout(createRightColumnLayout());
+		sashForm.setWeights(new int[] { 2, 3 });
 		createLeftColumnControls(leftColumn);
 		createRightColumnControls(rightColumn);
 	}
 
+	@Override
+	protected final Layout createBodyLayout() {
+		return super.createBodyLayout();
+	}
+
+	protected Layout createLeftColumnLayout() {
+		return createBodyLayout();
+	}
+
+	protected Layout createRightColumnLayout() {
+		return createBodyLayout();
+	}
+
 }

+ 13 - 4
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/propertysheets/StatePropertySection.java

@@ -34,6 +34,7 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Layout;
 import org.eclipse.swt.widgets.Listener;
 import org.eclipse.xtext.naming.QualifiedName;
 import org.yakindu.base.base.BasePackage;
@@ -42,6 +43,7 @@ import org.yakindu.sct.model.sgraph.State;
 import org.yakindu.sct.ui.editor.dialogs.SelectSubmachineDialog;
 import org.yakindu.sct.ui.editor.extensions.ExpressionLanguageProviderExtensions.SemanticTarget;
 import org.yakindu.sct.ui.editor.propertysheets.OrderElementControl.ISourceObjectCallback;
+import org.yakindu.sct.ui.editor.utils.HelpContextIds;
 
 import com.google.inject.Injector;
 
@@ -61,10 +63,8 @@ public class StatePropertySection extends
 	private OrderElementControl orderElementControl;
 
 	@Override
-	protected void createRightColumnControls(Composite rightColumn) {
-		createNameControl(rightColumn);
-		createSubmachineControl(rightColumn);
-		createTransitionsControl(rightColumn);
+	protected Layout createLeftColumnLayout() {
+		return new GridLayout(2, false);
 	}
 
 	@Override
@@ -72,6 +72,13 @@ public class StatePropertySection extends
 		createSpecificationControl(leftColumn);
 	}
 
+	@Override
+	protected void createRightColumnControls(Composite rightColumn) {
+		createNameControl(rightColumn);
+		createSubmachineControl(rightColumn);
+		createTransitionsControl(rightColumn);
+	}
+
 	private void createNameControl(final Composite parent) {
 		Label lblName = getToolkit().createLabel(parent, "State Name: ");
 		txtName = getToolkit().createText(parent, "");
@@ -85,6 +92,8 @@ public class StatePropertySection extends
 			txtSpecification = new StyledText(parent, SWT.MULTI | SWT.BORDER
 					| SWT.V_SCROLL);
 			enableXtext(txtSpecification, injector);
+			createHelpWidget(parent, txtSpecification,
+					HelpContextIds.SC_PROPERTIES_TRANSITION_EXPRESSION);
 		} else {
 			txtSpecification = getToolkit().createText(parent, "", SWT.MULTI);
 		}

+ 11 - 0
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/propertysheets/StatechartPropertySection.java

@@ -20,14 +20,17 @@ import org.eclipse.jface.databinding.swt.WidgetProperties;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Layout;
 import org.eclipse.swt.widgets.Text;
 import org.yakindu.base.base.BasePackage;
 import org.yakindu.sct.model.sgraph.SGraphPackage;
 import org.yakindu.sct.ui.editor.extensions.ExpressionLanguageProviderExtensions.SemanticTarget;
 import org.yakindu.sct.ui.editor.propertysheets.OrderElementControl.ISourceObjectCallback;
+import org.yakindu.sct.ui.editor.utils.HelpContextIds;
 
 import com.google.inject.Injector;
 
@@ -43,11 +46,17 @@ public class StatechartPropertySection extends
 	private Text txtName;
 	private OrderElementControl orderElementControl;
 
+	@Override
+	protected Layout createLeftColumnLayout() {
+		return new GridLayout(2, false);
+	}
+
 	@Override
 	protected void createLeftColumnControls(Composite leftColumn) {
 		createSpecificationControl(leftColumn);
 	}
 
+
 	@Override
 	protected void createRightColumnControls(Composite rightColumn) {
 		createNameControl(rightColumn);
@@ -77,6 +86,8 @@ public class StatechartPropertySection extends
 			textControl = new StyledText(parent, SWT.MULTI | SWT.BORDER
 					| SWT.V_SCROLL);
 			enableXtext(textControl, injector);
+			createHelpWidget(parent, textControl,
+					HelpContextIds.SC_PROPERTIES_STATECHART_EXPRESSION);
 		} else {
 			textControl = getToolkit().createText(parent, "", SWT.MULTI);
 		}

+ 9 - 1
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/propertysheets/TransitionPropertySection.java

@@ -19,10 +19,13 @@ import org.eclipse.jface.databinding.swt.WidgetProperties;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Layout;
 import org.yakindu.sct.model.sgraph.SGraphPackage;
 import org.yakindu.sct.ui.editor.extensions.ExpressionLanguageProviderExtensions.SemanticTarget;
+import org.yakindu.sct.ui.editor.utils.HelpContextIds;
 
 import com.google.inject.Injector;
 
@@ -35,6 +38,11 @@ public class TransitionPropertySection extends AbstractEditorPropertySection {
 
 	private Control textControl;
 
+	@Override
+	protected Layout createBodyLayout() {
+		return new GridLayout(2, false);
+	}
+
 	@Override
 	public void createControls(Composite parent) {
 		Injector injector = getInjector(SemanticTarget.TransitionSpecification);
@@ -42,6 +50,7 @@ public class TransitionPropertySection extends AbstractEditorPropertySection {
 			textControl = new StyledText(parent, SWT.MULTI | SWT.BORDER
 					| SWT.V_SCROLL);
 			enableXtext(textControl, injector);
+			createHelpWidget(parent, textControl,HelpContextIds.SC_PROPERTIES_TRANSITION_EXPRESSION);
 		} else {
 			textControl = getToolkit().createText(parent, "", SWT.MULTI);
 		}
@@ -49,7 +58,6 @@ public class TransitionPropertySection extends AbstractEditorPropertySection {
 
 	}
 
-
 	@Override
 	public void bindModel(EMFDataBindingContext context) {
 		IEMFValueProperty modelProperty = EMFEditProperties.value(

+ 12 - 7
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/utils/IYakinduSctHelpContextIds.java

@@ -18,16 +18,21 @@ import org.yakindu.sct.ui.editor.DiagramActivator;
  * This interface contains constants only; it is not intended to be implemented
  * or extended.
  */
-public interface IYakinduSctHelpContextIds {
+public interface HelpContextIds {
 
 	public static final String PREFIX = DiagramActivator.PLUGIN_ID + '.';
 
 	// Diagram viewer
-	public static final String SC_EDITOR_GRAPHICAL_VIEWER = PREFIX + "sc_editor_graphical_viewer"; //$NON-NLS-1$
-	
+	public static final String SC_EDITOR_GRAPHICAL_VIEWER = PREFIX
+			+ "sc_editor_graphical_viewer"; //$NON-NLS-1$
+
 	// Property sheets and EditParts
-	public static final String SC_PROPERTIES_ENTRY_ENTRYKIND = PREFIX + "sc_properties_entry_entrykind"; //$NON-NLS-1$
-	public static final String SC_PROPERTIES_STATE_EXPRESSION = PREFIX + "sc_properties_state_expression"; //$NON-NLS-1$
-	public static final String SC_PROPERTIES_STATECHART_EXPRESSION = PREFIX + "sc_properties_statechart_expression"; //$NON-NLS-1$
-	public static final String SC_PROPERTIES_TRANSITION_EXPRESSION = PREFIX + "sc_properties_transition_expression"; //$NON-NLS-1$
+	public static final String SC_PROPERTIES_ENTRY_ENTRYKIND = PREFIX
+			+ "sc_properties_entry_entrykind"; //$NON-NLS-1$
+	public static final String SC_PROPERTIES_STATE_EXPRESSION = PREFIX
+			+ "sc_properties_state_expression"; //$NON-NLS-1$
+	public static final String SC_PROPERTIES_STATECHART_EXPRESSION = PREFIX
+			+ "sc_properties_statechart_expression"; //$NON-NLS-1$
+	public static final String SC_PROPERTIES_TRANSITION_EXPRESSION = PREFIX
+			+ "sc_properties_transition_expression"; //$NON-NLS-1$
 }