package com.example.e4.renderer.swt; import org.eclipse.e4.ui.internal.workbench.swt.AbstractPartRenderer; 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.MPartStack; import org.eclipse.e4.ui.workbench.renderers.swt.WorkbenchRendererFactory; public class MyRendererFactory extends WorkbenchRendererFactory { private MyStackRenderer stackRenderer; private MyPartRenderer partRenderer; @Override public AbstractPartRenderer getRenderer(MUIElement uiElement, Object parent) { if (uiElement instanceof MPart) { if (partRenderer == null) { partRenderer = new MyPartRenderer(); super.initRenderer(partRenderer); } return partRenderer; } else if (uiElement instanceof MPartStack) { if (stackRenderer == null) { stackRenderer = new MyStackRenderer(); super.initRenderer(stackRenderer); } return stackRenderer; } return super.getRenderer(uiElement, parent); } }