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

ResultSet presentation preferences.

Plaintext column max length preference added
上级 3652b078
......@@ -51,4 +51,5 @@ pref.page.name.confirmations=Confirmations
pref.page.name.keys=Keys
pref.page.name.resultset=Result Sets
pref.page.name.resultset.binaries=Binaries
pref.page.name.resultset.presentation=Presentation
pref.page.name.meta=Metadata
......@@ -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">
<keywordReference id="org.jkiss.dbeaver.core.keyword.pref.editor.content"/>
</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">
<keywordReference id="org.jkiss.dbeaver.core.keyword.pref.db.dataformat"/>
</page>
......
......@@ -33,4 +33,5 @@ pref.page.name.resources=Resources
pref.page.name.confirmations=Confirmations
pref.page.name.resultset=Result Sets
pref.page.name.resultset.binaries=Binaries
pref.page.name.resultset.presentation=Presentation
pref.page.name.meta=Metadata
......@@ -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">
<keywordReference id="org.jkiss.dbeaver.core.keyword.pref.editor.content"/>
</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">
<keywordReference id="org.jkiss.dbeaver.core.keyword.pref.db.dataformat"/>
</page>
......
......@@ -1847,6 +1847,15 @@
</or>
</enabledWhen>
</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">
<enabledWhen>
<or>
......
......@@ -106,6 +106,7 @@ public class EditConnectionWizard extends ConnectionWizard
WizardPrefPage rsPage = addPreferencePage(new PrefPageResultSetMain(), "Result Sets", "Result Set preferences");
rsPage.addSubPage(new PrefPageResultSetBinaries(), "Binaries", "Binary data representation");
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");
sqlPage.addSubPage(new PrefPageSQLExecute(), "SQL Processing", "SQL processing settings");
}
......
......@@ -28,9 +28,7 @@ import org.jkiss.dbeaver.core.CoreMessages;
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;
/**
* PrefPageResultSetMain
......@@ -44,11 +42,6 @@ public class PrefPageResultSetMain extends TargetPrefPage
private Button resultSetUseSQLCheck;
private Button serverSideOrderingCheck;
private Button showOddRows;
private Button showCellIcons;
private Combo doubleClickBehavior;
private Button autoSwitchMode;
private Button keepStatementOpenCheck;
private Button rollbackOnErrorCheck;
private Button alwaysUseAllColumns;
......@@ -70,11 +63,7 @@ public class PrefPageResultSetMain extends TargetPrefPage
store.contains(ModelPreferences.QUERY_ROLLBACK_ON_ERROR) ||
store.contains(DBeaverPreferences.RS_EDIT_USE_ALL_COLUMNS) ||
store.contains(DBeaverPreferences.KEEP_STATEMENT_OPEN) ||
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)
store.contains(DBeaverPreferences.RESULT_SET_ORDER_SERVER_SIDE)
;
}
......@@ -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);
}
{
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;
}
......@@ -146,12 +123,6 @@ public class PrefPageResultSetMain extends TargetPrefPage
keepStatementOpenCheck.setSelection(store.getBoolean(DBeaverPreferences.KEEP_STATEMENT_OPEN));
rollbackOnErrorCheck.setSelection(store.getBoolean(ModelPreferences.QUERY_ROLLBACK_ON_ERROR));
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) {
log.warn(e);
}
......@@ -169,11 +140,6 @@ public class PrefPageResultSetMain extends TargetPrefPage
store.setValue(DBeaverPreferences.KEEP_STATEMENT_OPEN, keepStatementOpenCheck.getSelection());
store.setValue(ModelPreferences.QUERY_ROLLBACK_ON_ERROR, rollbackOnErrorCheck.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) {
log.warn(e);
}
......@@ -186,16 +152,11 @@ public class PrefPageResultSetMain extends TargetPrefPage
store.setToDefault(DBeaverPreferences.RESULT_SET_AUTO_FETCH_NEXT_SEGMENT);
store.setToDefault(DBeaverPreferences.RESULT_SET_MAX_ROWS);
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(ModelPreferences.QUERY_ROLLBACK_ON_ERROR);
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
......
/*
* 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.
先完成此消息的编辑!
想要评论请 注册