package org.xmind.cathy.internal.renderer;
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.MDialog;
import org.eclipse.e4.ui.model.application.ui.basic.MPartSashContainer;
import org.eclipse.e4.ui.model.application.ui.basic.MPartStack;
import org.eclipse.e4.ui.model.application.ui.basic.MTrimmedWindow;
import org.eclipse.e4.ui.model.application.ui.menu.MMenu;
import org.eclipse.e4.ui.model.application.ui.menu.MToolBar;
import org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer;
import org.eclipse.e4.ui.workbench.renderers.swt.WorkbenchRendererFactory;
public class XWorkbenchRendererFactory extends WorkbenchRendererFactory {
private XWBWRenderer xwbwRenderer;
private XToolBarManagerRenderer xtoolbarRenderer;
private XDialogRenderer xdialogRenderer;
private XRightStackRenderer xviewStackRenderer;
private XSashRenderer xsashRenderer;
private XMenuManagerRenderer xMenuManagerRenderer;
private LazyStackRenderer stackRenderer;
public AbstractPartRenderer getRenderer(MUIElement uiElement,
Object parent) {
boolean viewPartStack = (uiElement instanceof MPartStack)
&& (uiElement.getTags().contains("RightStack")) //$NON-NLS-1$
&& (uiElement.getElementId() != null);
boolean editorPartStack = (uiElement instanceof MPartStack)
&& (uiElement.getTags().contains("EditorStack")) //$NON-NLS-1$
&& (uiElement.getElementId() != null);
if (viewPartStack) {
if (xviewStackRenderer == null) {
xviewStackRenderer = new XRightStackRenderer();
initRenderer(xviewStackRenderer);
}
return xviewStackRenderer;
} else if (uiElement instanceof MPartSashContainer) {
if (xsashRenderer == null) {
xsashRenderer = new XSashRenderer();
initRenderer(xsashRenderer);
}
return xsashRenderer;
} else if (uiElement instanceof MToolBar) {
if (xtoolbarRenderer == null) {
xtoolbarRenderer = new XToolBarManagerRenderer();
initRenderer(xtoolbarRenderer);
}
return xtoolbarRenderer;
} else if (uiElement instanceof MMenu) {
if (xMenuManagerRenderer == null) {
xMenuManagerRenderer = new XMenuManagerRenderer();
initRenderer(xMenuManagerRenderer);
}
return xMenuManagerRenderer;
} else if (uiElement instanceof MTrimmedWindow) {
if (xwbwRenderer == null) {
xwbwRenderer = new XWBWRenderer();
initRenderer(xwbwRenderer);
}
return xwbwRenderer;
} else if (uiElement instanceof MDialog) {
if (xdialogRenderer == null)
xdialogRenderer = new XDialogRenderer();
initRenderer(xdialogRenderer);
return xdialogRenderer;
} else if (uiElement instanceof MPartStack && editorPartStack) {
if (stackRenderer == null) {
stackRenderer = new XStackRenderer();
initRenderer(stackRenderer);
}
return stackRenderer;
}
return super.getRenderer(uiElement, parent);
}
}