Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.e4.tools.compat/src/org/eclipse/e4/tools/compat/internal/PartHelper.java')
-rw-r--r--bundles/org.eclipse.e4.tools.compat/src/org/eclipse/e4/tools/compat/internal/PartHelper.java103
1 files changed, 0 insertions, 103 deletions
diff --git a/bundles/org.eclipse.e4.tools.compat/src/org/eclipse/e4/tools/compat/internal/PartHelper.java b/bundles/org.eclipse.e4.tools.compat/src/org/eclipse/e4/tools/compat/internal/PartHelper.java
deleted file mode 100644
index 58484ff4..00000000
--- a/bundles/org.eclipse.e4.tools.compat/src/org/eclipse/e4/tools/compat/internal/PartHelper.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 BestSolution.at and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- ******************************************************************************/
-package org.eclipse.e4.tools.compat.internal;
-
-import java.lang.reflect.Method;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.e4.core.contexts.ContextInjectionFactory;
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.ui.services.IStylingEngine;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbenchPartSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.WorkbenchPart;
-
-public class PartHelper {
- public static IEclipseContext createPartContext(WorkbenchPart part) throws PartInitException {
- IWorkbenchPartSite site = part.getSite();
- IEclipseContext parentContext = (IEclipseContext) site.getService(IEclipseContext.class);
-
- // Check if running in 4.x
- if( parentContext.get("org.eclipse.e4.workbench.ui.IPresentationEngine") != null ) {
- // Hack to get the MPart-Context
- try {
- Class<?> clazz = Util.getBundle("org.eclipse.e4.ui.model.workbench").loadClass("org.eclipse.e4.ui.model.application.ui.basic.MPart");
- Object instance = site.getService(clazz);
- Method m = clazz.getMethod("getContext", new Class[0]);
- return (IEclipseContext) m.invoke(instance);
- } catch (Exception e) {
- throw new PartInitException("Could not create context",e);
- }
- } else {
- return parentContext.createChild("EditPart('"+part.getPartName()+"')"); //$NON-NLS-1$
- }
-
- }
-
- public static <C> C creatComponent(Composite parent, IEclipseContext context, Class<C> clazz, WorkbenchPart part) {
- ISelectionProvider s = new SelectionProviderImpl();
- context.set(ISelectionProvider.class, s);
- part.getSite().setSelectionProvider(s);
-
- IStylingEngine styleEngine = context.get(IStylingEngine.class);
- Composite comp = new Composite(parent, SWT.NONE);
- comp.setBackgroundMode(SWT.INHERIT_DEFAULT);
-
- //FIXME This should be read from the CSS
- FillLayout layout = new FillLayout();
- layout.marginWidth = 10;
- layout.marginHeight = 10;
- comp.setLayout(layout);
-
- context.set(Composite.class.getName(), comp);
- C component = ContextInjectionFactory.make(clazz, context);
-
- styleEngine.setClassname(comp, part.getClass().getSimpleName());
-
- return component;
- }
-
- static class SelectionProviderImpl implements ISelectionProvider {
- private ISelection currentSelection = StructuredSelection.EMPTY;
-
- private ListenerList listeners = new ListenerList();
-
- public void setSelection(ISelection selection) {
- currentSelection = selection;
- SelectionChangedEvent evt = new SelectionChangedEvent(this, selection);
-
- for( Object l : listeners.getListeners() ) {
- ((ISelectionChangedListener)l).selectionChanged(evt);
- }
- }
-
- public void removeSelectionChangedListener(
- ISelectionChangedListener listener) {
- listeners.remove(listener);
- }
-
- public ISelection getSelection() {
- return currentSelection;
- }
-
- public void addSelectionChangedListener(ISelectionChangedListener listener) {
- listeners.add(listener);
- }
- }
-}

Back to the top