Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
455b3090
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,发现更多精彩内容 >>
提交
455b3090
编写于
3月 18, 2015
作者:
J
jurgen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
RSV refactoring
上级
6ae1689b
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
74 addition
and
106 deletion
+74
-106
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/IResultSetPresentation.java
...dbeaver/ui/controls/resultset/IResultSetPresentation.java
+4
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java
.../jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java
+6
-5
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/view/EmptyPresentation.java
...dbeaver/ui/controls/resultset/view/EmptyPresentation.java
+51
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/spreadsheet/Spreadsheet.java
...rg/jkiss/dbeaver/ui/controls/spreadsheet/Spreadsheet.java
+13
-23
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/spreadsheet/SpreadsheetSelectionProvider.java
...ui/controls/spreadsheet/SpreadsheetSelectionProvider.java
+0
-78
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/IResultSetPresentation.java
浏览文件 @
455b3090
...
...
@@ -25,6 +25,8 @@ import org.eclipse.swt.widgets.Control;
/**
* Result set renderer.
* Visualizes result set viewer/editor.
*
* May additionally implement ISelectionProvider
*/
public
interface
IResultSetPresentation
{
...
...
@@ -33,4 +35,6 @@ public interface IResultSetPresentation {
Control
getControl
();
void
refreshData
(
boolean
refreshMetadata
);
// ISelectionProvider
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java
浏览文件 @
455b3090
...
...
@@ -18,7 +18,6 @@
*/
package
org.jkiss.dbeaver.ui.controls.resultset
;
import
org.jkiss.dbeaver.core.Log
;
import
org.eclipse.core.runtime.IAdaptable
;
import
org.eclipse.core.runtime.IProgressMonitor
;
import
org.eclipse.core.runtime.IStatus
;
...
...
@@ -48,7 +47,9 @@ import org.eclipse.swt.layout.FillLayout;
import
org.eclipse.swt.layout.GridData
;
import
org.eclipse.swt.layout.GridLayout
;
import
org.eclipse.swt.widgets.*
;
import
org.eclipse.ui.*
;
import
org.eclipse.ui.ISaveablePart2
;
import
org.eclipse.ui.IWorkbenchCommandConstants
;
import
org.eclipse.ui.IWorkbenchPartSite
;
import
org.eclipse.ui.commands.ICommandService
;
import
org.eclipse.ui.menus.CommandContributionItem
;
import
org.eclipse.ui.progress.UIJob
;
...
...
@@ -64,6 +65,7 @@ import org.jkiss.dbeaver.DBeaverPreferences;
import
org.jkiss.dbeaver.core.CoreMessages
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.core.DBeaverUI
;
import
org.jkiss.dbeaver.core.Log
;
import
org.jkiss.dbeaver.ext.IDataSourceProvider
;
import
org.jkiss.dbeaver.model.DBPDataKind
;
import
org.jkiss.dbeaver.model.DBPDataSource
;
...
...
@@ -84,6 +86,7 @@ import org.jkiss.dbeaver.tools.transfer.database.DatabaseTransferProducer;
import
org.jkiss.dbeaver.tools.transfer.wizard.DataTransferWizard
;
import
org.jkiss.dbeaver.ui.*
;
import
org.jkiss.dbeaver.ui.controls.CImageCombo
;
import
org.jkiss.dbeaver.ui.controls.PropertyPageStandard
;
import
org.jkiss.dbeaver.ui.controls.lightgrid.GridCell
;
import
org.jkiss.dbeaver.ui.controls.lightgrid.GridPos
;
import
org.jkiss.dbeaver.ui.controls.lightgrid.IGridContentProvider
;
...
...
@@ -96,7 +99,6 @@ import org.jkiss.dbeaver.ui.dialogs.sql.ViewSQLDialog;
import
org.jkiss.dbeaver.ui.dialogs.struct.EditConstraintDialog
;
import
org.jkiss.dbeaver.ui.preferences.PrefPageDatabaseGeneral
;
import
org.jkiss.dbeaver.ui.properties.PropertyCollector
;
import
org.jkiss.dbeaver.ui.controls.PropertyPageStandard
;
import
org.jkiss.dbeaver.utils.ContentUtils
;
import
org.jkiss.utils.CommonUtils
;
...
...
@@ -298,7 +300,7 @@ public class ResultSetViewer extends Viewer
}
};
this
.
themeManager
.
addPropertyChangeListener
(
themeChangeListener
);
this
.
spreadsheet
.
addDisposeListener
(
new
DisposeListener
()
{
this
.
viewerPanel
.
addDisposeListener
(
new
DisposeListener
()
{
@Override
public
void
widgetDisposed
(
DisposeEvent
e
)
{
...
...
@@ -314,7 +316,6 @@ public class ResultSetViewer extends Viewer
}
}
});
//this.spreadsheet.setTopLeftRenderer(new TopLeftRenderer(this));
applyThemeSettings
();
spreadsheet
.
addFocusListener
(
new
FocusListener
()
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/
spreadsheet/SpreadsheetSelec
tion.java
→
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/
resultset/view/EmptyPresenta
tion.java
浏览文件 @
455b3090
...
...
@@ -16,69 +16,36 @@
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package
org.jkiss.dbeaver.ui.controls.spreadsheet
;
import
org.eclipse.jface.viewers.IStructuredSelection
;
import
org.jkiss.dbeaver.ui.controls.lightgrid.GridPos
;
package
org.jkiss.dbeaver.ui.controls.resultset.view
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Iterator
;
import
java.util.List
;
import
org.eclipse.swt.SWT
;
import
org.eclipse.swt.widgets.Composite
;
import
org.eclipse.swt.widgets.Control
;
import
org.jkiss.dbeaver.ui.controls.resultset.IResultSetController
;
import
org.jkiss.dbeaver.ui.controls.resultset.IResultSetPresentation
;
/**
* SpreadsheetSelection
* Empty presentation.
* Used when RSV has no results (initially).
*/
class
SpreadsheetSelection
implements
IStructuredSelection
{
private
Spreadsheet
grid
;
private
Collection
<
GridPos
>
selection
;
public
class
EmptyPresentation
implements
IResultSetPresentation
{
public
SpreadsheetSelection
(
Spreadsheet
grid
)
{
this
.
grid
=
grid
;
this
.
selection
=
grid
.
getSelection
();
}
Spreadsheet
getGrid
()
{
return
grid
;
}
private
Composite
placeholder
;
@Override
public
boolean
isEmpty
()
{
return
selection
.
isEmpty
();
public
void
createPresentation
(
IResultSetController
controller
,
Composite
parent
)
{
placeholder
=
new
Composite
(
parent
,
SWT
.
NONE
);
}
@Override
public
Object
getFirstElement
()
{
return
selection
.
iterator
().
next
();
public
Control
getControl
()
{
return
placeholder
;
}
@Override
public
Iterator
<
GridPos
>
iterator
()
{
return
selection
.
iterator
();
}
public
void
refreshData
(
boolean
refreshMetadata
)
{
@Override
public
int
size
()
{
return
selection
.
size
();
}
@Override
public
Object
[]
toArray
()
{
return
selection
.
toArray
();
}
@Override
public
List
<
Object
>
toList
()
{
return
new
ArrayList
<
Object
>(
selection
);
}
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/spreadsheet/Spreadsheet.java
浏览文件 @
455b3090
...
...
@@ -60,21 +60,19 @@ public class Spreadsheet extends LightGrid implements Listener {
@NotNull
private
final
IWorkbenchPartSite
site
;
@NotNull
private
final
IResultSetController
spreadshe
etController
;
private
final
IResultSetController
resultS
etController
;
@NotNull
private
final
IGridContentProvider
contentProvider
;
@NotNull
private
final
IGridLabelProvider
labelProvider
;
private
SpreadsheetSelectionProvider
selectionProvider
;
private
Clipboard
clipboard
;
public
Spreadsheet
(
@NotNull
final
Composite
parent
,
final
int
style
,
@NotNull
final
IWorkbenchPartSite
site
,
@NotNull
final
IResultSetController
spreadshe
etController
,
@NotNull
final
IResultSetController
resultS
etController
,
@NotNull
final
IGridContentProvider
contentProvider
,
@NotNull
final
IGridLabelProvider
labelProvider
)
{
...
...
@@ -87,10 +85,9 @@ public class Spreadsheet extends LightGrid implements Listener {
this
.
setLayout
(
layout
);
this
.
site
=
site
;
this
.
spreadsheetController
=
spreadshe
etController
;
this
.
resultSetController
=
resultS
etController
;
this
.
contentProvider
=
contentProvider
;
this
.
labelProvider
=
labelProvider
;
this
.
selectionProvider
=
new
SpreadsheetSelectionProvider
(
this
);
this
.
clipboard
=
new
Clipboard
(
getDisplay
());
...
...
@@ -131,7 +128,7 @@ public class Spreadsheet extends LightGrid implements Listener {
public
IResultSetController
getController
()
{
return
spreadshe
etController
;
return
resultS
etController
;
}
public
Clipboard
getClipboard
()
...
...
@@ -243,7 +240,7 @@ public class Spreadsheet extends LightGrid implements Listener {
(
event
.
keyCode
>=
'a'
&&
event
.
keyCode
<=
'z'
)
||
(
event
.
keyCode
>=
'0'
&&
event
.
keyCode
<=
'9'
))
{
final
Control
editorControl
=
spreadshe
etController
.
showCellEditor
(
true
);
final
Control
editorControl
=
resultS
etController
.
showCellEditor
(
true
);
if
(
editorControl
!=
null
&&
event
.
keyCode
!=
SWT
.
CR
)
{
// Forward the same key event to just created control
final
Event
fwdEvent
=
new
Event
();
...
...
@@ -263,7 +260,7 @@ public class Spreadsheet extends LightGrid implements Listener {
Object
col
=
getFocusColumnElement
();
Object
row
=
getFocusRowElement
();
if
(
col
!=
null
&&
row
!=
null
)
{
spreadshe
etController
.
resetCellValue
(
col
,
row
,
false
);
resultS
etController
.
resetCellValue
(
col
,
row
,
false
);
}
}
break
;
...
...
@@ -278,21 +275,21 @@ public class Spreadsheet extends LightGrid implements Listener {
case
NONE:
return
;
case
EDITOR:
spreadshe
etController
.
showCellEditor
(
false
);
resultS
etController
.
showCellEditor
(
false
);
break
;
case
INLINE_EDITOR:
spreadshe
etController
.
showCellEditor
(
true
);
resultS
etController
.
showCellEditor
(
true
);
break
;
}
}
break
;
case
SWT
.
MouseDown
:
if
(
event
.
button
==
2
)
{
spreadshe
etController
.
showCellEditor
(
true
);
resultS
etController
.
showCellEditor
(
true
);
}
break
;
case
LightGrid
.
Event_ChangeSort
:
spreadshe
etController
.
changeSorting
(
event
.
data
,
event
.
stateMask
);
resultS
etController
.
changeSorting
(
event
.
data
,
event
.
stateMask
);
break
;
case
LightGrid
.
Event_NavigateLink
:
// Perform navigation async because it may change grid content and
...
...
@@ -300,7 +297,7 @@ public class Spreadsheet extends LightGrid implements Listener {
getDisplay
().
asyncExec
(
new
Runnable
()
{
@Override
public
void
run
()
{
spreadshe
etController
.
navigateLink
((
GridCell
)
event
.
data
,
event
.
stateMask
);
resultS
etController
.
navigateLink
((
GridCell
)
event
.
data
,
event
.
stateMask
);
}
});
break
;
...
...
@@ -313,13 +310,6 @@ public class Spreadsheet extends LightGrid implements Listener {
super
.
refreshData
(
refreshColumns
);
}
public
void
clearGrid
()
{
//spreadsheet.setSelection(new int[0]);
cancelInlineEditor
();
super
.
removeAll
();
}
private
void
hookContextMenu
()
{
MenuManager
menuMgr
=
new
MenuManager
();
...
...
@@ -332,7 +322,7 @@ public class Spreadsheet extends LightGrid implements Listener {
// Let controller to provide it's own menu items
GridPos
focusPos
=
getFocusPos
();
spreadshe
etController
.
fillContextMenu
(
resultS
etController
.
fillContextMenu
(
focusPos
.
col
>=
0
&&
focusPos
.
col
<
columnElements
.
length
?
columnElements
[
focusPos
.
col
]
:
null
,
focusPos
.
row
>=
0
&&
focusPos
.
row
<
rowElements
.
length
?
rowElements
[
focusPos
.
row
]
:
null
,
manager
);
...
...
@@ -340,7 +330,7 @@ public class Spreadsheet extends LightGrid implements Listener {
});
menuMgr
.
setRemoveAllWhenShown
(
true
);
super
.
setMenu
(
menu
);
site
.
registerContextMenu
(
menuMgr
,
selectionProvider
);
site
.
registerContextMenu
(
menuMgr
,
null
);
}
public
void
cancelInlineEditor
()
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/spreadsheet/SpreadsheetSelectionProvider.java
已删除
100644 → 0
浏览文件 @
6ae1689b
/*
* Copyright (C) 2010-2015 Serge Rieder
* serge@jkiss.org
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package
org.jkiss.dbeaver.ui.controls.spreadsheet
;
import
org.jkiss.dbeaver.core.Log
;
import
org.eclipse.jface.viewers.ISelection
;
import
org.eclipse.jface.viewers.ISelectionChangedListener
;
import
org.eclipse.jface.viewers.ISelectionProvider
;
import
org.eclipse.jface.viewers.SelectionChangedEvent
;
import
org.jkiss.utils.CommonUtils
;
import
java.util.List
;
/**
* SpreadsheetSelectionProvider
*/
public
class
SpreadsheetSelectionProvider
implements
ISelectionProvider
{
static
final
Log
log
=
Log
.
getLog
(
SpreadsheetSelectionProvider
.
class
);
private
Spreadsheet
grid
;
private
List
<
ISelectionChangedListener
>
listeners
;
public
SpreadsheetSelectionProvider
(
Spreadsheet
grid
)
{
this
.
grid
=
grid
;
}
@Override
public
void
addSelectionChangedListener
(
ISelectionChangedListener
listener
)
{
listeners
.
add
(
listener
);
}
@Override
public
void
removeSelectionChangedListener
(
ISelectionChangedListener
listener
)
{
listeners
.
remove
(
listener
);
}
@Override
public
ISelection
getSelection
()
{
return
new
SpreadsheetSelection
(
grid
);
}
@Override
public
void
setSelection
(
ISelection
selection
)
{
log
.
warn
(
"Grid do not supports external selection changes"
);
}
void
onSelectionChange
(
ISelection
selection
)
{
if
(!
CommonUtils
.
isEmpty
(
listeners
))
{
SelectionChangedEvent
event
=
new
SelectionChangedEvent
(
this
,
selection
);
for
(
int
i
=
0
;
i
<
listeners
.
size
();
i
++)
{
listeners
.
get
(
i
).
selectionChanged
(
event
);
}
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录