Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
3e474c16
D
dbeaver
项目概览
suliangchun
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dbeaver
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3e474c16
编写于
1月 06, 2014
作者:
J
jurgen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Double click behavior, show cell icons + npe fixes
上级
17f1d2e1
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
69 addition
and
34 deletion
+69
-34
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverPreferencesInitializer.java
...org/jkiss/dbeaver/core/DBeaverPreferencesInitializer.java
+2
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/UIUtils.java
....jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/UIUtils.java
+1
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetPersister.java
...iss/dbeaver/ui/controls/resultset/ResultSetPersister.java
+2
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java
.../jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java
+29
-14
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/spreadsheet/ISpreadsheetController.java
...eaver/ui/controls/spreadsheet/ISpreadsheetController.java
+5
-6
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/spreadsheet/Spreadsheet.java
...rg/jkiss/dbeaver/ui/controls/spreadsheet/Spreadsheet.java
+20
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/sql/ViewSQLDialog.java
...e/src/org/jkiss/dbeaver/ui/dialogs/sql/ViewSQLDialog.java
+3
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageResultSet.java
...c/org/jkiss/dbeaver/ui/preferences/PrefPageResultSet.java
+6
-6
plugins/org.jkiss.dbeaver.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OracleDataSource.java
.../org/jkiss/dbeaver/ext/oracle/model/OracleDataSource.java
+1
-1
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverPreferencesInitializer.java
浏览文件 @
3e474c16
...
...
@@ -16,7 +16,7 @@ import org.jkiss.dbeaver.runtime.qm.QMConstants;
import
org.jkiss.dbeaver.runtime.qm.QMObjectType
;
import
org.jkiss.dbeaver.runtime.sql.SQLScriptCommitType
;
import
org.jkiss.dbeaver.runtime.sql.SQLScriptErrorHandling
;
import
org.jkiss.dbeaver.ui.controls.
resultset.ResultSetViewer
;
import
org.jkiss.dbeaver.ui.controls.
spreadsheet.Spreadsheet
;
import
org.jkiss.dbeaver.ui.editors.binary.HexEditControl
;
import
org.jkiss.dbeaver.ui.editors.sql.SQLPreferenceConstants
;
import
org.jkiss.dbeaver.utils.ContentUtils
;
...
...
@@ -127,7 +127,7 @@ public class DBeaverPreferencesInitializer extends AbstractPreferenceInitializer
RuntimeUtils
.
setDefaultPreferenceValue
(
store
,
DBeaverPreferences
.
RESULT_SET_ORDER_SERVER_SIDE
,
true
);
RuntimeUtils
.
setDefaultPreferenceValue
(
store
,
DBeaverPreferences
.
RESULT_SET_SHOW_ODD_ROWS
,
true
);
RuntimeUtils
.
setDefaultPreferenceValue
(
store
,
DBeaverPreferences
.
RESULT_SET_SHOW_CELL_ICONS
,
true
);
RuntimeUtils
.
setDefaultPreferenceValue
(
store
,
DBeaverPreferences
.
RESULT_SET_DOUBLE_CLICK
,
ResultSetViewer
.
DoubleClickBehavior
.
EDITOR
.
name
());
RuntimeUtils
.
setDefaultPreferenceValue
(
store
,
DBeaverPreferences
.
RESULT_SET_DOUBLE_CLICK
,
Spreadsheet
.
DoubleClickBehavior
.
INLINE_
EDITOR
.
name
());
// QM
RuntimeUtils
.
setDefaultPreferenceValue
(
store
,
QMConstants
.
PROP_HISTORY_DAYS
,
90
);
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/UIUtils.java
浏览文件 @
3e474c16
...
...
@@ -811,7 +811,7 @@ public class UIUtils {
public
static
void
showErrorDialog
(
Shell
shell
,
String
title
,
String
message
,
@Nullable
String
message
,
@Nullable
Throwable
error
)
{
if
(
error
instanceof
DBException
&&
DBUtils
.
showDatabaseError
(
shell
,
title
,
message
,
(
DBException
)
error
))
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetPersister.java
浏览文件 @
3e474c16
...
...
@@ -21,6 +21,7 @@ package org.jkiss.dbeaver.ui.controls.resultset;
import
org.eclipse.core.runtime.IStatus
;
import
org.eclipse.core.runtime.Status
;
import
org.eclipse.osgi.util.NLS
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.core.CoreMessages
;
import
org.jkiss.dbeaver.model.DBUtils
;
...
...
@@ -70,7 +71,7 @@ class ResultSetPersister {
* @param monitor progress monitor
* @param listener value listener
*/
void
applyChanges
(
DBRProgressMonitor
monitor
,
DataUpdateListener
listener
)
void
applyChanges
(
@Nullable
DBRProgressMonitor
monitor
,
@Nullable
DataUpdateListener
listener
)
throws
DBException
{
prepareDeleteStatements
();
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java
浏览文件 @
3e474c16
...
...
@@ -117,7 +117,6 @@ public class ResultSetViewer extends Viewer implements IDataSourceProvider, ISpr
private
static
final
String
VIEW_PANEL_VISIBLE
=
"viewPanelVisible"
;
private
static
final
String
VIEW_PANEL_RATIO
=
"viewPanelRatio"
;
private
boolean
showOddRows
;
public
enum
GridMode
{
GRID
,
...
...
@@ -131,12 +130,6 @@ public class ResultSetViewer extends Viewer implements IDataSourceProvider, ISpr
LAST
}
public
enum
DoubleClickBehavior
{
NONE
,
EDITOR
,
INLINE_EDITOR
}
private
final
IWorkbenchPartSite
site
;
private
final
Composite
viewerPanel
;
private
Composite
filtersPanel
;
...
...
@@ -176,6 +169,9 @@ public class ResultSetViewer extends Viewer implements IDataSourceProvider, ISpr
private
final
ResultSetModel
model
=
new
ResultSetModel
();
private
boolean
showOddRows
=
true
;
private
boolean
showCelIcons
=
true
;
public
ResultSetViewer
(
Composite
parent
,
IWorkbenchPartSite
site
,
ResultSetProvider
resultSetProvider
)
{
super
();
...
...
@@ -322,7 +318,7 @@ public class ResultSetViewer extends Viewer implements IDataSourceProvider, ISpr
public
void
widgetSelected
(
SelectionEvent
e
)
{
String
queryText
=
model
.
getStatistics
()
==
null
?
null
:
model
.
getStatistics
().
getQueryText
();
if
(
CommonUtils
.
isEmpty
(
queryText
))
{
if
(
queryText
==
null
||
queryText
.
isEmpty
(
))
{
queryText
=
"<empty>"
;
}
ViewSQLDialog
dialog
=
new
ViewSQLDialog
(
site
,
getDataSource
(),
"Query Text"
,
DBIcon
.
SQL_TEXT
.
getImage
(),
queryText
);
...
...
@@ -1704,7 +1700,12 @@ public class ResultSetViewer extends Viewer implements IDataSourceProvider, ISpr
}
}
showOddRows
=
getPreferenceStore
().
getBoolean
(
DBeaverPreferences
.
RESULT_SET_SHOW_ODD_ROWS
);
// Cache preferences
IPreferenceStore
preferenceStore
=
getPreferenceStore
();
showOddRows
=
preferenceStore
.
getBoolean
(
DBeaverPreferences
.
RESULT_SET_SHOW_ODD_ROWS
);
showCelIcons
=
preferenceStore
.
getBoolean
(
DBeaverPreferences
.
RESULT_SET_SHOW_CELL_ICONS
);
// Pump data
int
oldRowNum
=
curRowNum
;
int
oldColNum
=
curColNum
;
...
...
@@ -1781,7 +1782,7 @@ public class ResultSetViewer extends Viewer implements IDataSourceProvider, ISpr
return
getPreferenceStore
().
getInt
(
DBeaverPreferences
.
RESULT_SET_MAX_ROWS
);
}
p
rivate
IPreferenceStore
getPreferenceStore
()
p
ublic
IPreferenceStore
getPreferenceStore
()
{
DBPDataSource
dataSource
=
getDataSource
();
if
(
dataSource
!=
null
)
{
...
...
@@ -1793,8 +1794,8 @@ public class ResultSetViewer extends Viewer implements IDataSourceProvider, ISpr
private
synchronized
void
runDataPump
(
final
int
offset
,
final
int
maxRows
,
final
GridPos
oldPos
,
final
Runnable
finalizer
)
@Nullable
final
GridPos
oldPos
,
@Nullable
final
Runnable
finalizer
)
{
if
(
dataPumpJob
==
null
)
{
dataPumpJob
=
new
ResultSetDataPumpJob
(
this
);
...
...
@@ -2028,9 +2029,14 @@ public class ResultSetViewer extends Viewer implements IDataSourceProvider, ISpr
}
}
@Nullable
private
Object
getColumnValueFromClipboard
(
DBDAttributeBinding
metaColumn
)
throws
DBCException
{
DBCSession
session
=
getDataSource
().
openSession
(
VoidProgressMonitor
.
INSTANCE
,
DBCExecutionPurpose
.
UTIL
,
"Copy from clipboard"
);
DBPDataSource
dataSource
=
getDataSource
();
if
(
dataSource
==
null
)
{
return
null
;
}
DBCSession
session
=
dataSource
.
openSession
(
VoidProgressMonitor
.
INSTANCE
,
DBCExecutionPurpose
.
UTIL
,
"Copy from clipboard"
);
try
{
String
strValue
=
(
String
)
getSpreadsheet
().
getClipboard
().
getContents
(
TextTransfer
.
getInstance
());
return
metaColumn
.
getValueHandler
().
getValueFromObject
(
...
...
@@ -2054,6 +2060,11 @@ public class ResultSetViewer extends Viewer implements IDataSourceProvider, ISpr
}
model
.
shiftRows
(
rowNum
,
1
);
final
DBPDataSource
dataSource
=
getDataSource
();
if
(
dataSource
==
null
)
{
return
;
}
// Add new row
final
DBDAttributeBinding
[]
columns
=
model
.
getColumns
();
final
Object
[]
cells
=
new
Object
[
columns
.
length
];
...
...
@@ -2065,7 +2076,7 @@ public class ResultSetViewer extends Viewer implements IDataSourceProvider, ISpr
throws
InvocationTargetException
,
InterruptedException
{
// Copy cell values in new context
DBCSession
session
=
getDataSource
()
.
openSession
(
monitor
,
DBCExecutionPurpose
.
UTIL
,
CoreMessages
.
controls_resultset_viewer_add_new_row_context_name
);
DBCSession
session
=
dataSource
.
openSession
(
monitor
,
DBCExecutionPurpose
.
UTIL
,
CoreMessages
.
controls_resultset_viewer_add_new_row_context_name
);
try
{
if
(
copyCurrent
&&
currentRowNumber
>=
0
&&
currentRowNumber
<
model
.
getRowCount
())
{
Object
[]
origRow
=
model
.
getRowData
(
currentRowNumber
);
...
...
@@ -2173,6 +2184,7 @@ public class ResultSetViewer extends Viewer implements IDataSourceProvider, ISpr
//////////////////////////////////
// Virtual identifier management
@Nullable
DBCEntityIdentifier
getVirtualEntityIdentifier
()
{
if
(!
model
.
isSingleSource
()
||
model
.
getVisibleColumnCount
()
==
0
)
{
...
...
@@ -2595,6 +2607,9 @@ public class ResultSetViewer extends Viewer implements IDataSourceProvider, ISpr
@Override
public
Image
getImage
(
int
col
,
int
row
)
{
if
(!
showCelIcons
)
{
return
null
;
}
DBDAttributeBinding
attr
;
if
(
gridMode
==
GridMode
.
RECORD
)
{
if
(
row
>=
model
.
getVisibleColumnCount
())
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/spreadsheet/ISpreadsheetController.java
浏览文件 @
3e474c16
...
...
@@ -20,6 +20,7 @@
package
org.jkiss.dbeaver.ui.controls.spreadsheet
;
import
org.eclipse.jface.action.IMenuManager
;
import
org.eclipse.jface.preference.IPreferenceStore
;
import
org.eclipse.swt.widgets.Control
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.ui.controls.lightgrid.GridColumn
;
...
...
@@ -43,11 +44,9 @@ public interface ISpreadsheetController {
void
resetCellValue
(
GridPos
cell
,
boolean
delete
);
void
fillContextMenu
(
GridPos
cell
,
IMenuManager
manager
);
void
fillContextMenu
(
GridPos
cell
,
IMenuManager
manager
);
void
changeSorting
(
GridColumn
column
,
int
state
);
void
changeSorting
(
GridColumn
column
,
int
state
);
IPreferenceStore
getPreferenceStore
(
);
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/spreadsheet/Spreadsheet.java
浏览文件 @
3e474c16
...
...
@@ -32,7 +32,6 @@ import org.eclipse.swt.events.DisposeListener;
import
org.eclipse.swt.events.SelectionEvent
;
import
org.eclipse.swt.events.SelectionListener
;
import
org.eclipse.swt.graphics.Color
;
import
org.eclipse.swt.graphics.GC
;
import
org.eclipse.swt.graphics.Point
;
import
org.eclipse.swt.graphics.Rectangle
;
import
org.eclipse.swt.layout.GridData
;
...
...
@@ -40,6 +39,7 @@ import org.eclipse.swt.layout.GridLayout;
import
org.eclipse.swt.widgets.*
;
import
org.eclipse.ui.IWorkbenchActionConstants
;
import
org.eclipse.ui.IWorkbenchPartSite
;
import
org.jkiss.dbeaver.DBeaverPreferences
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.controls.lightgrid.*
;
...
...
@@ -49,6 +49,12 @@ import org.jkiss.dbeaver.ui.controls.lightgrid.*;
public
class
Spreadsheet
extends
LightGrid
implements
Listener
{
static
final
Log
log
=
LogFactory
.
getLog
(
Spreadsheet
.
class
);
public
enum
DoubleClickBehavior
{
NONE
,
EDITOR
,
INLINE_EDITOR
}
private
static
final
String
SPREADSHEET_CONTROL_ID
=
"org.jkiss.dbeaver.ui.spreadsheet"
;
public
static
final
int
MAX_DEF_COLUMN_WIDTH
=
300
;
public
static
final
int
MAX_INLINE_EDIT_WITH
=
300
;
...
...
@@ -389,7 +395,19 @@ public class Spreadsheet extends LightGrid implements Listener {
GridPos
pos
=
super
.
getCell
(
new
Point
(
event
.
x
,
event
.
y
));
GridPos
focusPos
=
super
.
getFocusCell
();
if
(
pos
!=
null
&&
focusPos
!=
null
&&
pos
.
equals
(
super
.
getFocusCell
()))
{
spreadsheetController
.
showCellEditor
(
false
);
DoubleClickBehavior
doubleClickBehavior
=
DoubleClickBehavior
.
valueOf
(
getController
().
getPreferenceStore
().
getString
(
DBeaverPreferences
.
RESULT_SET_DOUBLE_CLICK
));
switch
(
doubleClickBehavior
)
{
case
NONE:
return
;
case
EDITOR:
spreadsheetController
.
showCellEditor
(
false
);
break
;
case
INLINE_EDITOR:
spreadsheetController
.
showCellEditor
(
true
);
break
;
}
}
break
;
case
SWT
.
MouseDown
:
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/sql/ViewSQLDialog.java
浏览文件 @
3e474c16
...
...
@@ -24,6 +24,7 @@ import org.eclipse.swt.layout.GridData;
import
org.eclipse.swt.widgets.Composite
;
import
org.eclipse.swt.widgets.Control
;
import
org.eclipse.ui.IWorkbenchPartSite
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.core.CoreMessages
;
import
org.jkiss.dbeaver.model.DBPDataSource
;
...
...
@@ -35,7 +36,7 @@ public class ViewSQLDialog extends BaseSQLDialog {
private
boolean
enlargeViewPanel
=
true
;
private
boolean
wordWrap
=
false
;
public
ViewSQLDialog
(
final
IWorkbenchPartSite
parentSite
,
DBPDataSource
dataSource
,
String
title
,
Image
image
,
String
text
)
public
ViewSQLDialog
(
final
IWorkbenchPartSite
parentSite
,
@Nullable
DBPDataSource
dataSource
,
String
title
,
Image
image
,
String
text
)
{
super
(
parentSite
,
title
,
image
);
this
.
dataSource
=
dataSource
;
...
...
@@ -106,6 +107,7 @@ public class ViewSQLDialog extends BaseSQLDialog {
}
}
@Nullable
@Override
public
DBPDataSource
getDataSource
()
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageResultSet.java
浏览文件 @
3e474c16
...
...
@@ -31,7 +31,7 @@ import org.jkiss.dbeaver.model.data.DBDValueController;
import
org.jkiss.dbeaver.registry.DataSourceDescriptor
;
import
org.jkiss.dbeaver.runtime.RuntimeUtils
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.controls.
resultset.ResultSetViewer
;
import
org.jkiss.dbeaver.ui.controls.
spreadsheet.Spreadsheet
;
import
org.jkiss.dbeaver.utils.AbstractPreferenceStore
;
import
org.jkiss.utils.CommonUtils
;
...
...
@@ -161,9 +161,9 @@ public class PrefPageResultSet extends TargetPrefPage
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"
,
ResultSetViewer
.
DoubleClickBehavior
.
NONE
.
ordinal
());
doubleClickBehavior
.
add
(
"Editor"
,
ResultSetViewer
.
DoubleClickBehavior
.
EDITOR
.
ordinal
());
doubleClickBehavior
.
add
(
"Inline Editor"
,
ResultSetViewer
.
DoubleClickBehavior
.
INLINE_EDITOR
.
ordinal
());
doubleClickBehavior
.
add
(
"None"
,
Spreadsheet
.
DoubleClickBehavior
.
NONE
.
ordinal
());
doubleClickBehavior
.
add
(
"Editor"
,
Spreadsheet
.
DoubleClickBehavior
.
EDITOR
.
ordinal
());
doubleClickBehavior
.
add
(
"Inline Editor"
,
Spreadsheet
.
DoubleClickBehavior
.
INLINE_EDITOR
.
ordinal
());
}
return
composite
;
...
...
@@ -199,7 +199,7 @@ public class PrefPageResultSet extends TargetPrefPage
showOddRows
.
setSelection
(
store
.
getBoolean
(
DBeaverPreferences
.
RESULT_SET_SHOW_ODD_ROWS
));
showCellIcons
.
setSelection
(
store
.
getBoolean
(
DBeaverPreferences
.
RESULT_SET_SHOW_CELL_ICONS
));
doubleClickBehavior
.
select
(
ResultSetViewer
.
DoubleClickBehavior
.
valueOf
(
store
.
getString
(
DBeaverPreferences
.
RESULT_SET_DOUBLE_CLICK
)).
ordinal
());
Spreadsheet
.
DoubleClickBehavior
.
valueOf
(
store
.
getString
(
DBeaverPreferences
.
RESULT_SET_DOUBLE_CLICK
)).
ordinal
());
}
catch
(
Exception
e
)
{
log
.
warn
(
e
);
}
...
...
@@ -231,7 +231,7 @@ public class PrefPageResultSet extends TargetPrefPage
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
(
ResultSetViewer
.
DoubleClickBehavior
.
class
,
doubleClickBehavior
.
getSelectionIndex
()).
name
());
store
.
setValue
(
DBeaverPreferences
.
RESULT_SET_DOUBLE_CLICK
,
CommonUtils
.
fromOrdinal
(
Spreadsheet
.
DoubleClickBehavior
.
class
,
doubleClickBehavior
.
getSelectionIndex
()).
name
());
}
catch
(
Exception
e
)
{
log
.
warn
(
e
);
}
...
...
plugins/org.jkiss.dbeaver.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OracleDataSource.java
浏览文件 @
3e474c16
...
...
@@ -270,7 +270,7 @@ public class OracleDataSource extends JDBCDataSource
}
}
Object
sessionTerritory
=
connectionInfo
.
getProperties
().
get
(
OracleConstants
.
PROP_SESSION_TERRITORY
);
if
(
session
Language
!=
null
)
{
if
(
session
Territory
!=
null
)
{
try
{
JDBCUtils
.
executeSQL
(
session
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录