Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
0b5863a0
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,发现更多精彩内容 >>
提交
0b5863a0
编写于
12月 20, 2019
作者:
S
Serge Rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#7450 Session manager: plaintext details presentation
Former-commit-id:
459f70c8
上级
dea98a3d
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
83 addition
and
17 deletion
+83
-17
plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/session/OracleServerExecutePlan.java
...ver/ext/oracle/model/session/OracleServerExecutePlan.java
+9
-2
plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/session/OracleServerSessionManager.java
.../ext/oracle/model/session/OracleServerSessionManager.java
+4
-4
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/admin/sessions/DBAServerSessionDetails.java
...dbeaver/model/admin/sessions/DBAServerSessionDetails.java
+1
-1
plugins/org.jkiss.dbeaver.ui.editors.base/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorInputFactory.java
.../jkiss/dbeaver/ui/editors/DatabaseEditorInputFactory.java
+2
-0
plugins/org.jkiss.dbeaver.ui.editors.base/src/org/jkiss/dbeaver/ui/editors/DatabaseLazyEditorInput.java
...org/jkiss/dbeaver/ui/editors/DatabaseLazyEditorInput.java
+12
-2
plugins/org.jkiss.dbeaver.ui.editors.session/src/org/jkiss/dbeaver/ui/views/session/SessionManagerViewer.java
.../jkiss/dbeaver/ui/views/session/SessionManagerViewer.java
+55
-8
未找到文件。
plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/session/OracleServerExecutePlan.java
浏览文件 @
0b5863a0
...
...
@@ -16,7 +16,8 @@
*/
package
org.jkiss.dbeaver.ext.oracle.model.session
;
import
org.jkiss.dbeaver.model.DBPObject
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.model.DBPObjectWithDescription
;
import
org.jkiss.dbeaver.model.impl.jdbc.JDBCUtils
;
import
org.jkiss.dbeaver.model.meta.Property
;
...
...
@@ -25,7 +26,7 @@ import java.sql.ResultSet;
/**
* Plan
*/
public
class
OracleServerExecutePlan
implements
DBPObject
{
public
class
OracleServerExecutePlan
implements
DBPObject
WithDescription
{
private
String
plan
;
...
...
@@ -38,4 +39,10 @@ public class OracleServerExecutePlan implements DBPObject {
public
String
getPlan
()
{
return
plan
;
}
@Nullable
@Override
public
String
getDescription
()
{
return
plan
;
}
}
plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/session/OracleServerSessionManager.java
浏览文件 @
0b5863a0
...
...
@@ -164,12 +164,12 @@ public class OracleServerSessionManager implements DBAServerSessionManager<Oracl
dbStat
.
setString
(
1
,
((
OracleServerSession
)
serverSession
).
getSqlId
());
dbStat
.
setLong
(
2
,
((
OracleServerSession
)
serverSession
).
getSqlChildNumber
());
try
(
JDBCResultSet
dbResult
=
dbStat
.
executeQuery
())
{
List
<
OracleServerExecutePlan
>
ExecutePlan
=
new
ArrayList
<>();
{
List
<
OracleServerExecutePlan
>
planItems
=
new
ArrayList
<>();
while
(
dbResult
.
next
())
{
ExecutePlan
.
add
(
new
OracleServerExecutePlan
(
dbResult
));
planItems
.
add
(
new
OracleServerExecutePlan
(
dbResult
));
}
return
ExecutePlan
;
return
planItems
;
}
}
}
catch
(
SQLException
e
)
{
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/admin/sessions/DBAServerSessionDetails.java
浏览文件 @
0b5863a0
...
...
@@ -37,5 +37,5 @@ public interface DBAServerSessionDetails {
List
<?
extends
DBPObject
>
getSessionDetails
(
DBCSession
session
,
DBAServerSession
serverSession
)
throws
DBException
;
Class
<?
extends
DBPObject
>
getDetailsType
();
Class
<?>
getDetailsType
();
}
plugins/org.jkiss.dbeaver.ui.editors.base/src/org/jkiss/dbeaver/ui/editors/DatabaseEditorInputFactory.java
浏览文件 @
0b5863a0
...
...
@@ -29,6 +29,7 @@ public class DatabaseEditorInputFactory implements IElementFactory
public
static
final
String
ID_FACTORY
=
DatabaseEditorInputFactory
.
class
.
getName
();
//$NON-NLS-1$
static
final
String
TAG_CLASS
=
"class"
;
//$NON-NLS-1$
static
final
String
TAG_PROJECT
=
"project"
;
//$NON-NLS-1$
static
final
String
TAG_DATA_SOURCE
=
"data-source"
;
//$NON-NLS-1$
static
final
String
TAG_NODE
=
"node"
;
//$NON-NLS-1$
static
final
String
TAG_NODE_NAME
=
"node-name"
;
//$NON-NLS-1$
...
...
@@ -69,6 +70,7 @@ public class DatabaseEditorInputFactory implements IElementFactory
final
DBNDatabaseNode
node
=
input
.
getNavigatorNode
();
memento
.
putString
(
TAG_CLASS
,
input
.
getClass
().
getName
());
memento
.
putString
(
TAG_PROJECT
,
context
.
getDataSource
().
getContainer
().
getProject
().
getName
());
memento
.
putString
(
TAG_DATA_SOURCE
,
context
.
getDataSource
().
getContainer
().
getId
());
memento
.
putString
(
TAG_NODE
,
node
.
getNodeItemPath
());
memento
.
putString
(
TAG_NODE_NAME
,
node
.
getNodeName
());
...
...
plugins/org.jkiss.dbeaver.ui.editors.base/src/org/jkiss/dbeaver/ui/editors/DatabaseLazyEditorInput.java
浏览文件 @
0b5863a0
...
...
@@ -56,6 +56,7 @@ public class DatabaseLazyEditorInput implements IDatabaseEditorInput
private
static
final
Log
log
=
Log
.
getLog
(
DatabaseLazyEditorInput
.
class
);
private
final
String
nodePath
;
private
DBPProject
project
;
private
String
nodeName
;
private
final
String
activePageId
;
private
final
String
activeFolderId
;
...
...
@@ -85,6 +86,8 @@ public class DatabaseLazyEditorInput implements IDatabaseEditorInput
final
String
inputClass
=
memento
.
getString
(
DatabaseEditorInputFactory
.
TAG_CLASS
);
nodePath
=
memento
.
getString
(
DatabaseEditorInputFactory
.
TAG_NODE
);
nodeName
=
memento
.
getString
(
DatabaseEditorInputFactory
.
TAG_NODE_NAME
);
String
projectName
=
memento
.
getString
(
DatabaseEditorInputFactory
.
TAG_PROJECT
);
project
=
CommonUtils
.
isEmpty
(
projectName
)
?
null
:
DBWorkbench
.
getPlatform
().
getWorkspace
().
getProject
(
projectName
);
dataSourceId
=
memento
.
getString
(
DatabaseEditorInputFactory
.
TAG_DATA_SOURCE
);
if
(
nodePath
==
null
||
inputClass
==
null
||
dataSourceId
==
null
)
{
log
.
error
(
"Corrupted memento"
);
//$NON-NLS-2$
...
...
@@ -209,12 +212,19 @@ public class DatabaseLazyEditorInput implements IDatabaseEditorInput
public
IDatabaseEditorInput
initializeRealInput
(
final
DBRProgressMonitor
monitor
)
throws
DBException
{
// Get the node path.
dataSource
=
DBUtils
.
findDataSource
(
dataSourceId
);
if
(
project
!=
null
)
{
dataSource
=
project
.
getDataSourceRegistry
().
getDataSource
(
dataSourceId
);
}
if
(
dataSource
==
null
)
{
dataSource
=
DBUtils
.
findDataSource
(
dataSourceId
);
}
if
(
dataSource
==
null
)
{
log
.
error
(
"Can't find data source '"
+
dataSourceId
+
"'"
);
//$NON-NLS-2$
return
null
;
}
final
DBPProject
project
=
dataSource
.
getRegistry
().
getProject
();
if
(
project
==
null
)
{
project
=
dataSource
.
getRegistry
().
getProject
();
}
final
DBNModel
navigatorModel
=
DBWorkbench
.
getPlatform
().
getNavigatorModel
();
navigatorModel
.
ensureProjectLoaded
(
project
);
//dataSourceContainer, project, nodePath, nodeName, activePageId, activeFolderId
...
...
plugins/org.jkiss.dbeaver.ui.editors.session/src/org/jkiss/dbeaver/ui/views/session/SessionManagerViewer.java
浏览文件 @
0b5863a0
...
...
@@ -19,6 +19,7 @@ package org.jkiss.dbeaver.ui.views.session;
import
org.eclipse.jface.action.Action
;
import
org.eclipse.jface.action.IContributionManager
;
import
org.eclipse.jface.dialogs.IDialogSettings
;
import
org.eclipse.jface.resource.JFaceResources
;
import
org.eclipse.jface.viewers.ISelection
;
import
org.eclipse.jface.viewers.IStructuredSelection
;
import
org.eclipse.jface.viewers.Viewer
;
...
...
@@ -38,8 +39,10 @@ import org.eclipse.ui.IEditorSite;
import
org.eclipse.ui.IWorkbenchPart
;
import
org.eclipse.ui.IWorkbenchSite
;
import
org.eclipse.ui.PartInitException
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.model.DBPObject
;
import
org.jkiss.dbeaver.model.DBPObjectWithDescription
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.admin.sessions.DBAServerSession
;
import
org.jkiss.dbeaver.model.admin.sessions.DBAServerSessionDetails
;
...
...
@@ -59,6 +62,7 @@ import org.jkiss.dbeaver.runtime.properties.ObjectPropertyDescriptor;
import
org.jkiss.dbeaver.runtime.properties.PropertyCollector
;
import
org.jkiss.dbeaver.ui.*
;
import
org.jkiss.dbeaver.ui.controls.ListContentProvider
;
import
org.jkiss.dbeaver.ui.controls.ProgressLoaderVisualizer
;
import
org.jkiss.dbeaver.ui.controls.autorefresh.AutoRefreshControl
;
import
org.jkiss.dbeaver.ui.editors.StringEditorInput
;
import
org.jkiss.dbeaver.ui.editors.SubEditorSite
;
...
...
@@ -200,8 +204,20 @@ public class SessionManagerViewer<SESSION_TYPE extends DBAServerSession>
extDetailsItem
.
setToolTipText
(
detailsInfo
.
getDetailsTooltip
());
}
DetailsListControl
detailsProps
=
new
DetailsListControl
(
detailsFolder
,
workbenchPart
.
getSite
(),
detailsInfo
);
extDetailsItem
.
setControl
(
detailsProps
);
Class
<?>
detailsType
=
detailsInfo
.
getDetailsType
();
if
(
DBPObjectWithDescription
.
class
.
isAssignableFrom
(
detailsType
))
{
StyledText
text
=
new
StyledText
(
detailsFolder
,
SWT
.
READ_ONLY
|
SWT
.
V_SCROLL
|
SWT
.
H_SCROLL
);
text
.
setForeground
(
UIStyles
.
getDefaultTextForeground
());
text
.
setBackground
(
UIStyles
.
getDefaultTextBackground
());
text
.
setFont
(
JFaceResources
.
getFont
(
JFaceResources
.
TEXT_FONT
));
text
.
setData
(
detailsInfo
);
extDetailsItem
.
setControl
(
text
);
}
else
if
(
DBPObject
.
class
.
isAssignableFrom
(
detailsType
))
{
DetailsListControl
detailsProps
=
new
DetailsListControl
(
detailsFolder
,
workbenchPart
.
getSite
(),
detailsInfo
);
extDetailsItem
.
setControl
(
detailsProps
);
}
else
{
extDetailsItem
.
setControl
(
UIUtils
.
createLabel
(
detailsFolder
,
"Unsupported details type: "
+
detailsType
));
}
}
}
}
...
...
@@ -213,8 +229,14 @@ public class SessionManagerViewer<SESSION_TYPE extends DBAServerSession>
CTabItem
item
=
detailsFolder
.
getItem
(
detailsFolder
.
getSelectionIndex
());
Object
data
=
item
.
getData
();
if
(
data
instanceof
DBAServerSessionDetails
)
{
DetailsListControl
detailsViewer
=
(
DetailsListControl
)
item
.
getControl
();
detailsViewer
.
loadData
();
Class
<?>
detailsType
=
((
DBAServerSessionDetails
)
data
).
getDetailsType
();
if
(
DBPObjectWithDescription
.
class
.
isAssignableFrom
(
detailsType
))
{
StyledText
styledText
=
(
StyledText
)
item
.
getControl
();
loadPlainTextDetails
((
DBAServerSessionDetails
)
data
,
styledText
);
}
else
{
DetailsListControl
detailsViewer
=
(
DetailsListControl
)
item
.
getControl
();
detailsViewer
.
loadData
();
}
}
}
});
...
...
@@ -226,6 +248,25 @@ public class SessionManagerViewer<SESSION_TYPE extends DBAServerSession>
sashMain
.
setWeights
(
new
int
[]{
700
,
300
});
}
private
void
loadPlainTextDetails
(
DBAServerSessionDetails
data
,
StyledText
styledText
)
{
SessionDetailsLoadService
loadingService
=
new
SessionDetailsLoadService
(
data
);
LoadingJob
.
createService
(
loadingService
,
new
ProgressLoaderVisualizer
<
Collection
<
DBPObject
>>(
loadingService
,
styledText
)
{
@Override
public
void
completeLoading
(
Collection
<
DBPObject
>
dbpObjects
)
{
StringBuilder
text
=
new
StringBuilder
();
for
(
DBPObject
item
:
dbpObjects
)
{
if
(
item
instanceof
DBPObjectWithDescription
)
{
text
.
append
(((
DBPObjectWithDescription
)
item
).
getDescription
());
text
.
append
(
GeneralUtils
.
getDefaultLineSeparator
());
}
}
styledText
.
setText
(
text
.
toString
());
}
}).
schedule
();
}
private
void
updatePreview
()
{
if
(
previewFolder
.
getSelectionIndex
()
==
0
)
{
// Show SQL
...
...
@@ -249,8 +290,13 @@ public class SessionManagerViewer<SESSION_TYPE extends DBAServerSession>
CTabItem
detailsItem
=
detailsFolder
.
getItem
(
detailsFolder
.
getSelectionIndex
());
Object
data
=
detailsItem
.
getData
();
if
(
data
instanceof
DBAServerSessionDetails
)
{
DetailsListControl
detailsListControl
=
(
DetailsListControl
)
detailsItem
.
getControl
();
detailsListControl
.
loadData
();
if
(
detailsItem
.
getControl
()
instanceof
StyledText
)
{
StyledText
styledText
=
(
StyledText
)
detailsItem
.
getControl
();
loadPlainTextDetails
((
DBAServerSessionDetails
)
data
,
styledText
);
}
else
{
DetailsListControl
detailsListControl
=
(
DetailsListControl
)
detailsItem
.
getControl
();
detailsListControl
.
loadData
();
}
}
}
}
...
...
@@ -499,11 +545,12 @@ public class SessionManagerViewer<SESSION_TYPE extends DBAServerSession>
private
DBAServerSessionDetails
sessionDetails
;
protected
DetailsListControl
(
Composite
parent
,
IWorkbenchSite
site
,
DBAServerSessionDetails
sessionDetails
)
{
DetailsListControl
(
Composite
parent
,
IWorkbenchSite
site
,
DBAServerSessionDetails
sessionDetails
)
{
super
(
parent
,
SWT
.
SHEET
,
site
,
new
ListContentProvider
());
this
.
sessionDetails
=
sessionDetails
;
}
@NotNull
@Override
protected
String
getListConfigId
(
List
<
Class
<?>>
classList
)
{
return
"SessionDetails/"
+
sessionManager
.
getDataSource
().
getContainer
().
getDriver
().
getId
()
+
"/"
+
sessionDetails
.
getDetailsTitle
();
...
...
@@ -526,7 +573,7 @@ public class SessionManagerViewer<SESSION_TYPE extends DBAServerSession>
private
DBAServerSessionDetails
sessionDetails
;
public
SessionDetailsLoadService
(
DBAServerSessionDetails
sessionDetails
)
{
SessionDetailsLoadService
(
DBAServerSessionDetails
sessionDetails
)
{
super
(
"Load session details "
+
sessionDetails
.
getDetailsTitle
(),
sessionManager
.
getDataSource
());
this
.
sessionDetails
=
sessionDetails
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录