Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
8080fe13
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,发现更多精彩内容 >>
提交
8080fe13
编写于
10月 16, 2015
作者:
J
jurgen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Do not close editor if RSV save fails
上级
b491d36a
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
38 addition
and
24 deletion
+38
-24
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/IResultSetController.java
...s/dbeaver/ui/controls/resultset/IResultSetController.java
+1
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetPersister.java
...iss/dbeaver/ui/controls/resultset/ResultSetPersister.java
+10
-4
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java
.../jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java
+7
-6
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/Spreadsheet.java
...beaver/ui/controls/resultset/spreadsheet/Spreadsheet.java
+17
-12
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/data/DatabaseDataEditor.java
...org/jkiss/dbeaver/ui/editors/data/DatabaseDataEditor.java
+3
-1
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/IResultSetController.java
浏览文件 @
8080fe13
...
...
@@ -66,7 +66,7 @@ public interface IResultSetController extends DBPContextProvider {
@NotNull
DBPPreferenceStore
getPreferenceStore
();
void
applyChanges
(
@Nullable
DBRProgressMonitor
monitor
);
boolean
applyChanges
(
@Nullable
DBRProgressMonitor
monitor
);
void
rejectChanges
();
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetPersister.java
浏览文件 @
8080fe13
...
...
@@ -75,7 +75,7 @@ class ResultSetPersister {
* @param monitor progress monitor
* @param listener value listener
*/
void
applyChanges
(
@Nullable
DBRProgressMonitor
monitor
,
@Nullable
DataUpdateListener
listener
)
boolean
applyChanges
(
@Nullable
DBRProgressMonitor
monitor
,
@Nullable
DataUpdateListener
listener
)
throws
DBException
{
collectChanges
();
...
...
@@ -83,7 +83,7 @@ class ResultSetPersister {
prepareDeleteStatements
();
prepareInsertStatements
();
prepareUpdateStatements
();
execute
(
monitor
,
listener
);
return
execute
(
monitor
,
listener
);
}
private
void
collectChanges
()
{
...
...
@@ -187,7 +187,7 @@ class ResultSetPersister {
}
}
private
void
execute
(
@Nullable
DBRProgressMonitor
monitor
,
@Nullable
final
DataUpdateListener
listener
)
private
boolean
execute
(
@Nullable
DBRProgressMonitor
monitor
,
@Nullable
final
DataUpdateListener
listener
)
throws
DBException
{
DBCExecutionContext
executionContext
=
viewer
.
getContainer
().
getExecutionContext
();
...
...
@@ -197,8 +197,10 @@ class ResultSetPersister {
DataUpdaterJob
job
=
new
DataUpdaterJob
(
listener
,
executionContext
);
if
(
monitor
==
null
)
{
job
.
schedule
();
return
true
;
}
else
{
job
.
run
(
monitor
);
return
job
.
getError
()
==
null
;
}
}
...
...
@@ -304,6 +306,7 @@ class ResultSetPersister {
private
boolean
autocommit
;
private
DBCStatistics
updateStats
,
insertStats
,
deleteStats
;
private
DBCSavepoint
savepoint
;
private
Throwable
error
;
protected
DataUpdaterJob
(
@Nullable
DataUpdateListener
listener
,
@NotNull
DBCExecutionContext
executionContext
)
{
...
...
@@ -311,10 +314,13 @@ class ResultSetPersister {
this
.
listener
=
listener
;
}
public
Throwable
getError
()
{
return
error
;
}
@Override
protected
IStatus
run
(
DBRProgressMonitor
monitor
)
{
final
Throwable
error
;
model
.
setUpdateInProgress
(
true
);
updateStats
=
new
DBCStatistics
();
insertStats
=
new
DBCStatistics
();
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java
浏览文件 @
8080fe13
...
...
@@ -1710,9 +1710,9 @@ public class ResultSetViewer extends Viewer
}
@Override
public
void
applyChanges
(
@Nullable
DBRProgressMonitor
monitor
)
public
boolean
applyChanges
(
@Nullable
DBRProgressMonitor
monitor
)
{
applyChanges
(
monitor
,
null
);
return
applyChanges
(
monitor
,
null
);
}
/**
...
...
@@ -1720,11 +1720,11 @@ public class ResultSetViewer extends Viewer
* @param monitor monitor. If null then save will be executed in async job
* @param listener finish listener (may be null)
*/
public
void
applyChanges
(
@Nullable
DBRProgressMonitor
monitor
,
@Nullable
ResultSetPersister
.
DataUpdateListener
listener
)
public
boolean
applyChanges
(
@Nullable
DBRProgressMonitor
monitor
,
@Nullable
ResultSetPersister
.
DataUpdateListener
listener
)
{
if
(!
model
.
isSingleSource
())
{
UIUtils
.
showErrorDialog
(
getControl
().
getShell
(),
"Apply changes error"
,
"Can't save data for result set from multiple sources"
);
return
;
return
false
;
}
try
{
boolean
needPK
=
false
;
...
...
@@ -1738,12 +1738,13 @@ public class ResultSetViewer extends Viewer
// If we have deleted or updated rows then check for unique identifier
if
(!
checkEntityIdentifier
())
{
//UIUtils.showErrorDialog(getControl().getShell(), "Can't apply changes", "Can't apply data changes - not unique identifier defined");
return
;
return
false
;
}
}
new
ResultSetPersister
(
this
).
applyChanges
(
monitor
,
listener
);
return
new
ResultSetPersister
(
this
).
applyChanges
(
monitor
,
listener
);
}
catch
(
DBException
e
)
{
UIUtils
.
showErrorDialog
(
getControl
().
getShell
(),
"Apply changes error"
,
"Error saving changes in database"
,
e
);
return
false
;
}
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/Spreadsheet.java
浏览文件 @
8080fe13
...
...
@@ -237,18 +237,23 @@ public class Spreadsheet extends LightGrid implements Listener {
{
final
Control
editorControl
=
presentation
.
openValueEditor
(
true
);
if
(
editorControl
!=
null
&&
event
.
keyCode
!=
SWT
.
CR
)
{
// Forward the same key event to just created control
final
Event
kdEvent
=
new
Event
();
kdEvent
.
type
=
SWT
.
KeyDown
;
kdEvent
.
character
=
event
.
character
;
kdEvent
.
keyCode
=
event
.
keyCode
;
UIUtils
.
postEvent
(
editorControl
,
kdEvent
);
final
Event
kuEvent
=
new
Event
();
kuEvent
.
type
=
SWT
.
KeyUp
;
kuEvent
.
character
=
event
.
character
;
kuEvent
.
keyCode
=
event
.
keyCode
;
UIUtils
.
postEvent
(
editorControl
,
kuEvent
);
UIUtils
.
runInDetachedUI
(
getShell
(),
new
Runnable
()
{
@Override
public
void
run
()
{
// Forward the same key event to just created control
final
Event
kdEvent
=
new
Event
();
kdEvent
.
type
=
SWT
.
KeyDown
;
kdEvent
.
character
=
event
.
character
;
kdEvent
.
keyCode
=
event
.
keyCode
;
UIUtils
.
postEvent
(
editorControl
,
kdEvent
);
final
Event
kuEvent
=
new
Event
();
kuEvent
.
type
=
SWT
.
KeyUp
;
kuEvent
.
character
=
event
.
character
;
kuEvent
.
keyCode
=
event
.
keyCode
;
UIUtils
.
postEvent
(
editorControl
,
kuEvent
);
}
});
}
}
else
if
(
event
.
keyCode
==
SWT
.
ESC
)
{
// Reset cell value
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/data/DatabaseDataEditor.java
浏览文件 @
8080fe13
...
...
@@ -147,7 +147,9 @@ public class DatabaseDataEditor extends AbstractDatabaseObjectEditor<DBSDataCont
public
void
doSave
(
IProgressMonitor
monitor
)
{
if
(
resultSetView
!=
null
&&
resultSetView
.
isDirty
())
{
resultSetView
.
applyChanges
(
RuntimeUtils
.
makeMonitor
(
monitor
));
if
(!
resultSetView
.
applyChanges
(
RuntimeUtils
.
makeMonitor
(
monitor
)))
{
monitor
.
setCanceled
(
true
);
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录