From 7190d6204eef3d94532a3cc6f32c60c1b9bacfd7 Mon Sep 17 00:00:00 2001 From: LonwoLonwo Date: Fri, 11 Sep 2020 11:44:45 +0300 Subject: [PATCH] dbeaver-corp/dbeaver-ee#488 toggle layout button behavior fixed --- .../dbeaver/ui/editors/sql/SQLEditor.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java index 98d192eba5..b4e895d6aa 100644 --- a/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java +++ b/plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java @@ -907,7 +907,7 @@ public class SQLEditor extends SQLEditorBase implements // Stretch UIUtils.createEmptyLabel(presentationSwitchFolder, 1, 1).setLayoutData(new GridData(GridData.FILL_VERTICAL)); - VerticalButton.create(presentationSwitchFolder, SWT.RIGHT | SWT.CHECK, getSite(), SQLEditorCommands.CMD_TOGGLE_LAYOUT, false); + createToggleLayoutButton(); } @@ -1278,7 +1278,7 @@ public class SQLEditor extends SQLEditorBase implements // Remove all presentation panel toggles for (SQLPresentationPanelDescriptor panelDescriptor : extraPresentationDescriptor.getPanels()) { for (Control vb : presentationSwitchFolder.getChildren()) { - if (vb instanceof Label || vb.getData() instanceof SQLPresentationPanelDescriptor) { + if (vb.getData() instanceof SQLPresentationPanelDescriptor) { // || vb instanceof Label vb.dispose(); sideBarChanged = true; } @@ -1295,6 +1295,7 @@ public class SQLEditor extends SQLEditorBase implements // Check and add presentation panel toggles UIUtils.createEmptyLabel(presentationSwitchFolder, 1, 1).setLayoutData(new GridData(GridData.FILL_VERTICAL)); for (SQLPresentationPanelDescriptor panelDescriptor : extraPresentationDescriptor.getPanels()) { + removeToggleLayoutButton(); sideBarChanged = true; PresentationPanelToggleAction toggleAction = new PresentationPanelToggleAction(panelDescriptor); VerticalButton panelButton = new VerticalButton(presentationSwitchFolder, SWT.RIGHT); @@ -1305,6 +1306,7 @@ public class SQLEditor extends SQLEditorBase implements //panelButton.setChecked(true); toggleAction.run(); } + createToggleLayoutButton(); } } @@ -1321,6 +1323,18 @@ public class SQLEditor extends SQLEditorBase implements } } + private void createToggleLayoutButton() { + VerticalButton.create(presentationSwitchFolder, SWT.RIGHT | SWT.CHECK, getSite(), SQLEditorCommands.CMD_TOGGLE_LAYOUT, false); + } + + private void removeToggleLayoutButton() { + for (VerticalButton vButton : presentationSwitchFolder.getItems()) { + if (vButton.getCommandId() != null && vButton.getCommandId().equals(SQLEditorCommands.CMD_TOGGLE_LAYOUT)) { + vButton.dispose(); + } + } + } + private Control getExtraPresentationControl() { return presentationSash.getChildren()[EXTRA_CONTROL_INDEX]; } -- GitLab