提交 0b09d388 编写于 作者: J jurgen

ResultSet presentation preferences.

Plaintext column max length preference added
上级 3652b078
...@@ -51,4 +51,5 @@ pref.page.name.confirmations=Confirmations ...@@ -51,4 +51,5 @@ pref.page.name.confirmations=Confirmations
pref.page.name.keys=Keys pref.page.name.keys=Keys
pref.page.name.resultset=Result Sets pref.page.name.resultset=Result Sets
pref.page.name.resultset.binaries=Binaries pref.page.name.resultset.binaries=Binaries
pref.page.name.resultset.presentation=Presentation
pref.page.name.meta=Metadata pref.page.name.meta=Metadata
...@@ -220,6 +220,8 @@ ...@@ -220,6 +220,8 @@
<page category="org.jkiss.dbeaver.preferences.main.resultset" id="org.jkiss.dbeaver.preferences.main.resultset.binaries" class="org.jkiss.dbeaver.ui.preferences.PrefPageResultSetBinaries" name="%pref.page.name.resultset.binaries"> <page category="org.jkiss.dbeaver.preferences.main.resultset" id="org.jkiss.dbeaver.preferences.main.resultset.binaries" class="org.jkiss.dbeaver.ui.preferences.PrefPageResultSetBinaries" name="%pref.page.name.resultset.binaries">
<keywordReference id="org.jkiss.dbeaver.core.keyword.pref.editor.content"/> <keywordReference id="org.jkiss.dbeaver.core.keyword.pref.editor.content"/>
</page> </page>
<page category="org.jkiss.dbeaver.preferences.main.resultset" id="org.jkiss.dbeaver.preferences.main.resultset.presentation" class="org.jkiss.dbeaver.ui.preferences.PrefPageResultSetPresentation" name="%pref.page.name.resultset.presentation">
</page>
<page category="org.jkiss.dbeaver.preferences.main.resultset" id="org.jkiss.dbeaver.preferences.main.dataformat" class="org.jkiss.dbeaver.ui.preferences.PrefPageDataFormat" name="%pref.page.name.data.formats"> <page category="org.jkiss.dbeaver.preferences.main.resultset" id="org.jkiss.dbeaver.preferences.main.dataformat" class="org.jkiss.dbeaver.ui.preferences.PrefPageDataFormat" name="%pref.page.name.data.formats">
<keywordReference id="org.jkiss.dbeaver.core.keyword.pref.db.dataformat"/> <keywordReference id="org.jkiss.dbeaver.core.keyword.pref.db.dataformat"/>
</page> </page>
......
...@@ -33,4 +33,5 @@ pref.page.name.resources=Resources ...@@ -33,4 +33,5 @@ pref.page.name.resources=Resources
pref.page.name.confirmations=Confirmations pref.page.name.confirmations=Confirmations
pref.page.name.resultset=Result Sets pref.page.name.resultset=Result Sets
pref.page.name.resultset.binaries=Binaries pref.page.name.resultset.binaries=Binaries
pref.page.name.resultset.presentation=Presentation
pref.page.name.meta=Metadata pref.page.name.meta=Metadata
...@@ -48,6 +48,8 @@ ...@@ -48,6 +48,8 @@
<page category="org.jkiss.dbeaver.preferences.main.resultset" id="org.jkiss.dbeaver.preferences.main.resultset.binaries" class="org.jkiss.dbeaver.ui.preferences.PrefPageResultSetBinaries" name="%pref.page.name.resultset.binaries"> <page category="org.jkiss.dbeaver.preferences.main.resultset" id="org.jkiss.dbeaver.preferences.main.resultset.binaries" class="org.jkiss.dbeaver.ui.preferences.PrefPageResultSetBinaries" name="%pref.page.name.resultset.binaries">
<keywordReference id="org.jkiss.dbeaver.core.keyword.pref.editor.content"/> <keywordReference id="org.jkiss.dbeaver.core.keyword.pref.editor.content"/>
</page> </page>
<page category="org.jkiss.dbeaver.preferences.main.resultset" id="org.jkiss.dbeaver.preferences.main.resultset.presentation" class="org.jkiss.dbeaver.ui.preferences.PrefPageResultSetPresentation" name="%pref.page.name.resultset.presentation">
</page>
<page category="org.jkiss.dbeaver.preferences.main.resultset" id="org.jkiss.dbeaver.preferences.main.dataformat" class="org.jkiss.dbeaver.ui.preferences.PrefPageDataFormat" name="%pref.page.name.data.formats"> <page category="org.jkiss.dbeaver.preferences.main.resultset" id="org.jkiss.dbeaver.preferences.main.dataformat" class="org.jkiss.dbeaver.ui.preferences.PrefPageDataFormat" name="%pref.page.name.data.formats">
<keywordReference id="org.jkiss.dbeaver.core.keyword.pref.db.dataformat"/> <keywordReference id="org.jkiss.dbeaver.core.keyword.pref.db.dataformat"/>
</page> </page>
......
...@@ -1847,6 +1847,15 @@ ...@@ -1847,6 +1847,15 @@
</or> </or>
</enabledWhen> </enabledWhen>
</page> </page>
<page category="org.jkiss.dbeaver.preferences.main.resultset" id="org.jkiss.dbeaver.preferences.main.resultset.presentation" class="org.jkiss.dbeaver.ui.preferences.PrefPageResultSetPresentation" name="Presentation">
<enabledWhen>
<or>
<instanceof value="org.jkiss.dbeaver.model.navigator.DBNDataSource"/>
<instanceof value="org.jkiss.dbeaver.ui.editors.sql.SQLEditorInput"/>
<instanceof value="org.jkiss.dbeaver.ui.controls.resultset.ResultSetViewer"/>
</or>
</enabledWhen>
</page>
<page category="org.jkiss.dbeaver.preferences.main.resultset" id="org.jkiss.dbeaver.preferences.main.dataformat" class="org.jkiss.dbeaver.ui.preferences.PrefPageDataFormat" name="Data Formats"> <page category="org.jkiss.dbeaver.preferences.main.resultset" id="org.jkiss.dbeaver.preferences.main.dataformat" class="org.jkiss.dbeaver.ui.preferences.PrefPageDataFormat" name="Data Formats">
<enabledWhen> <enabledWhen>
<or> <or>
......
...@@ -106,6 +106,7 @@ public class EditConnectionWizard extends ConnectionWizard ...@@ -106,6 +106,7 @@ public class EditConnectionWizard extends ConnectionWizard
WizardPrefPage rsPage = addPreferencePage(new PrefPageResultSetMain(), "Result Sets", "Result Set preferences"); WizardPrefPage rsPage = addPreferencePage(new PrefPageResultSetMain(), "Result Sets", "Result Set preferences");
rsPage.addSubPage(new PrefPageResultSetBinaries(), "Binaries", "Binary data representation"); rsPage.addSubPage(new PrefPageResultSetBinaries(), "Binaries", "Binary data representation");
rsPage.addSubPage(new PrefPageDataFormat(), "Data Formatting", "Data formatting preferences"); rsPage.addSubPage(new PrefPageDataFormat(), "Data Formatting", "Data formatting preferences");
rsPage.addSubPage(new PrefPageResultSetPresentation(), "Presentation", "ResultSets UI & presentation");
WizardPrefPage sqlPage = addPreferencePage(new PrefPageSQLEditor(), "SQL Editor", "SQL editor settings"); WizardPrefPage sqlPage = addPreferencePage(new PrefPageSQLEditor(), "SQL Editor", "SQL editor settings");
sqlPage.addSubPage(new PrefPageSQLExecute(), "SQL Processing", "SQL processing settings"); sqlPage.addSubPage(new PrefPageSQLExecute(), "SQL Processing", "SQL processing settings");
} }
......
...@@ -28,9 +28,7 @@ import org.jkiss.dbeaver.core.CoreMessages; ...@@ -28,9 +28,7 @@ import org.jkiss.dbeaver.core.CoreMessages;
import org.jkiss.dbeaver.model.DBPPreferenceStore; import org.jkiss.dbeaver.model.DBPPreferenceStore;
import org.jkiss.dbeaver.model.struct.DBSDataSourceContainer; import org.jkiss.dbeaver.model.struct.DBSDataSourceContainer;
import org.jkiss.dbeaver.ui.UIUtils; import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.controls.resultset.spreadsheet.Spreadsheet;
import org.jkiss.dbeaver.utils.PrefUtils; import org.jkiss.dbeaver.utils.PrefUtils;
import org.jkiss.utils.CommonUtils;
/** /**
* PrefPageResultSetMain * PrefPageResultSetMain
...@@ -44,11 +42,6 @@ public class PrefPageResultSetMain extends TargetPrefPage ...@@ -44,11 +42,6 @@ public class PrefPageResultSetMain extends TargetPrefPage
private Button resultSetUseSQLCheck; private Button resultSetUseSQLCheck;
private Button serverSideOrderingCheck; private Button serverSideOrderingCheck;
private Button showOddRows;
private Button showCellIcons;
private Combo doubleClickBehavior;
private Button autoSwitchMode;
private Button keepStatementOpenCheck; private Button keepStatementOpenCheck;
private Button rollbackOnErrorCheck; private Button rollbackOnErrorCheck;
private Button alwaysUseAllColumns; private Button alwaysUseAllColumns;
...@@ -70,11 +63,7 @@ public class PrefPageResultSetMain extends TargetPrefPage ...@@ -70,11 +63,7 @@ public class PrefPageResultSetMain extends TargetPrefPage
store.contains(ModelPreferences.QUERY_ROLLBACK_ON_ERROR) || store.contains(ModelPreferences.QUERY_ROLLBACK_ON_ERROR) ||
store.contains(DBeaverPreferences.RS_EDIT_USE_ALL_COLUMNS) || store.contains(DBeaverPreferences.RS_EDIT_USE_ALL_COLUMNS) ||
store.contains(DBeaverPreferences.KEEP_STATEMENT_OPEN) || store.contains(DBeaverPreferences.KEEP_STATEMENT_OPEN) ||
store.contains(DBeaverPreferences.RESULT_SET_ORDER_SERVER_SIDE) || store.contains(DBeaverPreferences.RESULT_SET_ORDER_SERVER_SIDE)
store.contains(DBeaverPreferences.RESULT_SET_SHOW_ODD_ROWS) ||
store.contains(DBeaverPreferences.RESULT_SET_SHOW_CELL_ICONS) ||
store.contains(DBeaverPreferences.RESULT_SET_DOUBLE_CLICK) ||
store.contains(DBeaverPreferences.RESULT_SET_AUTO_SWITCH_MODE)
; ;
} }
...@@ -119,18 +108,6 @@ public class PrefPageResultSetMain extends TargetPrefPage ...@@ -119,18 +108,6 @@ public class PrefPageResultSetMain extends TargetPrefPage
alwaysUseAllColumns = UIUtils.createLabelCheckbox(txnGroup, CoreMessages.pref_page_content_editor_checkbox_keys_always_use_all_columns, false); alwaysUseAllColumns = UIUtils.createLabelCheckbox(txnGroup, CoreMessages.pref_page_content_editor_checkbox_keys_always_use_all_columns, false);
} }
{
Group uiGroup = UIUtils.createControlGroup(composite, "UI", 2, SWT.NONE, 0);
showOddRows = UIUtils.createLabelCheckbox(uiGroup, "Mark odd/even rows", false);
showCellIcons = UIUtils.createLabelCheckbox(uiGroup, "Show cell icons", false);
doubleClickBehavior = UIUtils.createLabelCombo(uiGroup, "Double-click behavior", SWT.READ_ONLY);
doubleClickBehavior.add("None", Spreadsheet.DoubleClickBehavior.NONE.ordinal());
doubleClickBehavior.add("Editor", Spreadsheet.DoubleClickBehavior.EDITOR.ordinal());
doubleClickBehavior.add("Inline Editor", Spreadsheet.DoubleClickBehavior.INLINE_EDITOR.ordinal());
autoSwitchMode = UIUtils.createLabelCheckbox(uiGroup, "Switch to record/grid mode\non single/multiple row(s)", false);
}
return composite; return composite;
} }
...@@ -146,12 +123,6 @@ public class PrefPageResultSetMain extends TargetPrefPage ...@@ -146,12 +123,6 @@ public class PrefPageResultSetMain extends TargetPrefPage
keepStatementOpenCheck.setSelection(store.getBoolean(DBeaverPreferences.KEEP_STATEMENT_OPEN)); keepStatementOpenCheck.setSelection(store.getBoolean(DBeaverPreferences.KEEP_STATEMENT_OPEN));
rollbackOnErrorCheck.setSelection(store.getBoolean(ModelPreferences.QUERY_ROLLBACK_ON_ERROR)); rollbackOnErrorCheck.setSelection(store.getBoolean(ModelPreferences.QUERY_ROLLBACK_ON_ERROR));
alwaysUseAllColumns.setSelection(store.getBoolean(DBeaverPreferences.RS_EDIT_USE_ALL_COLUMNS)); alwaysUseAllColumns.setSelection(store.getBoolean(DBeaverPreferences.RS_EDIT_USE_ALL_COLUMNS));
showOddRows.setSelection(store.getBoolean(DBeaverPreferences.RESULT_SET_SHOW_ODD_ROWS));
showCellIcons.setSelection(store.getBoolean(DBeaverPreferences.RESULT_SET_SHOW_CELL_ICONS));
doubleClickBehavior.select(
Spreadsheet.DoubleClickBehavior.valueOf(store.getString(DBeaverPreferences.RESULT_SET_DOUBLE_CLICK)).ordinal());
autoSwitchMode.setSelection(store.getBoolean(DBeaverPreferences.RESULT_SET_AUTO_SWITCH_MODE));
} catch (Exception e) { } catch (Exception e) {
log.warn(e); log.warn(e);
} }
...@@ -169,11 +140,6 @@ public class PrefPageResultSetMain extends TargetPrefPage ...@@ -169,11 +140,6 @@ public class PrefPageResultSetMain extends TargetPrefPage
store.setValue(DBeaverPreferences.KEEP_STATEMENT_OPEN, keepStatementOpenCheck.getSelection()); store.setValue(DBeaverPreferences.KEEP_STATEMENT_OPEN, keepStatementOpenCheck.getSelection());
store.setValue(ModelPreferences.QUERY_ROLLBACK_ON_ERROR, rollbackOnErrorCheck.getSelection()); store.setValue(ModelPreferences.QUERY_ROLLBACK_ON_ERROR, rollbackOnErrorCheck.getSelection());
store.setValue(DBeaverPreferences.RS_EDIT_USE_ALL_COLUMNS, alwaysUseAllColumns.getSelection()); store.setValue(DBeaverPreferences.RS_EDIT_USE_ALL_COLUMNS, alwaysUseAllColumns.getSelection());
store.setValue(DBeaverPreferences.RESULT_SET_SHOW_ODD_ROWS, showOddRows.getSelection());
store.setValue(DBeaverPreferences.RESULT_SET_SHOW_CELL_ICONS, showCellIcons.getSelection());
store.setValue(DBeaverPreferences.RESULT_SET_DOUBLE_CLICK, CommonUtils.fromOrdinal(Spreadsheet.DoubleClickBehavior.class, doubleClickBehavior.getSelectionIndex()).name());
store.setValue(DBeaverPreferences.RESULT_SET_AUTO_SWITCH_MODE, autoSwitchMode.getSelection());
} catch (Exception e) { } catch (Exception e) {
log.warn(e); log.warn(e);
} }
...@@ -186,16 +152,11 @@ public class PrefPageResultSetMain extends TargetPrefPage ...@@ -186,16 +152,11 @@ public class PrefPageResultSetMain extends TargetPrefPage
store.setToDefault(DBeaverPreferences.RESULT_SET_AUTO_FETCH_NEXT_SEGMENT); store.setToDefault(DBeaverPreferences.RESULT_SET_AUTO_FETCH_NEXT_SEGMENT);
store.setToDefault(DBeaverPreferences.RESULT_SET_MAX_ROWS); store.setToDefault(DBeaverPreferences.RESULT_SET_MAX_ROWS);
store.setToDefault(ModelPreferences.RESULT_SET_MAX_ROWS_USE_SQL); store.setToDefault(ModelPreferences.RESULT_SET_MAX_ROWS_USE_SQL);
store.setToDefault(DBeaverPreferences.RESULT_SET_ORDER_SERVER_SIDE);
store.setToDefault(DBeaverPreferences.KEEP_STATEMENT_OPEN); store.setToDefault(DBeaverPreferences.KEEP_STATEMENT_OPEN);
store.setToDefault(ModelPreferences.QUERY_ROLLBACK_ON_ERROR); store.setToDefault(ModelPreferences.QUERY_ROLLBACK_ON_ERROR);
store.setToDefault(DBeaverPreferences.RS_EDIT_USE_ALL_COLUMNS); store.setToDefault(DBeaverPreferences.RS_EDIT_USE_ALL_COLUMNS);
store.setToDefault(DBeaverPreferences.RESULT_SET_ORDER_SERVER_SIDE);
store.setToDefault(DBeaverPreferences.RESULT_SET_SHOW_ODD_ROWS);
store.setToDefault(DBeaverPreferences.RESULT_SET_SHOW_CELL_ICONS);
store.setToDefault(DBeaverPreferences.RESULT_SET_DOUBLE_CLICK);
store.setToDefault(DBeaverPreferences.RESULT_SET_AUTO_SWITCH_MODE);
} }
@Override @Override
......
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2015 Serge Rieder (serge@jkiss.org)
* Copyright (C) 2011-2012 Eugene Fradkin (eugene.fradkin@gmail.com)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License (version 2)
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package org.jkiss.dbeaver.ui.preferences;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.*;
import org.jkiss.dbeaver.DBeaverPreferences;
import org.jkiss.dbeaver.model.DBPPreferenceStore;
import org.jkiss.dbeaver.model.struct.DBSDataSourceContainer;
import org.jkiss.dbeaver.ui.UIUtils;
import org.jkiss.dbeaver.ui.controls.resultset.spreadsheet.Spreadsheet;
import org.jkiss.dbeaver.utils.PrefUtils;
import org.jkiss.utils.CommonUtils;
/**
* PrefPageResultSetPresentation
*/
public class PrefPageResultSetPresentation extends TargetPrefPage
{
public static final String PAGE_ID = "org.jkiss.dbeaver.preferences.main.resultset.presentation"; //$NON-NLS-1$
private Button gridShowOddRows;
private Button gridShowCellIcons;
private Combo gridDoubleClickBehavior;
private Button autoSwitchMode;
private Spinner textMaxColumnSize;
public PrefPageResultSetPresentation()
{
super();
}
@Override
protected boolean hasDataSourceSpecificOptions(DBSDataSourceContainer dataSourceDescriptor)
{
DBPPreferenceStore store = dataSourceDescriptor.getPreferenceStore();
return
store.contains(DBeaverPreferences.RESULT_SET_SHOW_ODD_ROWS) ||
store.contains(DBeaverPreferences.RESULT_SET_SHOW_CELL_ICONS) ||
store.contains(DBeaverPreferences.RESULT_SET_DOUBLE_CLICK) ||
store.contains(DBeaverPreferences.RESULT_SET_AUTO_SWITCH_MODE) ||
store.contains(DBeaverPreferences.RESULT_TEXT_MAX_COLUMN_SIZE)
;
}
@Override
protected boolean supportsDataSourceSpecificOptions()
{
return true;
}
@Override
protected Control createPreferenceContent(Composite parent)
{
Composite composite = UIUtils.createPlaceholder(parent, 1, 5);
{
Group uiGroup = UIUtils.createControlGroup(composite, "Behavior", 2, SWT.NONE, 0);
autoSwitchMode = UIUtils.createLabelCheckbox(uiGroup, "Switch to record/grid mode on single/multiple row(s)", false);
}
{
Group uiGroup = UIUtils.createControlGroup(composite, "Grid", 2, SWT.NONE, 0);
gridShowOddRows = UIUtils.createLabelCheckbox(uiGroup, "Mark odd/even rows", false);
gridShowCellIcons = UIUtils.createLabelCheckbox(uiGroup, "Show cell icons", false);
gridDoubleClickBehavior = UIUtils.createLabelCombo(uiGroup, "Double-click behavior", SWT.READ_ONLY);
gridDoubleClickBehavior.add("None", Spreadsheet.DoubleClickBehavior.NONE.ordinal());
gridDoubleClickBehavior.add("Editor", Spreadsheet.DoubleClickBehavior.EDITOR.ordinal());
gridDoubleClickBehavior.add("Inline Editor", Spreadsheet.DoubleClickBehavior.INLINE_EDITOR.ordinal());
}
{
Group uiGroup = UIUtils.createControlGroup(composite, "Plain text", 2, SWT.NONE, 0);
textMaxColumnSize = UIUtils.createLabelSpinner(uiGroup, "Maximum column length", 0, 10, Integer.MAX_VALUE);
}
return composite;
}
@Override
protected void loadPreferences(DBPPreferenceStore store)
{
try {
gridShowOddRows.setSelection(store.getBoolean(DBeaverPreferences.RESULT_SET_SHOW_ODD_ROWS));
gridShowCellIcons.setSelection(store.getBoolean(DBeaverPreferences.RESULT_SET_SHOW_CELL_ICONS));
gridDoubleClickBehavior.select(
Spreadsheet.DoubleClickBehavior.valueOf(store.getString(DBeaverPreferences.RESULT_SET_DOUBLE_CLICK)).ordinal());
autoSwitchMode.setSelection(store.getBoolean(DBeaverPreferences.RESULT_SET_AUTO_SWITCH_MODE));
textMaxColumnSize.setSelection(store.getInt(DBeaverPreferences.RESULT_TEXT_MAX_COLUMN_SIZE));
} catch (Exception e) {
log.warn(e);
}
}
@Override
protected void savePreferences(DBPPreferenceStore store)
{
try {
store.setValue(DBeaverPreferences.RESULT_SET_SHOW_ODD_ROWS, gridShowOddRows.getSelection());
store.setValue(DBeaverPreferences.RESULT_SET_SHOW_CELL_ICONS, gridShowCellIcons.getSelection());
store.setValue(DBeaverPreferences.RESULT_SET_DOUBLE_CLICK, CommonUtils.fromOrdinal(Spreadsheet.DoubleClickBehavior.class, gridDoubleClickBehavior.getSelectionIndex()).name());
store.setValue(DBeaverPreferences.RESULT_SET_AUTO_SWITCH_MODE, autoSwitchMode.getSelection());
store.setValue(DBeaverPreferences.RESULT_TEXT_MAX_COLUMN_SIZE, textMaxColumnSize.getSelection());
} catch (Exception e) {
log.warn(e);
}
PrefUtils.savePreferenceStore(store);
}
@Override
protected void clearPreferences(DBPPreferenceStore store)
{
store.setToDefault(DBeaverPreferences.RESULT_SET_SHOW_ODD_ROWS);
store.setToDefault(DBeaverPreferences.RESULT_SET_SHOW_CELL_ICONS);
store.setToDefault(DBeaverPreferences.RESULT_SET_DOUBLE_CLICK);
store.setToDefault(DBeaverPreferences.RESULT_SET_AUTO_SWITCH_MODE);
store.setToDefault(DBeaverPreferences.RESULT_TEXT_MAX_COLUMN_SIZE);
}
@Override
public void applyData(Object data)
{
super.applyData(data);
}
@Override
protected String getPropertyPageID()
{
return PAGE_ID;
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册