Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
63f79bc8
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,发现更多精彩内容 >>
提交
63f79bc8
编写于
8月 06, 2019
作者:
S
Serge Rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#6447 SQL editor: confirm results tabs close
上级
dfce1d0b
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
68 addition
and
25 deletion
+68
-25
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageConfirmations.java
...g/jkiss/dbeaver/ui/preferences/PrefPageConfirmations.java
+20
-19
plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java
...s.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java
+39
-6
plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLPreferenceConstants.java
.../jkiss/dbeaver/ui/editors/sql/SQLPreferenceConstants.java
+1
-0
plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/internal/SQLEditorMessages.properties
...aver/ui/editors/sql/internal/SQLEditorMessages.properties
+4
-0
plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/internal/SQLEditorMessages_ru.properties
...r/ui/editors/sql/internal/SQLEditorMessages_ru.properties
+4
-0
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/preferences/PrefPageConfirmations.java
浏览文件 @
63f79bc8
...
...
@@ -101,24 +101,25 @@ public class PrefPageConfirmations extends AbstractPrefPage implements IWorkbenc
}
};
createConfirmCheckbox
(
CoreMessages
.
pref_page_confirmations_group_general_actions
,
coreBundle
,
DBeaverPreferences
.
CONFIRM_EXIT
);
createConfirmCheckbox
(
CoreMessages
.
pref_page_confirmations_group_general_actions
,
rsvBundle
,
ResultSetPreferences
.
CONFIRM_ORDER_RESULTSET
);
//createConfirmCheckbox(CoreMessages.pref_page_confirmations_group_general_actions, rsvBundle, ResultSetPreferences.CONFIRM_RS_EDIT_CLOSE);
createConfirmCheckbox
(
CoreMessages
.
pref_page_confirmations_group_general_actions
,
rsvBundle
,
ResultSetPreferences
.
CONFIRM_RS_FETCH_ALL
);
createConfirmCheckbox
(
CoreMessages
.
pref_page_confirmations_group_general_actions
,
coreBundle
,
DBeaverPreferences
.
CONFIRM_TXN_DISCONNECT
);
createConfirmCheckbox
(
CoreMessages
.
pref_page_confirmations_group_general_actions
,
coreBundle
,
DBeaverPreferences
.
CONFIRM_DRIVER_DOWNLOAD
);
createConfirmCheckbox
(
CoreMessages
.
pref_page_confirmations_group_general_actions
,
coreBundle
,
DBeaverPreferences
.
CONFIRM_VERSION_CHECK
);
//createConfirmCheckbox(CoreMessages.pref_page_confirmations_group_object_editor, navigatorBundle, NavigatorPreferences.CONFIRM_ENTITY_EDIT_CLOSE);
createConfirmCheckbox
(
CoreMessages
.
pref_page_confirmations_group_object_editor
,
navigatorBundle
,
NavigatorPreferences
.
CONFIRM_ENTITY_DELETE
);
createConfirmCheckbox
(
CoreMessages
.
pref_page_confirmations_group_object_editor
,
navigatorBundle
,
NavigatorPreferences
.
CONFIRM_ENTITY_REJECT
);
createConfirmCheckbox
(
CoreMessages
.
pref_page_confirmations_group_object_editor
,
navigatorBundle
,
NavigatorPreferences
.
CONFIRM_ENTITY_REVERT
);
createConfirmCheckbox
(
CoreMessages
.
pref_page_confirmations_group_object_editor
,
rsvBundle
,
ResultSetPreferences
.
CONFIRM_KEEP_STATEMENT_OPEN
);
createConfirmCheckbox
(
CoreMessages
.
pref_page_confirmations_group_object_editor
,
sqlBundle
,
SQLPreferenceConstants
.
CONFIRM_DANGER_SQL
);
createConfirmCheckbox
(
CoreMessages
.
pref_page_confirmations_group_object_editor
,
sqlBundle
,
SQLPreferenceConstants
.
CONFIRM_MASS_PARALLEL_SQL
);
createConfirmCheckbox
(
CoreMessages
.
pref_page_confirmations_group_object_editor
,
sqlBundle
,
SQLPreferenceConstants
.
CONFIRM_RUNNING_QUERY_CLOSE
);
//createConfirmCheckbox(CoreMessages.pref_page_confirmations_group_object_editor, navigatorBundle, NavigatorPreferences.CONFIRM_EDITOR_CLOSE);
createConfirmItem
(
CoreMessages
.
pref_page_confirmations_group_general_actions
,
coreBundle
,
DBeaverPreferences
.
CONFIRM_EXIT
);
createConfirmItem
(
CoreMessages
.
pref_page_confirmations_group_general_actions
,
rsvBundle
,
ResultSetPreferences
.
CONFIRM_ORDER_RESULTSET
);
//createConfirmItem(CoreMessages.pref_page_confirmations_group_general_actions, rsvBundle, ResultSetPreferences.CONFIRM_RS_EDIT_CLOSE);
createConfirmItem
(
CoreMessages
.
pref_page_confirmations_group_general_actions
,
rsvBundle
,
ResultSetPreferences
.
CONFIRM_RS_FETCH_ALL
);
createConfirmItem
(
CoreMessages
.
pref_page_confirmations_group_general_actions
,
coreBundle
,
DBeaverPreferences
.
CONFIRM_TXN_DISCONNECT
);
createConfirmItem
(
CoreMessages
.
pref_page_confirmations_group_general_actions
,
coreBundle
,
DBeaverPreferences
.
CONFIRM_DRIVER_DOWNLOAD
);
createConfirmItem
(
CoreMessages
.
pref_page_confirmations_group_general_actions
,
coreBundle
,
DBeaverPreferences
.
CONFIRM_VERSION_CHECK
);
//createConfirmItem(CoreMessages.pref_page_confirmations_group_object_editor, navigatorBundle, NavigatorPreferences.CONFIRM_ENTITY_EDIT_CLOSE);
createConfirmItem
(
CoreMessages
.
pref_page_confirmations_group_object_editor
,
navigatorBundle
,
NavigatorPreferences
.
CONFIRM_ENTITY_DELETE
);
createConfirmItem
(
CoreMessages
.
pref_page_confirmations_group_object_editor
,
navigatorBundle
,
NavigatorPreferences
.
CONFIRM_ENTITY_REJECT
);
createConfirmItem
(
CoreMessages
.
pref_page_confirmations_group_object_editor
,
navigatorBundle
,
NavigatorPreferences
.
CONFIRM_ENTITY_REVERT
);
createConfirmItem
(
CoreMessages
.
pref_page_confirmations_group_object_editor
,
rsvBundle
,
ResultSetPreferences
.
CONFIRM_KEEP_STATEMENT_OPEN
);
createConfirmItem
(
CoreMessages
.
pref_page_confirmations_group_object_editor
,
sqlBundle
,
SQLPreferenceConstants
.
CONFIRM_DANGER_SQL
);
createConfirmItem
(
CoreMessages
.
pref_page_confirmations_group_object_editor
,
sqlBundle
,
SQLPreferenceConstants
.
CONFIRM_MASS_PARALLEL_SQL
);
createConfirmItem
(
CoreMessages
.
pref_page_confirmations_group_object_editor
,
sqlBundle
,
SQLPreferenceConstants
.
CONFIRM_RUNNING_QUERY_CLOSE
);
createConfirmItem
(
CoreMessages
.
pref_page_confirmations_group_object_editor
,
sqlBundle
,
SQLPreferenceConstants
.
CONFIRM_RESULT_TABS_CLOSE
);
//createConfirmItem(CoreMessages.pref_page_confirmations_group_object_editor, navigatorBundle, NavigatorPreferences.CONFIRM_EDITOR_CLOSE);
UIUtils
.
asyncExec
(()
->
UIUtils
.
packColumns
(
confirmTable
,
true
));
...
...
@@ -127,7 +128,7 @@ public class PrefPageConfirmations extends AbstractPrefPage implements IWorkbenc
return
composite
;
}
private
void
createConfirm
Checkbox
(
String
group
,
ResourceBundle
bundle
,
String
id
)
private
void
createConfirm
Item
(
String
group
,
ResourceBundle
bundle
,
String
id
)
{
String
labelKey
=
ConfirmationDialog
.
getResourceKey
(
id
,
ConfirmationDialog
.
RES_KEY_TITLE
);
String
title
=
bundle
.
getString
(
labelKey
);
...
...
plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditor.java
浏览文件 @
63f79bc8
...
...
@@ -106,6 +106,7 @@ import org.jkiss.dbeaver.ui.editors.EditorUtils;
import
org.jkiss.dbeaver.ui.editors.INonPersistentEditorInput
;
import
org.jkiss.dbeaver.ui.editors.StringEditorInput
;
import
org.jkiss.dbeaver.ui.editors.sql.execute.SQLQueryJob
;
import
org.jkiss.dbeaver.ui.editors.sql.internal.SQLEditorActivator
;
import
org.jkiss.dbeaver.ui.editors.sql.internal.SQLEditorMessages
;
import
org.jkiss.dbeaver.ui.editors.sql.log.SQLLogPanel
;
import
org.jkiss.dbeaver.ui.editors.sql.plan.ExplainPlanViewer
;
...
...
@@ -113,7 +114,9 @@ import org.jkiss.dbeaver.ui.editors.sql.registry.SQLPresentationDescriptor;
import
org.jkiss.dbeaver.ui.editors.sql.registry.SQLPresentationPanelDescriptor
;
import
org.jkiss.dbeaver.ui.editors.sql.registry.SQLPresentationRegistry
;
import
org.jkiss.dbeaver.ui.editors.text.ScriptPositionColumn
;
import
org.jkiss.dbeaver.ui.internal.UINavigatorMessages
;
import
org.jkiss.dbeaver.ui.navigator.INavigatorModelView
;
import
org.jkiss.dbeaver.ui.navigator.NavigatorPreferences
;
import
org.jkiss.dbeaver.utils.GeneralUtils
;
import
org.jkiss.dbeaver.utils.PrefUtils
;
import
org.jkiss.dbeaver.utils.RuntimeUtils
;
...
...
@@ -964,7 +967,7 @@ public class SQLEditor extends SQLEditorBase implements
@Override
public
void
run
()
{
closeExtraResultTabs
(
null
);
closeExtraResultTabs
(
null
,
false
);
}
});
int
pinnedTabsCount
=
0
;
...
...
@@ -1806,6 +1809,7 @@ public class SQLEditor extends SQLEditorBase implements
if
(
getActivePreferenceStore
().
getBoolean
(
SQLPreferenceConstants
.
AUTO_SAVE_ON_EXECUTE
)
&&
isDirty
())
{
doSave
(
new
NullProgressMonitor
());
}
boolean
extraTabsClosed
=
false
;
if
(!
export
)
{
if
(
getActivePreferenceStore
().
getBoolean
(
SQLPreferenceConstants
.
CLEAR_OUTPUT_BEFORE_EXECUTE
))
{
outputViewer
.
clearOutput
();
...
...
@@ -1813,7 +1817,10 @@ public class SQLEditor extends SQLEditorBase implements
if
(!
newTab
||
!
isSingleQuery
)
{
// We don't need new tab or we are executing a script - so close all extra tabs
closeExtraResultTabs
(
null
);
if
(!
closeExtraResultTabs
(
null
,
true
))
{
return
;
}
extraTabsClosed
=
true
;
}
}
...
...
@@ -1852,7 +1859,11 @@ public class SQLEditor extends SQLEditorBase implements
}
}
}
closeExtraResultTabs
(
curQueryProcessor
);
if
(!
extraTabsClosed
)
{
if
(!
closeExtraResultTabs
(
curQueryProcessor
,
true
))
{
return
;
}
}
if
(
firstResults
.
tabItem
!=
null
)
{
// Do not switch tab if Output tab is active
CTabItem
selectedTab
=
resultTabs
.
getSelection
();
...
...
@@ -1873,9 +1884,10 @@ public class SQLEditor extends SQLEditorBase implements
}
}
private
void
closeExtraResultTabs
(
@Nullable
QueryProcessor
queryProcessor
)
private
boolean
closeExtraResultTabs
(
@Nullable
QueryProcessor
queryProcessor
,
boolean
confirmClose
)
{
// Close all tabs except first one
List
<
CTabItem
>
tabsToClose
=
new
ArrayList
<>();
for
(
int
i
=
resultTabs
.
getItemCount
()
-
1
;
i
>
0
;
i
--)
{
CTabItem
item
=
resultTabs
.
getItem
(
i
);
if
(
item
.
getData
()
instanceof
QueryResultsContainer
&&
item
.
getShowClose
())
{
...
...
@@ -1887,11 +1899,32 @@ public class SQLEditor extends SQLEditorBase implements
// Do not remove first tab for this processor
continue
;
}
item
.
dispose
(
);
tabsToClose
.
add
(
item
);
}
else
if
(
item
.
getData
()
instanceof
ExplainPlanViewer
)
{
item
.
dispose
();
tabsToClose
.
add
(
item
);
}
}
if
(!
tabsToClose
.
isEmpty
())
{
int
confirmResult
=
IDialogConstants
.
YES_ID
;
if
(
confirmClose
)
{
confirmResult
=
ConfirmationDialog
.
showConfirmDialog
(
ResourceBundle
.
getBundle
(
SQLEditorMessages
.
BUNDLE_NAME
),
getSite
().
getShell
(),
SQLPreferenceConstants
.
CONFIRM_RESULT_TABS_CLOSE
,
ConfirmationDialog
.
QUESTION_WITH_CANCEL
,
tabsToClose
.
size
());
if
(
confirmResult
==
IDialogConstants
.
CANCEL_ID
)
{
return
false
;
}
}
if
(
confirmResult
==
IDialogConstants
.
YES_ID
)
{
for
(
CTabItem
item
:
tabsToClose
)
{
item
.
dispose
();
}
}
}
return
true
;
}
private
boolean
checkSession
(
DBRProgressListener
onFinish
)
...
...
plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/SQLPreferenceConstants.java
浏览文件 @
63f79bc8
...
...
@@ -134,6 +134,7 @@ public class SQLPreferenceConstants
public
static
final
String
CONFIRM_DANGER_SQL
=
"dangerous_sql"
;
//$NON-NLS-1$
public
static
final
String
CONFIRM_MASS_PARALLEL_SQL
=
"mass_parallel_sql"
;
//$NON-NLS-1$
public
static
final
String
CONFIRM_RUNNING_QUERY_CLOSE
=
"close_running_query"
;
//$NON-NLS-1$
public
static
final
String
CONFIRM_RESULT_TABS_CLOSE
=
"close_result_tabs"
;
//$NON-NLS-1$
}
plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/internal/SQLEditorMessages.properties
浏览文件 @
63f79bc8
...
...
@@ -3,6 +3,10 @@ confirm_close_running_query_title=Cancel running queries
confirm_close_running_query_message
=
There are "{0}" running SQL queries in this editor. Are you sure you want to cancel them and close the editor?
confirm_close_running_query_toggleMessage
=
Don't ask again
confirm_close_result_tabs_title
=
Close result tabs
confirm_close_result_tabs_message
=
There are "{0}" unpinned result tabs. Do you want to close these tabs before executing new query?
confirm_close_result_tabs_toggleMessage
=
Don't ask again
confirm_dangerous_sql_message
=
You are about to execute {0} statement without a WHERE clause on "{1}".
\n
Possible data loss. Are you sure?
confirm_dangerous_sql_title
=
Confirm dangerous query execution
confirm_dangerous_sql_toggleMessage
=
Remember choice
...
...
plugins/org.jkiss.dbeaver.ui.editors.sql/src/org/jkiss/dbeaver/ui/editors/sql/internal/SQLEditorMessages_ru.properties
浏览文件 @
63f79bc8
...
...
@@ -3,6 +3,10 @@ confirm_close_running_query_title=\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u04
confirm_close_running_query_message
=
\u0412
\u0440\u0435\u0434\u0430\u
043A
\u0442\u
043E
\u0440\u0435
\u0437\u0430\u
043F
\u0443\u0449\u0435\u
043D
\u
043E "{0}" SQL
\u0437\u0430\u
043F
\u0440\u
043E
\u0441\u
043E
\u0432
.
\u0412\u0441\u0451
\u0440\u0430\u0432\u
043D
\u
043E
\u0437\u0430\u
043A
\u0440\u
044B
\u0442\u
044C
\u0440\u0435\u0434\u0430\u
043A
\u0442\u
043E
\u0440
?
confirm_close_running_query_toggleMessage
=
\u0411\u
043E
\u
043B
\u
044C
\u0448\u0435
\u
043D
\u0435
\u0441\u
043F
\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u
044C
confirm_close_result_tabs_title
=
\u0417\u0430\u
043A
\u0440\u
044B
\u0442\u
044C
\u0432\u
043A
\u
043B
\u0430\u0434\u
043A
\u0438
\u0441
\u0440\u0435\u0437\u0443\u
043B
\u
044C
\u0442\u0430\u0442\u0430\u
043C
\u0438
confirm_close_result_tabs_message
=
\u
041E
\u0442\u
043A
\u0440\u
044B
\u0442\u
043E "{0}"
\u0432\u
043A
\u
043B
\u0430\u0434\u
043E
\u
043A
\u0441
\u0440\u0435\u0437\u0443\u
043B
\u
044C
\u0442\u0430\u0442\u0430\u
043C
\u0438
\u0437\u0430\u
043F
\u0440\u
043E
\u0441\u
043E
\u0432
.
\u0417\u0430\u
043A
\u0440\u
044B
\u0442\u
044C
\u0438\u0445
\u
043F
\u0435\u0440\u0435\u0434
\u0432\u
044B
\u
043F
\u
043E
\u
043B
\u
043D
\u0435\u
043D
\u0438\u0435
\u
043D
\u
043E
\u0432\u
043E
\u0433\u
043E
\u0437\u0430\u
043F
\u0440\u
043E
\u0441\u0430
?
confirm_close_result_tabs_toggleMessage
=
\u0411\u
043E
\u
043B
\u
044C
\u0448\u0435
\u
043D
\u0435
\u0441\u
043F
\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u
044C
confirm_dangerous_sql_message
=
\u0412\u
044B
\u0441\u
043E
\u0431\u0438\u0440\u0430\u0435\u0442\u0435\u0441\u
044C
\u0432\u
044B
\u
043F
\u
043E
\u
043B
\u
043D
\u0438\u0442\u
044C
\u0437\u0430\u
043F
\u0440\u
043E
\u0441
{0}
\u0431\u0435\u0437
\u0443\u0441\u
043B
\u
043E
\u0432\u0438\u
044F WHERE
\u0434\u
043B
\u
044F "{1}".
\n\u0412\u
043E
\u0437\u
043C
\u
043E
\u0436\u
043D
\u0430
\u
043F
\u
043E
\u0442\u0435\u0440\u
044F
\u0434\u0430\u
043D
\u
043D
\u
044B
\u0445
.
\u0412\u
044B
\u0443\u0432\u0435\u0440\u0435\u
043D
\u
044B?
confirm_dangerous_sql_title
=
\u
041F
\u
043E
\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u
043D
\u0438\u0435
\u0432\u
044B
\u
043F
\u
043E
\u
043B
\u
043D
\u0435\u
043D
\u0438\u
044F
\u
043E
\u
043F
\u0430\u0441\u
043D
\u
043E
\u0433\u
043E
\u0437\u0430\u
043F
\u0440\u
043E
\u0441\u0430
confirm_dangerous_sql_toggleMessage
=
\u0417\u0430\u
043F
\u
043E
\u
043C
\u
043D
\u0438\u0442\u
044C
\u0432\u
044B
\u0431\u
043E
\u0440
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录