package at.bestsolution.e4.ui.workbench.renderers.jfx; import javax.annotation.PostConstruct; import org.eclipse.e4.core.contexts.ContextInjectionFactory; import org.eclipse.e4.core.contexts.IEclipseContext; import org.eclipse.e4.ui.model.application.ui.MUIElement; import org.eclipse.e4.ui.model.application.ui.basic.MPart; import org.eclipse.e4.ui.model.application.ui.basic.MPartSashContainer; import org.eclipse.e4.ui.model.application.ui.basic.MTrimBar; import org.eclipse.e4.ui.model.application.ui.basic.MWindow; import org.eclipse.e4.ui.model.application.ui.menu.MToolBar; import org.eclipse.e4.ui.model.application.ui.menu.MToolItem; import at.bestsolution.e4.ui.workbench.jfx.AbstractPartRenderer; import at.bestsolution.e4.ui.workbench.jfx.IRendererFactory; @SuppressWarnings("restriction") public class WorkbenchRendererFactory implements IRendererFactory { private IEclipseContext context; private WBWRenderer windowRenderer; private SashRenderer sashRenderer; private ContributedPartRenderer partRenderer; private TrimBarRenderer trimRenderer; private ToolbarRenderer toolbarRenderer; private ToolItemRenderer toolitemRenderer; @Override public AbstractPartRenderer getRenderer(MUIElement uiElement) { if( uiElement instanceof MWindow ) { if( windowRenderer == null ) { windowRenderer = ContextInjectionFactory.make(WBWRenderer.class, context); } return windowRenderer; } else if( uiElement instanceof MPartSashContainer ) { if( sashRenderer == null ) { sashRenderer = ContextInjectionFactory.make(SashRenderer.class, context); } return sashRenderer; } else if( uiElement instanceof MPart ) { if( partRenderer == null ) { partRenderer = ContextInjectionFactory.make(ContributedPartRenderer.class, context); } return partRenderer; } else if( uiElement instanceof MTrimBar ) { if( trimRenderer == null ) { trimRenderer = ContextInjectionFactory.make(TrimBarRenderer.class, context); } return trimRenderer; } else if( uiElement instanceof MToolBar ) { if( toolbarRenderer == null ) { toolbarRenderer = ContextInjectionFactory.make(ToolbarRenderer.class, context); } return toolbarRenderer; } else if( uiElement instanceof MToolItem ) { if( toolitemRenderer == null ) { toolitemRenderer = ContextInjectionFactory.make(ToolItemRenderer.class, context); } return toolitemRenderer; } // TODO Auto-generated method stub return null; } @PostConstruct void init(IEclipseContext context) { this.context = context; } }