diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java index 53a3f4cf3b8e7cad65901a5567c8aad7fa1d02f0..8771e9290919b553019e8ebf97f78c81a50f3c93 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java @@ -778,14 +778,10 @@ public class SQLEditor extends SQLEditorBase implements } for (CTabItem item : resultTabs.getItems()) { if (item.getData() == view) { - if (resultTabs.getSelection() == item) { - item.dispose(); - viewItem.setSelection(false); - return; - } else { - resultTabs.setSelection(item); - return; - } + // Close tab if it is already open + item.dispose(); + viewItem.setSelection(false); + return; } } @@ -903,7 +899,7 @@ public class SQLEditor extends SQLEditorBase implements } // Close all panels for (CTabItem tabItem : resultTabs.getItems()) { - if (tabItem instanceof SQLEditorPresentationPanel) { + if (tabItem.getData() instanceof SQLEditorPresentationPanel) { tabItem.dispose(); } } @@ -913,7 +909,11 @@ public class SQLEditor extends SQLEditorBase implements for (SQLPresentationPanelDescriptor panelDescriptor : extraPresentationDescriptor.getPanels()) { if (sideToolBar.find(PANEL_ITEM_PREFIX + panelDescriptor.getId()) == null) { sideBarChanged = true; - sideToolBar.insertAfter(TOOLBAR_GROUP_PANELS, new PresentationPanelToggleAction(panelDescriptor)); + PresentationPanelToggleAction toggleAction = new PresentationPanelToggleAction(panelDescriptor); + sideToolBar.insertAfter(TOOLBAR_GROUP_PANELS, toggleAction); + if (panelDescriptor.isAutoActivate()) { + toggleAction.run(); + } } } } diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/registry/SQLPresentationPanelDescriptor.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/registry/SQLPresentationPanelDescriptor.java index ba25c9fed8f47cfd9f7ace0a904d2e3c8e15fdd1..975be670884295673781d5dca703512ddc03a025 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/registry/SQLPresentationPanelDescriptor.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/registry/SQLPresentationPanelDescriptor.java @@ -39,6 +39,7 @@ public class SQLPresentationPanelDescriptor extends AbstractContextDescriptor { private final ObjectType implClass; private final DBPImage icon; private final boolean isSingleton; + private final boolean isAutoActivate; public SQLPresentationPanelDescriptor(IConfigurationElement config) { @@ -49,6 +50,7 @@ public class SQLPresentationPanelDescriptor extends AbstractContextDescriptor { this.implClass = new ObjectType(config.getAttribute(RegistryConstants.ATTR_CLASS)); this.icon = iconToImage(config.getAttribute(RegistryConstants.ATTR_ICON)); this.isSingleton = CommonUtils.getBoolean(config.getAttribute("singleton"), true); + this.isAutoActivate = CommonUtils.getBoolean(config.getAttribute("autoActivate"), true); } public String getId() { @@ -71,6 +73,10 @@ public class SQLPresentationPanelDescriptor extends AbstractContextDescriptor { return isSingleton; } + public boolean isAutoActivate() { + return isAutoActivate; + } + public SQLEditorPresentationPanel createPanel() throws DBException {