Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
2724cfe9
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,发现更多精彩内容 >>
提交
2724cfe9
编写于
5月 13, 2018
作者:
S
serge-rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Editor contexts activation fix
Former-commit-id:
cf2edd91
上级
6157e132
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
29 addition
and
19 deletion
+29
-19
plugins/org.jkiss.dbeaver.core/plugin.xml
plugins/org.jkiss.dbeaver.core/plugin.xml
+2
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverUI.java
...ss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverUI.java
+10
-2
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/WorkbenchContextListener.java
.../src/org/jkiss/dbeaver/core/WorkbenchContextListener.java
+14
-15
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/entity/ProgressEditorPart.java
...g/jkiss/dbeaver/ui/editors/entity/ProgressEditorPart.java
+3
-0
未找到文件。
plugins/org.jkiss.dbeaver.core/plugin.xml
浏览文件 @
2724cfe9
...
...
@@ -2603,12 +2603,12 @@
<!-- RSV context. It extends SQL editor because RSV can be embedded in editor and thus must overrride it's bindings -->
<context
id=
"org.jkiss.dbeaver.ui.context.resultset"
parentId=
"org.
jkiss.dbeaver.ui.editors.sql
"
parentId=
"org.
eclipse.ui.contexts.window
"
name=
"%context.org.jkiss.dbeaver.ui.context.resultset.name"
description=
"%context.org.jkiss.dbeaver.ui.context.resultset.description"
/>
<context
id=
"org.jkiss.dbeaver.ui.context.resultset.focused"
parentId=
"org.
jkiss.dbeaver.ui.context.resultset
"
parentId=
"org.
eclipse.ui.contexts.window
"
name=
"%context.org.jkiss.dbeaver.ui.context.resultset.name focused"
description=
"%context.org.jkiss.dbeaver.ui.context.resultset.description"
/>
<context
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverUI.java
浏览文件 @
2724cfe9
...
...
@@ -71,6 +71,7 @@ public class DBeaverUI implements DBPPlatformUI {
private
SharedTextColors
sharedTextColors
;
private
TrayIconHandler
trayItem
;
private
final
List
<
IDisposable
>
globalDisposables
=
new
ArrayList
<>();
private
WorkbenchContextListener
contextListener
;
public
static
DBeaverUI
getInstance
()
{
if
(
instance
==
null
)
{
...
...
@@ -129,7 +130,7 @@ public class DBeaverUI implements DBPPlatformUI {
DBUserInterface
.
setInstance
(
this
);
// Register context listener
WorkbenchContextListener
.
registerInWorkbench
(
);
asyncExec
(()
->
contextListener
=
WorkbenchContextListener
.
registerInWorkbench
()
);
/* // Global focus lister for debug
Display.getCurrent().addFilter(SWT.FocusIn, new Listener() {
...
...
@@ -141,6 +142,13 @@ public class DBeaverUI implements DBPPlatformUI {
*/
}
public
void
refreshPartContexts
(
IWorkbenchPart
part
)
{
if
(
contextListener
!=
null
)
{
contextListener
.
deactivatePartContexts
(
part
);
contextListener
.
activatePartContexts
(
part
);
}
}
public
static
AbstractUIJob
runUIJob
(
String
jobName
,
final
DBRRunnableWithProgress
runnableWithProgress
)
{
return
runUIJob
(
jobName
,
0
,
runnableWithProgress
);
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/WorkbenchContextListener.java
浏览文件 @
2724cfe9
...
...
@@ -20,10 +20,6 @@ import org.eclipse.core.commands.ExecutionEvent;
import
org.eclipse.core.commands.ExecutionException
;
import
org.eclipse.core.commands.IExecutionListener
;
import
org.eclipse.core.commands.NotHandledException
;
import
org.eclipse.core.runtime.IProgressMonitor
;
import
org.eclipse.core.runtime.IStatus
;
import
org.eclipse.core.runtime.Status
;
import
org.eclipse.core.runtime.jobs.Job
;
import
org.eclipse.ui.*
;
import
org.eclipse.ui.commands.ICommandService
;
import
org.eclipse.ui.contexts.IContextActivation
;
...
...
@@ -166,20 +162,25 @@ class WorkbenchContextListener implements IWindowListener, IPageListener, IPartL
@Override
public
void
partActivated
(
IWorkbenchPart
part
)
{
activatePartContexts
(
part
);
// log.info(part.getClass().getSimpleName() + " ACTIVATED: " + contextService.getActiveContextIds());
}
void
activatePartContexts
(
IWorkbenchPart
part
)
{
IContextService
contextService
=
PlatformUI
.
getWorkbench
().
getService
(
IContextService
.
class
);
if
(
contextService
==
null
)
{
return
;
}
try
{
contextService
.
deferUpdates
(
true
);
if
(
part
instanceof
INavigatorModelView
)
{
if
(
part
.
getAdapter
(
INavigatorModelView
.
class
)
!=
null
)
{
if
(
activationNavigator
!=
null
)
{
//log.debug("Double activation of navigator context");
contextService
.
deactivateContext
(
activationNavigator
);
}
activationNavigator
=
contextService
.
activateContext
(
NAVIGATOR_CONTEXT_ID
);
}
if
(
part
instanceof
SQLEditorBase
)
{
if
(
part
.
getAdapter
(
SQLEditorBase
.
class
)
!=
null
)
{
if
(
activationSQL
!=
null
)
{
//log.debug("Double activation of SQL context");
contextService
.
deactivateContext
(
activationSQL
);
...
...
@@ -200,11 +201,15 @@ class WorkbenchContextListener implements IWindowListener, IPageListener, IPartL
finally
{
contextService
.
deferUpdates
(
false
);
}
// log.info(part.getClass().getSimpleName() + " ACTIVATED: " + contextService.getActiveContextIds());
}
@Override
public
void
partDeactivated
(
IWorkbenchPart
part
)
{
deactivatePartContexts
(
part
);
// log.info(part.getClass().getSimpleName() + " DEACTIVATED: " + contextService.getActiveContextIds());
}
void
deactivatePartContexts
(
IWorkbenchPart
part
)
{
IContextService
contextService
=
PlatformUI
.
getWorkbench
().
getService
(
IContextService
.
class
);
if
(
contextService
==
null
)
{
return
;
...
...
@@ -227,7 +232,6 @@ class WorkbenchContextListener implements IWindowListener, IPageListener, IPartL
finally
{
contextService
.
deferUpdates
(
false
);
}
// log.info(part.getClass().getSimpleName() + " DEACTIVATED: " + contextService.getActiveContextIds());
}
@Override
...
...
@@ -245,13 +249,8 @@ class WorkbenchContextListener implements IWindowListener, IPageListener, IPartL
}
static
void
registerInWorkbench
()
{
DBeaverUI
.
asyncExec
(
new
Runnable
()
{
@Override
public
void
run
()
{
new
WorkbenchContextListener
();
}
});
static
WorkbenchContextListener
registerInWorkbench
()
{
return
new
WorkbenchContextListener
();
}
private
static
class
CommandExecutionListener
implements
IExecutionListener
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/entity/ProgressEditorPart.java
浏览文件 @
2724cfe9
...
...
@@ -159,6 +159,9 @@ public class ProgressEditorPart extends EditorPart {
// Close editor
DBeaverUI
.
asyncExec
(()
->
entityEditor
.
getSite
().
getWorkbenchWindow
().
getActivePage
().
closeEditor
(
entityEditor
,
false
));
}
else
{
// Activate entity editor (we have changed inner editors and need to force contexts activation).
DBeaverUI
.
asyncExec
(()
->
DBeaverUI
.
getInstance
().
refreshPartContexts
(
entityEditor
));
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录