Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSopot Cela2013-05-17 22:20:45 +0000
committerTom Schindl2013-05-17 22:20:45 +0000
commit8006cbfcac68deeca075c1bcab3538c4eb9b1b9c (patch)
tree74765186243d3fa10a7a7b7fcd8c74d22fae0051
parent63d3f08fc6a15f32da8cf7f4cf4220393d165896 (diff)
downloadorg.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
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.keybindings.e4/META-INF/MANIFEST.MF3
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.base/src/org/eclipse/fx/ui/workbench/base/rendering/AbstractRenderer.java2
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.fx/META-INF/MANIFEST.MF4
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.fx/src/org/eclipse/fx/ui/workbench/fx/PartRenderingEngine.java39
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/META-INF/MANIFEST.MF3
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BasePartRenderer.java2
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.renderers.base/src/org/eclipse/fx/ui/workbench/renderers/base/BaseRenderer.java9
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/META-INF/MANIFEST.MF4
-rwxr-xr-xbundles/runtime/org.eclipse.fx.ui.workbench.renderers.fx/src/org/eclipse/fx/ui/workbench/renderers/fx/DefPartRenderer.java16
-rwxr-xr-xbundles/tooling/org.eclipse.fx.ide.pde.ui.e4/src/org/eclipse/fx/ide/pde/ui/e4/project/template/ApplicationE4XMI.xtend1
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>
'''

Back to the top