diff options
author | Sopot Cela | 2013-05-17 22:20:45 +0000 |
---|---|---|
committer | Tom Schindl | 2013-05-17 22:20:45 +0000 |
commit | 8006cbfcac68deeca075c1bcab3538c4eb9b1b9c (patch) | |
tree | 74765186243d3fa10a7a7b7fcd8c74d22fae0051 | |
parent | 63d3f08fc6a15f32da8cf7f4cf4220393d165896 (diff) | |
download | org.eclipse.efxclipse-8006cbfcac68deeca075c1bcab3538c4eb9b1b9c.tar.gz org.eclipse.efxclipse-8006cbfcac68deeca075c1bcab3538c4eb9b1b9c.tar.xz org.eclipse.efxclipse-8006cbfcac68deeca075c1bcab3538c4eb9b1b9c.zip |
Bug 408121 - [Kepler] Codebase does not support 4.3 runtime
10 files changed, 76 insertions, 7 deletions
diff --git a/bundles/runtime/org.eclipse.fx.ui.keybindings.e4/META-INF/MANIFEST.MF b/bundles/runtime/org.eclipse.fx.ui.keybindings.e4/META-INF/MANIFEST.MF index cecfbda9c..c2909b128 100755 --- a/bundles/runtime/org.eclipse.fx.ui.keybindings.e4/META-INF/MANIFEST.MF +++ b/bundles/runtime/org.eclipse.fx.ui.keybindings.e4/META-INF/MANIFEST.MF @@ -14,7 +14,8 @@ Require-Bundle: org.eclipse.fx.ui.keybindings;bundle-version="0.8.1", org.eclipse.e4.core.services;bundle-version="1.0.0", org.eclipse.e4.ui.services;bundle-version="0.10.1", org.eclipse.e4.ui.workbench;bundle-version="0.10.2", - org.eclipse.fx.core;bundle-version="0.8.1" + org.eclipse.fx.core;bundle-version="0.8.1", + org.eclipse.emf.ecore;bundle-version="2.9.0" Import-Package: javax.annotation;version="1.0.0", javax.inject;version="1.0.0" Export-Package: org.eclipse.fx.ui.keybindings.e4 diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.base/src/org/eclipse/fx/ui/workbench/base/rendering/AbstractRenderer.java b/bundles/runtime/org.eclipse.fx.ui.workbench.base/src/org/eclipse/fx/ui/workbench/base/rendering/AbstractRenderer.java index 30c018bef..e3a73157f 100755 --- a/bundles/runtime/org.eclipse.fx.ui.workbench.base/src/org/eclipse/fx/ui/workbench/base/rendering/AbstractRenderer.java +++ b/bundles/runtime/org.eclipse.fx.ui.workbench.base/src/org/eclipse/fx/ui/workbench/base/rendering/AbstractRenderer.java @@ -35,6 +35,8 @@ public abstract class AbstractRenderer<M extends MUIElement, C> { public abstract IEclipseContext getModelContext(MUIElement part); + public abstract void focus(MUIElement element); + @SuppressWarnings("unchecked") public C getWidget(M element) { return (C) element.getWidget(); diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.fx/META-INF/MANIFEST.MF b/bundles/runtime/org.eclipse.fx.ui.workbench.fx/META-INF/MANIFEST.MF index 16f0e3326..7edbbf342 100755 --- a/bundles/runtime/org.eclipse.fx.ui.workbench.fx/META-INF/MANIFEST.MF +++ b/bundles/runtime/org.eclipse.fx.ui.workbench.fx/META-INF/MANIFEST.MF @@ -21,7 +21,9 @@ Require-Bundle: javax.inject;bundle-version="1.0.0", org.eclipse.fx.ui.services;bundle-version="0.8.1", org.eclipse.fx.core;bundle-version="0.8.1", org.eclipse.fx.ui.di;bundle-version="0.8.1", - org.eclipse.fx.osgi.util;bundle-version="0.8.1" + org.eclipse.fx.osgi.util;bundle-version="0.8.1", + org.eclipse.e4.ui.model.workbench;bundle-version="1.0.0", + org.eclipse.emf.ecore;bundle-version="2.9.0" Import-Package: javafx.application;version="2.0.0", javafx.event;version="2.0.0", javafx.scene.image;version="2.0.0", diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.fx/src/org/eclipse/fx/ui/workbench/fx/PartRenderingEngine.java b/bundles/runtime/org.eclipse.fx.ui.workbench.fx/src/org/eclipse/fx/ui/workbench/fx/PartRenderingEngine.java index 17afc99b3..aecf6fc99 100755 --- a/bundles/runtime/org.eclipse.fx.ui.workbench.fx/src/org/eclipse/fx/ui/workbench/fx/PartRenderingEngine.java +++ b/bundles/runtime/org.eclipse.fx.ui.workbench.fx/src/org/eclipse/fx/ui/workbench/fx/PartRenderingEngine.java @@ -17,9 +17,11 @@ import javax.inject.Named; import org.eclipse.e4.core.contexts.ContextInjectionFactory; import org.eclipse.e4.core.contexts.IEclipseContext; +import org.eclipse.e4.core.di.InjectionException; import org.eclipse.e4.core.di.annotations.Optional; import org.eclipse.e4.core.services.contributions.IContributionFactory; import org.eclipse.e4.core.services.events.IEventBroker; +import org.eclipse.e4.ui.di.Focus; import org.eclipse.e4.ui.di.PersistState; import org.eclipse.e4.ui.internal.workbench.E4Workbench; import org.eclipse.e4.ui.model.application.MApplication; @@ -181,8 +183,6 @@ public class PartRenderingEngine implements IPresentationEngine { lclContext.set(key, props.get(key)); } - E4Workbench.processHierarchy(model); - return lclContext; } @@ -356,4 +356,39 @@ public class PartRenderingEngine implements IPresentationEngine { } } } + + @Override + public void focusGui(MUIElement element) { + AbstractRenderer<MUIElement, Object> renderer = (AbstractRenderer<MUIElement, Object>) element + .getRenderer(); + if (renderer == null || element.getWidget() == null) + return; + + Object implementation = element instanceof MContribution ? ((MContribution) element) + .getObject() : null; + + // If there is no class to call @Focus on then revert to the default + if (implementation == null) { + renderer.focus(element); + return; + } + + try { + IEclipseContext context = getContext(element); + Object defaultValue = new Object(); + Object returnValue = ContextInjectionFactory.invoke(implementation, + Focus.class, context, defaultValue); + if (returnValue == defaultValue) { + // No @Focus method, force the focus + renderer.focus(element); + } + } catch (InjectionException e) { +// log("Failed to grant focus to element", "Failed to grant focus to element ({0})", //$NON-NLS-1$ //$NON-NLS-2$ +// element.getElementId(), e); + } catch (RuntimeException e) { +// log("Failed to grant focus to element via DI", //$NON-NLS-1$ +// "Failed to grant focus via DI to element ({0})", element.getElementId(), e); //$NON-NLS-1$ + } + + } }
\ No newline at end of file diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/META-INF/MANIFEST.MF b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/META-INF/MANIFEST.MF index 77c74672c..7f25b56bb 100755 --- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/META-INF/MANIFEST.MF +++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/META-INF/MANIFEST.MF @@ -12,7 +12,8 @@ Require-Bundle: org.eclipse.e4.ui.model.workbench;bundle-version="0.10.1", org.eclipse.e4.core.commands;bundle-version="0.10.1", org.eclipse.fx.ui.workbench.base;bundle-version="0.8.1", org.eclipse.e4.ui.di;bundle-version="0.10.1", - org.eclipse.fx.core;bundle-version="0.8.1" + org.eclipse.fx.core;bundle-version="0.8.1", + org.eclipse.emf.ecore;bundle-version="2.9.0" Import-Package: javax.annotation;version="1.0.0", javax.inject;version="1.0.0", org.osgi.service.event;version="1.3.0" diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePartRenderer.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePartRenderer.java index c146007da..d278bd61e 100755 --- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePartRenderer.java +++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePartRenderer.java @@ -88,7 +88,7 @@ public abstract class BasePartRenderer<N,T,M> extends BaseRenderer<MPart, WPart< element.setObject(newPart); } - + @Override public void childRendered(MPart parentElement, MUIElement element) { diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseRenderer.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseRenderer.java index 376ea79dc..7f0ce1f08 100755 --- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseRenderer.java +++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseRenderer.java @@ -367,4 +367,13 @@ public abstract class BaseRenderer<M extends MUIElement, W extends WWidget<M>> e } protected abstract void doProcessContent(M element); + + @Override + public void focus(MUIElement element) { + if (element.getWidget() instanceof WWidget){ + WWidget<?> widget = (WWidget<?>) element.getWidget(); + widget.activate(); + } + + } } diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/META-INF/MANIFEST.MF b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/META-INF/MANIFEST.MF index 42b62c010..7d1c279cf 100755 --- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/META-INF/MANIFEST.MF +++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/META-INF/MANIFEST.MF @@ -22,7 +22,9 @@ Require-Bundle: org.eclipse.e4.ui.model.workbench;bundle-version="0.10.1", org.eclipse.fx.ui.workbench.fx.controls;bundle-version="0.8.1", org.eclipse.fx.core;bundle-version="0.8.1", org.eclipse.fx.core;bundle-version="0.8.1", - org.eclipse.fx.ui.dialogs;bundle-version="0.8.1" + org.eclipse.fx.ui.dialogs;bundle-version="0.8.1", + org.eclipse.emf.common;bundle-version="2.9.0", + org.eclipse.emf.ecore;bundle-version="2.9.0" Import-Package: javafx.application, javafx.beans;version="2.0.0", javafx.beans.property, diff --git a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/src/org/eclipse/fx/ui/workbench/renderers/fx/DefPartRenderer.java b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/src/org/eclipse/fx/ui/workbench/renderers/fx/DefPartRenderer.java index 60a42f77d..afc1b260d 100755 --- a/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/src/org/eclipse/fx/ui/workbench/renderers/fx/DefPartRenderer.java +++ b/bundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/src/org/eclipse/fx/ui/workbench/renderers/fx/DefPartRenderer.java @@ -25,6 +25,7 @@ import javax.inject.Inject; import org.eclipse.e4.core.contexts.ContextInjectionFactory; import org.eclipse.e4.ui.di.Focus; +import org.eclipse.e4.ui.model.application.ui.MUIElement; import org.eclipse.e4.ui.model.application.ui.basic.MPart; import org.eclipse.e4.ui.workbench.modeling.EPartService; import org.eclipse.fx.core.log.Logger.Level; @@ -60,6 +61,19 @@ public class DefPartRenderer extends BasePartRenderer<BorderPane, Node, Node> { return true; } + + @Override + public void focus(MUIElement element) { + super.focus(element); + if (element.getWidget() instanceof WPart) + { + WPart<BorderPane, Node, Node> part = ((WPart<BorderPane, Node, Node>) element.getWidget()); + if (part==null) return; + Node node = (Node) part.getWidget(); + node.requestFocus(); + } + + } public static class PartImpl extends WLayoutedWidgetImpl<BorderPane, AnchorPane, MPart> implements WPart<BorderPane, Node, Node> { @Inject @@ -91,6 +105,8 @@ public class DefPartRenderer extends BasePartRenderer<BorderPane, Node, Node> { }); return p; } + + private boolean checkFocusControl() { BorderPane check = getWidget(); diff --git a/bundles/tooling/org.eclipse.fx.ide.pde.ui.e4/src/org/eclipse/fx/ide/pde/ui/e4/project/template/ApplicationE4XMI.xtend b/bundles/tooling/org.eclipse.fx.ide.pde.ui.e4/src/org/eclipse/fx/ide/pde/ui/e4/project/template/ApplicationE4XMI.xtend index cf755f8c5..78289aec2 100755 --- a/bundles/tooling/org.eclipse.fx.ide.pde.ui.e4/src/org/eclipse/fx/ide/pde/ui/e4/project/template/ApplicationE4XMI.xtend +++ b/bundles/tooling/org.eclipse.fx.ide.pde.ui.e4/src/org/eclipse/fx/ide/pde/ui/e4/project/template/ApplicationE4XMI.xtend @@ -36,6 +36,7 @@ class ApplicationE4XMI implements Generator<DynamicFile> { <addons xmi:id="«EcoreUtil::generateUUID»" elementId="org.eclipse.e4.ui.workbench.commands.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.CommandProcessingAddon"/>
<addons xmi:id="«EcoreUtil::generateUUID»" elementId="org.eclipse.e4.ui.workbench.contexts.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.ContextProcessingAddon"/>
<addons xmi:id="«EcoreUtil::generateUUID»" elementId="org.eclipse.fx.ui.keybindings.e4.model" contributionURI="bundleclass://org.eclipse.fx.ui.keybindings.e4/org.eclipse.fx.ui.keybindings.e4.BindingProcessingAddon"/>
+ <addons xmi:id="«EcoreUtil::generateUUID»" elementId="org.eclipse.e4.ui.workbench.addons.HandlerProcessingAddon" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.HandlerProcessingAddon"/>
</application:Application>
'''
|