Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
33339bc3
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,发现更多精彩内容 >>
提交
33339bc3
编写于
12月 22, 2018
作者:
S
serge-rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#4618 Data editor: panels toggle command shortcuts support
上级
e69d46b0
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
60 addition
and
94 deletion
+60
-94
plugins/org.jkiss.dbeaver.core/plugin.xml
plugins/org.jkiss.dbeaver.core/plugin.xml
+1
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetHandlerTogglePanel.java
...er/ui/controls/resultset/ResultSetHandlerTogglePanel.java
+28
-11
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetPresentationRegistry.java
.../ui/controls/resultset/ResultSetPresentationRegistry.java
+9
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java
.../jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java
+22
-83
未找到文件。
plugins/org.jkiss.dbeaver.core/plugin.xml
浏览文件 @
33339bc3
...
...
@@ -1355,6 +1355,7 @@
<!--<activeWhen><reference definitionId="org.jkiss.dbeaver.core.ui.resultset.part"/></activeWhen>-->
</handler>
<handler
commandId=
"org.jkiss.dbeaver.core.resultset.grid.togglePanel"
class=
"org.jkiss.dbeaver.ui.controls.resultset.ResultSetHandlerTogglePanel"
>
<activeWhen><reference
definitionId=
"org.jkiss.dbeaver.core.ui.resultset.part"
/></activeWhen>
</handler>
<handler
commandId=
"org.jkiss.dbeaver.core.resultset.grid.toggleLayout"
class=
"org.jkiss.dbeaver.ui.controls.resultset.ResultSetHandlerMain"
>
<!--<activeWhen><reference definitionId="org.jkiss.dbeaver.core.ui.resultset.part"/></activeWhen>-->
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetHandlerTogglePanel.java
浏览文件 @
33339bc3
...
...
@@ -19,7 +19,7 @@ package org.jkiss.dbeaver.ui.controls.resultset;
import
org.eclipse.core.commands.AbstractHandler
;
import
org.eclipse.core.commands.ExecutionEvent
;
import
org.eclipse.core.commands.ExecutionException
;
import
org.eclipse.
swt.widgets.Shell
;
import
org.eclipse.
ui.IWorkbenchPart
;
import
org.eclipse.ui.commands.IElementUpdater
;
import
org.eclipse.ui.handlers.HandlerUtil
;
import
org.eclipse.ui.menus.UIElement
;
...
...
@@ -33,7 +33,7 @@ import java.util.Map;
public
class
ResultSetHandlerTogglePanel
extends
AbstractHandler
implements
IElementUpdater
{
public
static
final
String
CMD_TOGGLE_PANEL
=
"org.jkiss.dbeaver.core.resultset.grid.togglePanel"
;
p
rivate
static
final
String
PARAM_PANEL_ID
=
"panelId"
;
p
ublic
static
final
String
PARAM_PANEL_ID
=
"panelId"
;
@Override
public
Object
execute
(
ExecutionEvent
event
)
throws
ExecutionException
...
...
@@ -42,23 +42,23 @@ public class ResultSetHandlerTogglePanel extends AbstractHandler implements IEle
if
(
resultSet
==
null
)
{
return
null
;
}
String
panelId
=
event
.
getParameter
(
PARAM_PANEL_ID
);
if
(
panelId
==
null
)
{
return
null
;
}
switch
(
event
.
getCommand
().
getId
())
{
case
CMD_TOGGLE_PANEL:
toggleResultsPanel
(
resultSet
,
HandlerUtil
.
getActiveShell
(
event
),
event
.
getParameter
(
PARAM_PANEL_ID
)
);
toggleResultsPanel
(
resultSet
,
panelId
);
break
;
}
return
null
;
}
private
static
void
toggleResultsPanel
(
IResultSetController
resultSet
,
Shell
shell
,
String
panelId
)
{
boolean
isVisible
=
false
;
IResultSetPanel
visiblePanel
=
resultSet
.
getVisiblePanel
();
if
(
visiblePanel
!=
null
)
{
String
activePanelId
=
((
ResultSetViewer
)
resultSet
).
getActivePanelId
();
isVisible
=
CommonUtils
.
equalObjects
(
activePanelId
,
panelId
);
}
private
static
void
toggleResultsPanel
(
IResultSetController
resultSet
,
String
panelId
)
{
boolean
isVisible
=
((
ResultSetViewer
)
resultSet
).
isPanelVisible
(
panelId
);
if
(
isVisible
)
{
((
ResultSetViewer
)
resultSet
).
close
ActivePanel
(
);
((
ResultSetViewer
)
resultSet
).
close
Panel
(
panelId
);
}
else
{
resultSet
.
activatePanel
(
panelId
,
true
,
true
);
}
...
...
@@ -67,5 +67,22 @@ public class ResultSetHandlerTogglePanel extends AbstractHandler implements IEle
@Override
public
void
updateElement
(
UIElement
element
,
Map
parameters
)
{
// Put panel name in command label
String
panelId
=
(
String
)
parameters
.
get
(
PARAM_PANEL_ID
);
if
(
panelId
!=
null
)
{
ResultSetPanelDescriptor
panel
=
ResultSetPresentationRegistry
.
getInstance
().
getPanel
(
panelId
);
if
(
panel
!=
null
)
{
element
.
setText
(
panel
.
getLabel
());
if
(!
CommonUtils
.
isEmpty
(
panel
.
getDescription
()))
{
element
.
setTooltip
(
panel
.
getDescription
());
}
}
IWorkbenchPart
workbenchPart
=
element
.
getServiceLocator
().
getService
(
IWorkbenchPart
.
class
);
if
(
workbenchPart
!=
null
)
{
IResultSetController
resultSet
=
ResultSetHandlerMain
.
getActiveResultSet
(
workbenchPart
);
if
(
resultSet
!=
null
)
{
element
.
setChecked
(((
ResultSetViewer
)
resultSet
).
isPanelVisible
(
panelId
));
}
}
}
}
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetPresentationRegistry.java
浏览文件 @
33339bc3
...
...
@@ -109,6 +109,15 @@ public class ResultSetPresentationRegistry {
return
panels
;
}
public
ResultSetPanelDescriptor
getPanel
(
String
panelId
)
{
for
(
ResultSetPanelDescriptor
panel
:
panels
)
{
if
(
panel
.
getId
().
equals
(
panelId
))
{
return
panel
;
}
}
return
null
;
}
public
List
<
ResultSetPanelDescriptor
>
getSupportedPanels
(
DBPDataSource
dataSource
,
String
presentationId
,
IResultSetPresentation
.
PresentationType
presentationType
)
{
List
<
ResultSetPanelDescriptor
>
result
=
new
ArrayList
<>();
for
(
ResultSetPanelDescriptor
panel
:
panels
)
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java
浏览文件 @
33339bc3
...
...
@@ -969,6 +969,18 @@ public class ResultSetViewer extends Viewer
}
}
boolean
isPanelVisible
(
String
panelId
)
{
return
getPanelTab
(
panelId
)
!=
null
;
}
void
closePanel
(
String
panelId
)
{
CTabItem
panelTab
=
getPanelTab
(
panelId
);
if
(
panelTab
!=
null
)
{
panelTab
.
dispose
();
removePanel
(
panelId
);
}
}
void
toggleVerticalLayout
()
{
PresentationSettings
settings
=
getPresentationSettings
();
settings
.
verticalLayout
=
!
settings
.
verticalLayout
;
...
...
@@ -980,7 +992,16 @@ public class ResultSetViewer extends Viewer
List
<
IContributionItem
>
items
=
new
ArrayList
<>();
for
(
final
ResultSetPanelDescriptor
panel
:
availablePanels
)
{
items
.
add
(
new
ActionContributionItem
(
new
PanelToggleAction
(
panel
)));
CommandContributionItemParameter
params
=
new
CommandContributionItemParameter
(
site
,
panel
.
getId
(),
ResultSetHandlerTogglePanel
.
CMD_TOGGLE_PANEL
,
CommandContributionItem
.
STYLE_CHECK
);
Map
<
String
,
String
>
parameters
=
new
HashMap
<>();
parameters
.
put
(
ResultSetHandlerTogglePanel
.
PARAM_PANEL_ID
,
panel
.
getId
());
params
.
parameters
=
parameters
;
items
.
add
(
new
CommandContributionItem
(
params
));
}
items
.
add
(
new
Separator
());
items
.
add
(
ActionUtils
.
makeCommandContribution
(
site
,
ResultSetHandlerMain
.
CMD_TOGGLE_LAYOUT
));
...
...
@@ -3996,86 +4017,4 @@ public class ResultSetViewer extends Viewer
boolean
verticalLayout
;
}
private
class
PanelToggleAction
extends
Action
{
private
final
ResultSetPanelDescriptor
panel
;
public
PanelToggleAction
(
ResultSetPanelDescriptor
panel
)
{
super
(
panel
.
getLabel
(),
Action
.
AS_CHECK_BOX
);
this
.
panel
=
panel
;
setToolTipText
(
panel
.
getDescription
());
// Icons turns menu into mess - checkboxes are much better
//setImageDescriptor(DBeaverIcons.getImageDescriptor(panel.getIcon()));
}
@Override
public
boolean
isChecked
()
{
return
activePanels
.
containsKey
(
panel
.
getId
());
}
@Override
public
void
run
()
{
if
(
isPanelsVisible
()
&&
isChecked
())
{
CTabItem
panelTab
=
getPanelTab
(
panel
.
getId
());
if
(
panelTab
!=
null
)
{
panelTab
.
dispose
();
removePanel
(
panel
.
getId
());
}
}
else
{
activatePanel
(
panel
.
getId
(),
true
,
true
);
}
}
}
private
class
ToolbarToggleAction
extends
Action
{
private
final
String
toolbarId
;
public
ToolbarToggleAction
(
String
toolbarId
,
String
toolbarLabel
)
{
super
(
toolbarLabel
,
Action
.
AS_CHECK_BOX
);
this
.
toolbarId
=
toolbarId
;
//setToolTipText(panel.getDescription());
}
@Override
public
boolean
isChecked
()
{
return
activePanels
.
containsKey
(
toolbarId
);
}
@Override
public
void
run
()
{
/*
if (isPanelsVisible() && isChecked()) {
CTabItem panelTab = getPanelTab(panel.getId());
if (panelTab != null) {
panelTab.dispose();
removePanel(panel.getId());
}
} else {
activatePanel(panel.getId(), true, true);
}
*/
}
}
/*
public static void openNewDataEditor(DBNDatabaseNode targetNode, DBDDataFilter newFilter) {
IEditorPart entityEditor = NavigatorHandlerObjectOpen.openEntityEditor(
targetNode,
DatabaseDataEditor.class.getName(),
Collections.<String, Object>singletonMap(DatabaseDataEditor.ATTR_DATA_FILTER, newFilter),
DBeaverUI.getActiveWorkbenchWindow()
);
if (entityEditor instanceof MultiPageEditorPart) {
Object selectedPage = ((MultiPageEditorPart) entityEditor).getSelectedPage();
if (selectedPage instanceof IResultSetContainer) {
ResultSetViewer rsv = (ResultSetViewer) ((IResultSetContainer) selectedPage).getResultSetController();
if (rsv != null && !rsv.isRefreshInProgress() && !newFilter.equals(rsv.getModel().getDataFilter())) {
// Set filter directly
rsv.refreshWithFilter(newFilter);
}
}
}
}
*/
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录