diff options
3 files changed, 30 insertions, 2 deletions
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/DirectContributionItem.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/DirectContributionItem.java index 4045a3a4712..4d251a46baf 100644 --- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/DirectContributionItem.java +++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/DirectContributionItem.java @@ -19,7 +19,9 @@ import org.eclipse.e4.core.contexts.IContextFunction; import org.eclipse.e4.core.contexts.IEclipseContext; import org.eclipse.e4.core.di.annotations.CanExecute; import org.eclipse.e4.core.di.annotations.Execute; +import org.eclipse.e4.core.di.annotations.Optional; import org.eclipse.e4.core.services.contributions.IContributionFactory; +import org.eclipse.e4.core.services.log.Logger; import org.eclipse.e4.ui.internal.workbench.Activator; import org.eclipse.e4.ui.internal.workbench.ContributionsAnalyzer; import org.eclipse.e4.ui.internal.workbench.Policy; @@ -90,6 +92,10 @@ public class DirectContributionItem extends ContributionItem { resUtils = (ISWTResourceUtilities) utils; } + @Inject + @Optional + private Logger logger; + private IMenuListener menuListener = new IMenuListener() { public void menuAboutToShow(IMenuManager manager) { update(null); @@ -443,6 +449,17 @@ public class DirectContributionItem extends ContributionItem { return menu; } } + } else { + final IEclipseContext lclContext = getContext(model); + IPresentationEngine engine = lclContext + .get(IPresentationEngine.class); + obj = engine.createGui(mmenu, toolItem.getParent(), lclContext); + if (obj instanceof Menu) { + return (Menu) obj; + } + if (logger != null) { + logger.debug("Rendering returned " + obj); //$NON-NLS-1$ + } } return null; } diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/HandledContributionItem.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/HandledContributionItem.java index 55e08566793..7c71cce84a0 100644 --- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/HandledContributionItem.java +++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/HandledContributionItem.java @@ -817,8 +817,9 @@ public class HandledContributionItem extends ContributionItem { Menu menu = (Menu) obj; // menu.setData(AbstractPartRenderer.OWNING_ME, menu); return menu; - } else { - System.err.println("Rendering returned " + obj); //$NON-NLS-1$ + } + if (logger != null) { + logger.debug("Rendering returned " + obj); //$NON-NLS-1$ } } return null; diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ToolItemRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ToolItemRenderer.java index 0d2aeaba9d3..22cc9b98f92 100644 --- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ToolItemRenderer.java +++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/ToolItemRenderer.java @@ -46,6 +46,7 @@ import org.eclipse.e4.ui.model.application.ui.menu.MItem; import org.eclipse.e4.ui.model.application.ui.menu.MMenu; import org.eclipse.e4.ui.model.application.ui.menu.MRenderedMenu; import org.eclipse.e4.ui.model.application.ui.menu.MToolItem; +import org.eclipse.e4.ui.workbench.IPresentationEngine; import org.eclipse.e4.ui.workbench.UIEvents; import org.eclipse.jface.action.IMenuCreator; import org.eclipse.jface.bindings.TriggerSequence; @@ -454,6 +455,15 @@ public class ToolItemRenderer extends SWTPartRenderer { return menu; } } + } else { + final IEclipseContext lclContext = getContext(mmenu); + IPresentationEngine engine = lclContext + .get(IPresentationEngine.class); + obj = engine.createGui(mmenu, toolItem.getParent(), lclContext); + if (obj instanceof Menu) { + return (Menu) obj; + } + logger.debug("Rendering returned " + obj); //$NON-NLS-1$ } return null; } |