From b94ceb6eb58e90781d0fc13907023e15e4ba4b1a Mon Sep 17 00:00:00 2001 From: Serge Rider Date: Thu, 29 Jun 2017 23:39:45 +0300 Subject: [PATCH] #1825 Custom part renderer model + config Former-commit-id: 7978e1511e2428e1fa0564cf51834a03a2ade503 --- .../plugin.xml | 2 ++ .../META-INF/MANIFEST.MF | 4 +++ .../dbeaver/ui/e4/DBeaverRendererFactory.java | 25 +++++++++++++++++++ .../dbeaver/ui/e4/DBeaverStackRenderer.java | 18 +++++++++++++ 4 files changed, 49 insertions(+) create mode 100644 plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/e4/DBeaverRendererFactory.java create mode 100644 plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/e4/DBeaverStackRenderer.java diff --git a/plugins/org.jkiss.dbeaver.core.application/plugin.xml b/plugins/org.jkiss.dbeaver.core.application/plugin.xml index 2890df520d..9558ef580c 100644 --- a/plugins/org.jkiss.dbeaver.core.application/plugin.xml +++ b/plugins/org.jkiss.dbeaver.core.application/plugin.xml @@ -46,7 +46,9 @@ + + diff --git a/plugins/org.jkiss.dbeaver.core/META-INF/MANIFEST.MF b/plugins/org.jkiss.dbeaver.core/META-INF/MANIFEST.MF index 17b3301222..9406841457 100644 --- a/plugins/org.jkiss.dbeaver.core/META-INF/MANIFEST.MF +++ b/plugins/org.jkiss.dbeaver.core/META-INF/MANIFEST.MF @@ -62,6 +62,7 @@ Export-Package: org.jkiss.dbeaver, org.jkiss.dbeaver.ui.dialogs.sql, org.jkiss.dbeaver.ui.editors.object.struct, org.jkiss.dbeaver.ui.dialogs.tools, + org.jkiss.dbeaver.ui.e4, org.jkiss.dbeaver.ui.dnd, org.jkiss.dbeaver.ui.editors, org.jkiss.dbeaver.ui.editors.binary, @@ -124,6 +125,9 @@ Require-Bundle: org.eclipse.core.runtime, org.jkiss.utils;visibility:=reexport, com.jcraft.jsch, org.objectweb.asm, + org.eclipse.e4.ui.model.workbench, + org.eclipse.e4.ui.workbench.swt, + org.eclipse.e4.ui.workbench.renderers.swt, org.eclipse.e4.ui.css.core, org.eclipse.e4.ui.css.swt Bundle-Vendor: JKISS diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/e4/DBeaverRendererFactory.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/e4/DBeaverRendererFactory.java new file mode 100644 index 0000000000..6afc8aac30 --- /dev/null +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/e4/DBeaverRendererFactory.java @@ -0,0 +1,25 @@ +package org.jkiss.dbeaver.ui.e4; + +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.MPartStack; +import org.eclipse.e4.ui.workbench.renderers.swt.WorkbenchRendererFactory; + +public class DBeaverRendererFactory extends WorkbenchRendererFactory { + private DBeaverStackRenderer stackRenderer; + + public DBeaverRendererFactory() { + } + + @Override + public AbstractPartRenderer getRenderer(MUIElement uiElement, Object parent) { + if (uiElement instanceof MPartStack) { + if (stackRenderer == null) { + stackRenderer = new DBeaverStackRenderer(); + super.initRenderer(stackRenderer); + } + return stackRenderer; + } + return super.getRenderer(uiElement, parent); + } +} \ No newline at end of file diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/e4/DBeaverStackRenderer.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/e4/DBeaverStackRenderer.java new file mode 100644 index 0000000000..7f05f0492b --- /dev/null +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/e4/DBeaverStackRenderer.java @@ -0,0 +1,18 @@ +package org.jkiss.dbeaver.ui.e4; + +import org.eclipse.e4.ui.model.application.ui.basic.MPart; +import org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.MenuItem; + +public class DBeaverStackRenderer extends StackRenderer { + + @Override + protected void populateTabMenu(Menu menu, MPart part) { + super.populateTabMenu(menu, part); + + new MenuItem(menu, SWT.SEPARATOR); + } + +} \ No newline at end of file -- GitLab