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

reverted: Enable context menu on property section

Andreas Mülder 13 лет назад
Родитель
Сommit
efb8e9921a

+ 4 - 97
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/propertysheets/AbstractEditorPropertySection.java

@@ -10,8 +10,6 @@
  */
  */
 package org.yakindu.sct.ui.editor.propertysheets;
 package org.yakindu.sct.ui.editor.propertysheets;
 
 
-import java.util.ArrayList;
-
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.databinding.EMFDataBindingContext;
 import org.eclipse.emf.databinding.EMFDataBindingContext;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EObject;
@@ -19,16 +17,10 @@ import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.edit.domain.IEditingDomainProvider;
 import org.eclipse.emf.edit.domain.IEditingDomainProvider;
 import org.eclipse.gmf.runtime.diagram.ui.properties.sections.AbstractModelerPropertySection;
 import org.eclipse.gmf.runtime.diagram.ui.properties.sections.AbstractModelerPropertySection;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.MenuManager;
 import org.eclipse.jface.bindings.keys.KeyStroke;
 import org.eclipse.jface.bindings.keys.KeyStroke;
 import org.eclipse.jface.dialogs.IDialogLabelKeys;
 import org.eclipse.jface.dialogs.IDialogLabelKeys;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.StyledText;
 import org.eclipse.swt.custom.StyledText;
 import org.eclipse.swt.events.MouseAdapter;
 import org.eclipse.swt.events.MouseAdapter;
@@ -38,27 +30,18 @@ import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Layout;
 import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Menu;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.ISharedImages;
 import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbenchPartSite;
-import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.forms.widgets.Form;
 import org.eclipse.ui.forms.widgets.Form;
 import org.eclipse.ui.forms.widgets.FormToolkit;
 import org.eclipse.ui.forms.widgets.FormToolkit;
 import org.eclipse.ui.forms.widgets.ImageHyperlink;
 import org.eclipse.ui.forms.widgets.ImageHyperlink;
 import org.eclipse.ui.help.IWorkbenchHelpSystem;
 import org.eclipse.ui.help.IWorkbenchHelpSystem;
 import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
 import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-import org.eclipse.xtext.nodemodel.ICompositeNode;
-import org.eclipse.xtext.nodemodel.ILeafNode;
-import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
-import org.eclipse.xtext.parser.IParseResult;
-import org.eclipse.xtext.resource.XtextResource;
 import org.yakindu.sct.ui.editor.extensions.ExpressionLanguageProviderExtensions;
 import org.yakindu.sct.ui.editor.extensions.ExpressionLanguageProviderExtensions;
 import org.yakindu.sct.ui.editor.extensions.ExpressionLanguageProviderExtensions.SemanticTarget;
 import org.yakindu.sct.ui.editor.extensions.ExpressionLanguageProviderExtensions.SemanticTarget;
 import org.yakindu.sct.ui.editor.extensions.IExpressionLanguageProvider;
 import org.yakindu.sct.ui.editor.extensions.IExpressionLanguageProvider;
 
 
-import com.google.common.collect.Lists;
 import com.google.inject.Injector;
 import com.google.inject.Injector;
 
 
 import de.itemis.xtext.utils.jface.fieldassist.CompletionProposalAdapter;
 import de.itemis.xtext.utils.jface.fieldassist.CompletionProposalAdapter;
@@ -75,8 +58,6 @@ import de.itemis.xtext.utils.jface.viewers.util.ActiveEditorTracker;
 public abstract class AbstractEditorPropertySection extends
 public abstract class AbstractEditorPropertySection extends
 		AbstractModelerPropertySection implements IContextElementProvider {
 		AbstractModelerPropertySection implements IContextElementProvider {
 
 
-	private final static String CONTEXTMENUID = "de.itemis.xtext.utils.jface.viewers.StyledTextXtextAdapterContextMenu";
-	
 	public abstract void createControls(Composite parent);
 	public abstract void createControls(Composite parent);
 
 
 	public abstract void bindModel(EMFDataBindingContext context);
 	public abstract void bindModel(EMFDataBindingContext context);
@@ -89,7 +70,6 @@ public abstract class AbstractEditorPropertySection extends
 
 
 	private CompletionProposalAdapter completionProposalAdapter;
 	private CompletionProposalAdapter completionProposalAdapter;
 
 
-	
 	@Override
 	@Override
 	public void refresh() {
 	public void refresh() {
 		super.refresh();
 		super.refresh();
@@ -158,91 +138,18 @@ public abstract class AbstractEditorPropertySection extends
 		return resources.get(0); // always take the first resource ...
 		return resources.get(0); // always take the first resource ...
 	}
 	}
 
 
-	
-	
-	protected void enableXtext(Control control, Injector injector) {
-		final StyledTextXtextAdapter xtextAdapter = new StyledTextXtextAdapter(
+	protected void enableXtext(Control styledText, Injector injector) {
+		StyledTextXtextAdapter xtextAdapter = new StyledTextXtextAdapter(
 				injector);
 				injector);
 		xtextAdapter.getFakeResourceContext().getFakeResource().eAdapters()
 		xtextAdapter.getFakeResourceContext().getFakeResource().eAdapters()
 				.add(new ContextElementAdapter(this));
 				.add(new ContextElementAdapter(this));
-		final StyledText styledText = (StyledText) control;
-		xtextAdapter.adapt(styledText);
-		MenuManager menuManager = createMenuManager(control);
-		Menu contextMenu = menuManager.createContextMenu(control);
-		control.setMenu(contextMenu);
-		
-		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		IWorkbenchPartSite site = window.getActivePage().getActiveEditor().getSite();
-		
-		ISelectionProvider provider = new ISelectionProvider() {
-			
-			public void setSelection(ISelection selection) {}
-			
-			public void removeSelectionChangedListener(ISelectionChangedListener listener) {}
-			
-			public void addSelectionChangedListener(ISelectionChangedListener listener) {}
+		xtextAdapter.adapt((StyledText) styledText);
 
 
-			public ISelection getSelection() {
-				
-				if (styledText.isDisposed()) {
-					return new StructuredSelection();
-				}
-				
-				int offset = styledText.getCaretOffset()-1;
-				XtextResource fakeResource = xtextAdapter.getFakeResourceContext().getFakeResource();
-				if (fakeResource == null) {
-					return new StructuredSelection();
-				}
-				
-				IParseResult parseResult = fakeResource.getParseResult();
-				if (parseResult == null) {
-					return new StructuredSelection();
-				}
-				ICompositeNode rootNode = parseResult.getRootNode();
-				if (rootNode == null) {
-					return new StructuredSelection();
-				}
-				ILeafNode selectedNode = NodeModelUtils.findLeafNodeAtOffset(rootNode, offset);
-				final EObject selectedObject = NodeModelUtils.findActualSemanticObjectFor(selectedNode);
-				
-				if (selectedObject == null) {
-					return new StructuredSelection();
-				}
-				return new StructuredSelection(selectedObject);
-			}
-		};
-		
-		site.setSelectionProvider(provider);
-		site.registerContextMenu(CONTEXTMENUID, menuManager, provider);
-		
 		completionProposalAdapter = new CompletionProposalAdapter(
 		completionProposalAdapter = new CompletionProposalAdapter(
-				control, xtextAdapter.getContentAssistant(),
+				styledText, xtextAdapter.getContentAssistant(),
 				KeyStroke.getInstance(SWT.CTRL, SWT.SPACE), null);
 				KeyStroke.getInstance(SWT.CTRL, SWT.SPACE), null);
 	}
 	}
 	
 	
-	protected MenuManager createMenuManager(Control styledText) {
-		
-		MenuManager manager = new MenuManager(CONTEXTMENUID, CONTEXTMENUID) {
-			// Overridden to filter default actions
-			@Override
-			public IContributionItem[] getItems() {
-				ArrayList<Object> result = Lists.newArrayList();
-				IContributionItem[] itemis = super.getItems();
-				for (IContributionItem iContributionItem : itemis) {
-					String id = iContributionItem.getId();
-					if (id != null && id.startsWith("org.yakindu"))
-						result.add(iContributionItem);
-				}
-				return result.toArray(new IContributionItem[] {});
-			}
-		};
-
-		
-
-		
-		return manager;
-	}
-
 	public CompletionProposalAdapter getCompletionProposalAdapter() {
 	public CompletionProposalAdapter getCompletionProposalAdapter() {
 		return completionProposalAdapter;
 		return completionProposalAdapter;
 	}
 	}