Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
e0a679b1
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,发现更多精彩内容 >>
提交
e0a679b1
编写于
5月 06, 2018
作者:
S
serge-rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Code cleanup (java 8)
上级
2043dfa0
变更
15
隐藏空白更改
内联
并排
Showing
15 changed file
with
153 addition
and
374 deletion
+153
-374
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/lightgrid/LightGrid.java
...rc/org/jkiss/dbeaver/ui/controls/lightgrid/LightGrid.java
+11
-77
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/querylog/QueryLogViewer.java
...rg/jkiss/dbeaver/ui/controls/querylog/QueryLogViewer.java
+2
-17
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetCommandHandler.java
...beaver/ui/controls/resultset/ResultSetCommandHandler.java
+13
-20
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetDataContainer.java
...dbeaver/ui/controls/resultset/ResultSetDataContainer.java
+9
-12
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetDataReceiver.java
.../dbeaver/ui/controls/resultset/ResultSetDataReceiver.java
+12
-15
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetModel.java
...g/jkiss/dbeaver/ui/controls/resultset/ResultSetModel.java
+35
-46
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/panel/AggregateColumnsPanel.java
...er/ui/controls/resultset/panel/AggregateColumnsPanel.java
+11
-34
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/panel/MetaDataPanel.java
...ss/dbeaver/ui/controls/resultset/panel/MetaDataPanel.java
+20
-35
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/panel/ViewValuePanel.java
...s/dbeaver/ui/controls/resultset/panel/ViewValuePanel.java
+18
-38
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/plaintext/PlainTextPresentation.java
...i/controls/resultset/plaintext/PlainTextPresentation.java
+3
-10
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/Spreadsheet.java
...beaver/ui/controls/resultset/spreadsheet/Spreadsheet.java
+14
-45
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/SpreadsheetCellEditor.java
...controls/resultset/spreadsheet/SpreadsheetCellEditor.java
+1
-9
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/SpreadsheetPresentation.java
...ntrols/resultset/spreadsheet/SpreadsheetPresentation.java
+3
-13
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/qm/QMObjectType.java
...er.model/src/org/jkiss/dbeaver/model/qm/QMObjectType.java
+1
-1
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/qm/QMUtils.java
...dbeaver.model/src/org/jkiss/dbeaver/model/qm/QMUtils.java
+0
-2
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/lightgrid/LightGrid.java
浏览文件 @
e0a679b1
...
...
@@ -32,7 +32,6 @@ import org.jkiss.dbeaver.Log;
import
org.jkiss.dbeaver.model.DBPImage
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.dnd.LocalObjectTransfer
;
import
org.jkiss.dbeaver.ui.dnd.TreeNodeTransfer
;
import
org.jkiss.utils.ArrayUtils
;
import
org.jkiss.utils.CommonUtils
;
import
org.jkiss.utils.IntKeyMap
;
...
...
@@ -2578,12 +2577,7 @@ public abstract class LightGrid extends Canvas {
for
(
Integer
columnIndex
:
columnIndices
.
keySet
())
{
selectedColumns
.
add
(
columns
.
get
(
columnIndex
));
}
Collections
.
sort
(
selectedColumns
,
new
Comparator
<
GridColumn
>()
{
@Override
public
int
compare
(
GridColumn
o1
,
GridColumn
o2
)
{
return
o1
.
getIndex
()
-
o2
.
getIndex
();
}
});
selectedColumns
.
sort
(
Comparator
.
comparingInt
(
GridColumn:
:
getIndex
));
}
/**
...
...
@@ -2591,66 +2585,23 @@ public abstract class LightGrid extends Canvas {
*/
private
void
initListeners
()
{
disposeListener
=
new
Listener
()
{
@Override
public
void
handleEvent
(
Event
e
)
{
onDispose
(
e
);
}
};
disposeListener
=
this
::
onDispose
;
addListener
(
SWT
.
Dispose
,
disposeListener
);
addPaintListener
(
new
PaintListener
()
{
@Override
public
void
paintControl
(
PaintEvent
e
)
{
onPaint
(
e
);
}
});
addListener
(
SWT
.
Resize
,
new
Listener
()
{
@Override
public
void
handleEvent
(
Event
e
)
{
onResize
();
}
});
addPaintListener
(
this
::
onPaint
);
addListener
(
SWT
.
Resize
,
e
->
onResize
());
if
(
getVerticalBar
()
!=
null
)
{
getVerticalBar
().
addListener
(
SWT
.
Selection
,
new
Listener
()
{
@Override
public
void
handleEvent
(
Event
e
)
{
onScrollSelection
();
}
});
getVerticalBar
().
addListener
(
SWT
.
Selection
,
e
->
onScrollSelection
());
}
if
(
getHorizontalBar
()
!=
null
)
{
getHorizontalBar
().
addListener
(
SWT
.
Selection
,
new
Listener
()
{
@Override
public
void
handleEvent
(
Event
e
)
{
onScrollSelection
();
}
});
getHorizontalBar
().
addListener
(
SWT
.
Selection
,
e
->
onScrollSelection
());
}
addListener
(
SWT
.
KeyDown
,
new
Listener
()
{
@Override
public
void
handleEvent
(
Event
e
)
{
onKeyDown
(
e
);
}
});
addListener
(
SWT
.
KeyDown
,
this
::
onKeyDown
);
addTraverseListener
(
new
TraverseListener
()
{
@Override
public
void
keyTraversed
(
TraverseEvent
e
)
{
e
.
doit
=
true
;
}
});
addTraverseListener
(
e
->
e
.
doit
=
true
);
addMouseListener
(
new
MouseListener
()
{
@Override
...
...
@@ -2672,13 +2623,7 @@ public abstract class LightGrid extends Canvas {
}
});
addMouseMoveListener
(
new
MouseMoveListener
()
{
@Override
public
void
mouseMove
(
MouseEvent
e
)
{
onMouseMove
(
e
);
}
});
addMouseMoveListener
(
this
::
onMouseMove
);
addMouseTrackListener
(
new
MouseTrackListener
()
{
@Override
...
...
@@ -2715,13 +2660,7 @@ public abstract class LightGrid extends Canvas {
// Special code to reflect mouse wheel events if using an external
// scroller
addListener
(
SWT
.
MouseWheel
,
new
Listener
()
{
@Override
public
void
handleEvent
(
Event
e
)
{
onMouseWheel
(
e
);
}
});
addListener
(
SWT
.
MouseWheel
,
this
::
onMouseWheel
);
}
private
void
onFocusIn
()
...
...
@@ -2979,12 +2918,7 @@ public abstract class LightGrid extends Canvas {
if
(
focusItem
>
row
)
{
focusItem
=
row
;
}
for
(
Iterator
<
GridPos
>
iter
=
selectedCells
.
iterator
();
iter
.
hasNext
();
)
{
GridPos
pos
=
iter
.
next
();
if
(
pos
.
row
>
row
)
{
iter
.
remove
();
}
}
selectedCells
.
removeIf
(
pos
->
pos
.
row
>
row
);
updateSelectionCache
();
computeHeaderSizes
();
this
.
scrollValuesObsolete
=
true
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/querylog/QueryLogViewer.java
浏览文件 @
e0a679b1
...
...
@@ -19,9 +19,6 @@ package org.jkiss.dbeaver.ui.controls.querylog;
import
org.eclipse.core.runtime.IStatus
;
import
org.eclipse.core.runtime.Status
;
import
org.eclipse.core.runtime.jobs.IJobChangeEvent
;
import
org.eclipse.core.runtime.jobs.Job
;
import
org.eclipse.core.runtime.jobs.JobChangeAdapter
;
import
org.eclipse.jface.action.Action
;
import
org.eclipse.jface.action.IAction
;
import
org.eclipse.jface.action.MenuManager
;
...
...
@@ -33,7 +30,6 @@ import org.eclipse.jface.viewers.ISelection;
import
org.eclipse.jface.viewers.IStructuredSelection
;
import
org.eclipse.jface.viewers.StructuredSelection
;
import
org.eclipse.jface.viewers.Viewer
;
import
org.eclipse.jgit.annotations.Nullable
;
import
org.eclipse.osgi.util.NLS
;
import
org.eclipse.swt.SWT
;
import
org.eclipse.swt.dnd.*
;
...
...
@@ -47,6 +43,7 @@ import org.eclipse.swt.widgets.*;
import
org.eclipse.ui.IWorkbenchCommandConstants
;
import
org.eclipse.ui.IWorkbenchPartSite
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.core.CoreCommands
;
...
...
@@ -60,7 +57,6 @@ import org.jkiss.dbeaver.model.preferences.DBPPreferenceListener;
import
org.jkiss.dbeaver.model.preferences.DBPPreferenceStore
;
import
org.jkiss.dbeaver.model.qm.*
;
import
org.jkiss.dbeaver.model.qm.meta.*
;
import
org.jkiss.dbeaver.model.runtime.AbstractJob
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.sql.SQLConstants
;
import
org.jkiss.dbeaver.model.sql.SQLDialect
;
...
...
@@ -333,20 +329,11 @@ public class QueryLogViewer extends Viewer implements QMMetaListener, DBPPrefere
private
int
entriesPerPage
=
MIN_ENTRIES_PER_PAGE
;
private
Job
filterJob
;
public
QueryLogViewer
(
Composite
parent
,
IWorkbenchPartSite
site
,
QMEventFilter
filter
,
boolean
showConnection
)
{
super
();
this
.
site
=
site
;
this
.
filterJob
=
new
AbstractJob
(
"Filter query history"
)
{
@Override
protected
IStatus
run
(
DBRProgressMonitor
monitor
)
{
refresh
();
return
Status
.
OK_STATUS
;
}
};
// Prepare colors
...
...
@@ -372,9 +359,7 @@ public class QueryLogViewer extends Viewer implements QMMetaListener, DBPPrefere
e
.
gc
.
setFont
(
null
);
}
});
this
.
searchText
.
addModifyListener
(
e
->
{
scheduleLogRefresh
();
});
this
.
searchText
.
addModifyListener
(
e
->
scheduleLogRefresh
());
// Create log table
logTable
=
new
Table
(
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetCommandHandler.java
浏览文件 @
e0a679b1
...
...
@@ -51,7 +51,6 @@ import org.jkiss.dbeaver.model.data.DBDDisplayFormat;
import
org.jkiss.dbeaver.model.edit.DBEPersistAction
;
import
org.jkiss.dbeaver.model.runtime.AbstractJob
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress
;
import
org.jkiss.dbeaver.model.sql.SQLUtils
;
import
org.jkiss.dbeaver.runtime.ui.DBUserInterface
;
import
org.jkiss.dbeaver.tools.transfer.IDataTransferProducer
;
...
...
@@ -231,13 +230,10 @@ public class ResultSetCommandHandler extends AbstractHandler {
try
{
final
List
<
DBEPersistAction
>
sqlScript
=
new
ArrayList
<>();
try
{
DBeaverUI
.
runInProgressService
(
new
DBRRunnableWithProgress
()
{
@Override
public
void
run
(
DBRProgressMonitor
monitor
)
throws
InvocationTargetException
,
InterruptedException
{
List
<
DBEPersistAction
>
script
=
rsv
.
generateChangesScript
(
monitor
);
if
(
script
!=
null
)
{
sqlScript
.
addAll
(
script
);
}
DBeaverUI
.
runInProgressService
(
monitor
->
{
List
<
DBEPersistAction
>
script
=
rsv
.
generateChangesScript
(
monitor
);
if
(
script
!=
null
)
{
sqlScript
.
addAll
(
script
);
}
});
}
catch
(
InterruptedException
e
)
{
...
...
@@ -384,20 +380,17 @@ public class ResultSetCommandHandler extends AbstractHandler {
"Go to Row"
,
"Enter row number (1.."
+
rowCount
+
")"
,
String
.
valueOf
(
currentRow
==
null
?
1
:
currentRow
.
getVisualNumber
()
+
1
),
new
IInputValidator
()
{
@Override
public
String
isValid
(
String
input
)
{
try
{
int
i
=
Integer
.
parseInt
(
input
);
if
(
i
<=
0
||
rowCount
<
i
)
{
return
"Row number is out of range"
;
}
}
catch
(
NumberFormatException
x
)
{
return
"Not a number"
;
input
->
{
try
{
int
i
=
Integer
.
parseInt
(
input
);
if
(
i
<=
0
||
rowCount
<
i
)
{
return
"Row number is out of range"
;
}
return
null
;
}
catch
(
NumberFormatException
x
)
{
return
"Not a number"
;
}
return
null
;
});
if
(
d
.
open
()
==
Window
.
OK
)
{
int
line
=
Integer
.
parseInt
(
d
.
getValue
());
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetDataContainer.java
浏览文件 @
e0a679b1
...
...
@@ -217,20 +217,17 @@ public class ResultSetDataContainer implements DBSDataContainer, IAdaptable {
@Override
public
DBCResultSetMetaData
getMeta
()
throws
DBCException
{
return
new
DBCResultSetMetaData
()
{
@Override
public
List
<
DBCAttributeMetaData
>
getAttributes
()
{
List
<
DBDAttributeBinding
>
attributes
=
model
.
getVisibleAttributes
();
List
<
DBCAttributeMetaData
>
meta
=
new
ArrayList
<>(
attributes
.
size
());
boolean
selectedColumnsOnly
=
proceedSelectedColumnsOnly
();
for
(
DBDAttributeBinding
attribute
:
attributes
)
{
DBCAttributeMetaData
metaAttribute
=
attribute
.
getMetaAttribute
();
if
(!
selectedColumnsOnly
||
options
.
getSelectedColumns
().
contains
(
metaAttribute
.
getName
()))
{
meta
.
add
(
metaAttribute
);
}
return
()
->
{
List
<
DBDAttributeBinding
>
attributes
=
model
.
getVisibleAttributes
();
List
<
DBCAttributeMetaData
>
meta
=
new
ArrayList
<>(
attributes
.
size
());
boolean
selectedColumnsOnly
=
proceedSelectedColumnsOnly
();
for
(
DBDAttributeBinding
attribute
:
attributes
)
{
DBCAttributeMetaData
metaAttribute
=
attribute
.
getMetaAttribute
();
if
(!
selectedColumnsOnly
||
options
.
getSelectedColumns
().
contains
(
metaAttribute
.
getName
()))
{
meta
.
add
(
metaAttribute
);
}
return
meta
;
}
return
meta
;
};
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetDataReceiver.java
浏览文件 @
e0a679b1
...
...
@@ -156,22 +156,19 @@ class ResultSetDataReceiver implements DBDDataReceiver {
final
List
<
Object
[]>
tmpRows
=
rows
;
final
boolean
nextSegmentRead
=
this
.
nextSegmentRead
;
DBeaverUI
.
syncExec
(
new
Runnable
()
{
@Override
public
void
run
()
{
// Push data into viewer
if
(!
nextSegmentRead
)
{
resultSetViewer
.
updatePresentation
(
resultSet
);
resultSetViewer
.
setData
(
tmpRows
,
focusRow
);
resultSetViewer
.
getActivePresentation
().
refreshData
(
true
,
false
,
!
resultSetViewer
.
getModel
().
isMetadataChanged
());
}
else
{
resultSetViewer
.
appendData
(
tmpRows
);
resultSetViewer
.
getActivePresentation
().
refreshData
(
false
,
true
,
true
);
}
resultSetViewer
.
updateStatusMessage
();
// Check for more data
hasMoreData
=
maxRows
>
0
&&
tmpRows
.
size
()
>=
maxRows
;
DBeaverUI
.
syncExec
(()
->
{
// Push data into viewer
if
(!
nextSegmentRead
)
{
resultSetViewer
.
updatePresentation
(
resultSet
);
resultSetViewer
.
setData
(
tmpRows
,
focusRow
);
resultSetViewer
.
getActivePresentation
().
refreshData
(
true
,
false
,
!
resultSetViewer
.
getModel
().
isMetadataChanged
());
}
else
{
resultSetViewer
.
appendData
(
tmpRows
);
resultSetViewer
.
getActivePresentation
().
refreshData
(
false
,
true
,
true
);
}
resultSetViewer
.
updateStatusMessage
();
// Check for more data
hasMoreData
=
maxRows
>
0
&&
tmpRows
.
size
()
>=
maxRows
;
});
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetModel.java
浏览文件 @
e0a679b1
...
...
@@ -544,7 +544,7 @@ public class ResultSetModel {
this
.
dataFilter
=
createDataFilter
();
updateDataFilter
(
prevFilter
);
}
Collections
.
sort
(
this
.
visibleAttributes
,
POSITION_SORTER
);
this
.
visibleAttributes
.
sort
(
POSITION_SORTER
);
{
// Check single source flag
...
...
@@ -597,11 +597,8 @@ public class ResultSetModel {
for
(
DBVColorOverride
co
:
coList
)
{
DBDAttributeBinding
binding
=
getAttributeBinding
(
entity
,
co
.
getAttributeName
());
if
(
binding
!=
null
)
{
List
<
AttributeColorSettings
>
cmList
=
colorMapping
.
get
(
binding
);
if
(
cmList
==
null
)
{
cmList
=
new
ArrayList
<>();
colorMapping
.
put
(
binding
,
cmList
);
}
List
<
AttributeColorSettings
>
cmList
=
colorMapping
.
computeIfAbsent
(
binding
,
k
->
new
ArrayList
<>());
cmList
.
add
(
new
AttributeColorSettings
(
co
));
}
}
...
...
@@ -724,12 +721,7 @@ public class ResultSetModel {
if
(
rows
!=
null
&&
!
rows
.
isEmpty
())
{
// Remove rows (in descending order to prevent concurrent modification errors)
List
<
ResultSetRow
>
rowsToRemove
=
new
ArrayList
<>(
rows
);
Collections
.
sort
(
rowsToRemove
,
new
Comparator
<
ResultSetRow
>()
{
@Override
public
int
compare
(
ResultSetRow
o1
,
ResultSetRow
o2
)
{
return
o1
.
getVisualNumber
()
-
o2
.
getVisualNumber
();
}
});
rowsToRemove
.
sort
(
Comparator
.
comparingInt
(
ResultSetRow:
:
getVisualNumber
));
for
(
ResultSetRow
row
:
rowsToRemove
)
{
cleanupRow
(
row
);
}
...
...
@@ -858,7 +850,7 @@ public class ResultSetModel {
}
}
Collections
.
sort
(
this
.
visibleAttributes
,
POSITION_SORTER
);
this
.
visibleAttributes
.
sort
(
POSITION_SORTER
);
this
.
dataFilter
.
setWhere
(
filter
.
getWhere
());
this
.
dataFilter
.
setOrder
(
filter
.
getOrder
());
...
...
@@ -869,42 +861,39 @@ public class ResultSetModel {
final
boolean
hasOrdering
=
dataFilter
.
hasOrdering
();
// Sort locally
final
List
<
DBDAttributeConstraint
>
orderConstraints
=
dataFilter
.
getOrderConstraints
();
Collections
.
sort
(
curRows
,
new
Comparator
<
ResultSetRow
>()
{
@Override
public
int
compare
(
ResultSetRow
row1
,
ResultSetRow
row2
)
{
if
(!
hasOrdering
)
{
return
row1
.
getRowNumber
()
-
row2
.
getRowNumber
();
curRows
.
sort
((
row1
,
row2
)
->
{
if
(!
hasOrdering
)
{
return
row1
.
getRowNumber
()
-
row2
.
getRowNumber
();
}
int
result
=
0
;
for
(
DBDAttributeConstraint
co
:
orderConstraints
)
{
final
DBDAttributeBinding
binding
=
getAttributeBinding
(
co
.
getAttribute
());
if
(
binding
==
null
)
{
continue
;
}
int
result
=
0
;
for
(
DBDAttributeConstraint
co
:
orderConstraints
)
{
final
DBDAttributeBinding
binding
=
getAttributeBinding
(
co
.
getAttribute
());
if
(
binding
==
null
)
{
continue
;
}
Object
cell1
=
getCellValue
(
binding
,
row1
);
Object
cell2
=
getCellValue
(
binding
,
row2
);
if
(
cell1
==
cell2
)
{
result
=
0
;
}
else
if
(
DBUtils
.
isNullValue
(
cell1
))
{
result
=
1
;
}
else
if
(
DBUtils
.
isNullValue
(
cell2
))
{
result
=
-
1
;
}
else
if
(
cell1
instanceof
Comparable
)
{
result
=
((
Comparable
)
cell1
).
compareTo
(
cell2
);
}
else
{
String
str1
=
String
.
valueOf
(
cell1
);
String
str2
=
String
.
valueOf
(
cell2
);
result
=
str1
.
compareTo
(
str2
);
}
if
(
co
.
isOrderDescending
())
{
result
=
-
result
;
}
if
(
result
!=
0
)
{
break
;
}
Object
cell1
=
getCellValue
(
binding
,
row1
);
Object
cell2
=
getCellValue
(
binding
,
row2
);
if
(
cell1
==
cell2
)
{
result
=
0
;
}
else
if
(
DBUtils
.
isNullValue
(
cell1
))
{
result
=
1
;
}
else
if
(
DBUtils
.
isNullValue
(
cell2
))
{
result
=
-
1
;
}
else
if
(
cell1
instanceof
Comparable
)
{
result
=
((
Comparable
)
cell1
).
compareTo
(
cell2
);
}
else
{
String
str1
=
String
.
valueOf
(
cell1
);
String
str2
=
String
.
valueOf
(
cell2
);
result
=
str1
.
compareTo
(
str2
);
}
if
(
co
.
isOrderDescending
())
{
result
=
-
result
;
}
if
(
result
!=
0
)
{
break
;
}
return
result
;
}
return
result
;
});
for
(
int
i
=
0
;
i
<
curRows
.
size
();
i
++)
{
curRows
.
get
(
i
).
setVisualNumber
(
i
);
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/panel/AggregateColumnsPanel.java
浏览文件 @
e0a679b1
...
...
@@ -19,9 +19,7 @@ package org.jkiss.dbeaver.ui.controls.resultset.panel;
import
org.eclipse.jface.action.*
;
import
org.eclipse.jface.dialogs.IDialogSettings
;
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.eclipse.swt.SWT
;
import
org.eclipse.swt.dnd.TextTransfer
;
import
org.eclipse.swt.events.SelectionAdapter
;
...
...
@@ -103,26 +101,19 @@ public class AggregateColumnsPanel implements IResultSetPanel {
new
TreeColumn
(
this
.
aggregateTable
,
SWT
.
RIGHT
).
setText
(
"Value"
);
if
(
this
.
presentation
instanceof
ISelectionProvider
)
{
((
ISelectionProvider
)
this
.
presentation
).
addSelectionChangedListener
(
new
ISelectionChangedListener
()
{
@Override
public
void
selectionChanged
(
SelectionChangedEvent
event
)
{
if
(
presentation
.
getController
().
getVisiblePanel
()
==
AggregateColumnsPanel
.
this
)
{
refresh
(
false
);
}
((
ISelectionProvider
)
this
.
presentation
).
addSelectionChangedListener
(
event
->
{
if
(
presentation
.
getController
().
getVisiblePanel
()
==
AggregateColumnsPanel
.
this
)
{
refresh
(
false
);
}
});
}
MenuManager
menuMgr
=
new
MenuManager
();
menuMgr
.
addMenuListener
(
new
IMenuListener
()
{
@Override
public
void
menuAboutToShow
(
IMenuManager
manager
)
{
manager
.
add
(
new
CopyAction
());
manager
.
add
(
new
CopyAllAction
());
manager
.
add
(
new
Separator
());
fillToolBar
(
manager
);
}
menuMgr
.
addMenuListener
(
manager
->
{
manager
.
add
(
new
CopyAction
());
manager
.
add
(
new
CopyAllAction
());
manager
.
add
(
new
Separator
());
fillToolBar
(
manager
);
});
menuMgr
.
setRemoveAllWhenShown
(
true
);
...
...
@@ -157,12 +148,7 @@ public class AggregateColumnsPanel implements IResultSetPanel {
enabledFunctions
.
add
(
func
);
}
}
Collections
.
sort
(
enabledFunctions
,
new
Comparator
<
AggregateFunctionDescriptor
>()
{
@Override
public
int
compare
(
AggregateFunctionDescriptor
o1
,
AggregateFunctionDescriptor
o2
)
{
return
funcIndexes
.
get
(
o1
)
-
funcIndexes
.
get
(
o2
);
}
});
enabledFunctions
.
sort
(
Comparator
.
comparingInt
(
funcIndexes:
:
get
));
}
if
(
enabledFunctions
.
isEmpty
())
{
...
...
@@ -176,12 +162,7 @@ public class AggregateColumnsPanel implements IResultSetPanel {
enabledFunctions
.
add
(
func
);
}
}
Collections
.
sort
(
enabledFunctions
,
new
Comparator
<
AggregateFunctionDescriptor
>()
{
@Override
public
int
compare
(
AggregateFunctionDescriptor
o1
,
AggregateFunctionDescriptor
o2
)
{
return
o1
.
getLabel
().
compareTo
(
o2
.
getLabel
());
}
});
enabledFunctions
.
sort
(
Comparator
.
comparing
(
AggregateFunctionDescriptor:
:
getLabel
));
}
private
void
saveSettings
()
{
...
...
@@ -241,11 +222,7 @@ public class AggregateColumnsPanel implements IResultSetPanel {
DBDAttributeBinding
attr
=
selection
.
getElementAttribute
(
element
);
ResultSetRow
row
=
selection
.
getElementRow
(
element
);
Object
cellValue
=
model
.
getCellValue
(
attr
,
row
);
List
<
Object
>
values
=
attrValues
.
get
(
attr
);
if
(
values
==
null
)
{
values
=
new
ArrayList
<>();
attrValues
.
put
(
attr
,
values
);
}
List
<
Object
>
values
=
attrValues
.
computeIfAbsent
(
attr
,
k
->
new
ArrayList
<>());
values
.
add
(
cellValue
);
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/panel/MetaDataPanel.java
浏览文件 @
e0a679b1
...
...
@@ -22,14 +22,11 @@ import org.eclipse.jface.action.ToolBarManager;
import
org.eclipse.jface.viewers.*
;
import
org.eclipse.swt.SWT
;
import
org.eclipse.swt.dnd.TextTransfer
;
import
org.eclipse.swt.events.DisposeEvent
;
import
org.eclipse.swt.events.DisposeListener
;
import
org.eclipse.swt.graphics.Color
;
import
org.eclipse.swt.widgets.Composite
;
import
org.eclipse.swt.widgets.Control
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.model.DBPImage
;
import
org.jkiss.dbeaver.model.DBValueFormatting
;
import
org.jkiss.dbeaver.model.data.DBDAttributeBinding
;
...
...
@@ -56,8 +53,6 @@ import java.util.List;
*/
public
class
MetaDataPanel
implements
IResultSetPanel
{
private
static
final
Log
log
=
Log
.
getLog
(
MetaDataPanel
.
class
);
public
static
final
String
PANEL_ID
=
"results-metadata"
;
private
IResultSetPresentation
presentation
;
...
...
@@ -91,46 +86,36 @@ public class MetaDataPanel implements IResultSetPanel {
this
.
attributeList
=
new
MetaDataTable
(
parent
);
this
.
attributeList
.
setFitWidth
(
false
);
this
.
attributeList
.
getItemsViewer
().
addSelectionChangedListener
(
new
ISelectionChangedListener
()
{
@Override
public
void
selectionChanged
(
SelectionChangedEvent
event
)
{
DBDAttributeBinding
attr
=
getSelectedAttribute
();
if
(
attr
!=
null
&&
!
updateSelection
)
{
if
(
isAttributeVisible
(
attr
))
{
updateSelection
=
true
;
try
{
presentation
.
setCurrentAttribute
(
attr
);
}
finally
{
updateSelection
=
false
;
}
this
.
attributeList
.
getItemsViewer
().
addSelectionChangedListener
(
event
->
{
DBDAttributeBinding
attr
=
getSelectedAttribute
();
if
(
attr
!=
null
&&
!
updateSelection
)
{
if
(
isAttributeVisible
(
attr
))
{
updateSelection
=
true
;
try
{
presentation
.
setCurrentAttribute
(
attr
);
}
finally
{
updateSelection
=
false
;
}
}
}
});
if
(
this
.
presentation
instanceof
ISelectionProvider
)
{
final
ISelectionChangedListener
listener
=
new
ISelectionChangedListener
()
{
@Override
public
void
selectionChanged
(
SelectionChangedEvent
event
)
{
if
(!
updateSelection
&&
MetaDataPanel
.
this
.
presentation
.
getController
().
getVisiblePanel
()
==
MetaDataPanel
.
this
)
{
DBDAttributeBinding
attr
=
presentation
.
getCurrentAttribute
();
if
(
attr
!=
null
&&
attr
!=
getSelectedAttribute
())
{
updateSelection
=
true
;
try
{
attributeList
.
getItemsViewer
().
setSelection
(
new
StructuredSelection
(
attr
));
}
finally
{
updateSelection
=
false
;
}
final
ISelectionChangedListener
listener
=
event
->
{
if
(!
updateSelection
&&
MetaDataPanel
.
this
.
presentation
.
getController
().
getVisiblePanel
()
==
MetaDataPanel
.
this
)
{
DBDAttributeBinding
attr
=
presentation
.
getCurrentAttribute
();
if
(
attr
!=
null
&&
attr
!=
getSelectedAttribute
())
{
updateSelection
=
true
;
try
{
attributeList
.
getItemsViewer
().
setSelection
(
new
StructuredSelection
(
attr
));
}
finally
{
updateSelection
=
false
;
}
}
}
};
((
ISelectionProvider
)
this
.
presentation
).
addSelectionChangedListener
(
listener
);
attributeList
.
getControl
().
addDisposeListener
(
new
DisposeListener
()
{
@Override
public
void
widgetDisposed
(
DisposeEvent
e
)
{
((
ISelectionProvider
)
presentation
).
removeSelectionChangedListener
(
listener
);
}
});
attributeList
.
getControl
().
addDisposeListener
(
e
->
((
ISelectionProvider
)
presentation
).
removeSelectionChangedListener
(
listener
));
}
return
this
.
attributeList
;
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/panel/ViewValuePanel.java
浏览文件 @
e0a679b1
...
...
@@ -24,12 +24,7 @@ import org.eclipse.jface.action.ToolBarManager;
import
org.eclipse.jface.dialogs.IDialogSettings
;
import
org.eclipse.jface.viewers.ISelectionChangedListener
;
import
org.eclipse.jface.viewers.ISelectionProvider
;
import
org.eclipse.jface.viewers.SelectionChangedEvent
;
import
org.eclipse.swt.SWT
;
import
org.eclipse.swt.events.DisposeEvent
;
import
org.eclipse.swt.events.DisposeListener
;
import
org.eclipse.swt.events.PaintEvent
;
import
org.eclipse.swt.events.PaintListener
;
import
org.eclipse.swt.graphics.Point
;
import
org.eclipse.swt.graphics.Rectangle
;
import
org.eclipse.swt.layout.FillLayout
;
...
...
@@ -108,18 +103,15 @@ public class ViewValuePanel implements IResultSetPanel, IAdaptable {
viewPlaceholder
=
new
Composite
(
parent
,
SWT
.
NONE
);
viewPlaceholder
.
setLayout
(
new
FillLayout
());
viewPlaceholder
.
addPaintListener
(
new
PaintListener
()
{
@Override
public
void
paintControl
(
PaintEvent
e
)
{
if
(
viewPlaceholder
.
getChildren
().
length
==
0
)
{
String
hidePanelCmd
=
ActionUtils
.
findCommandDescription
(
ResultSetCommandHandler
.
CMD_TOGGLE_PANELS
,
ViewValuePanel
.
this
.
presentation
.
getController
().
getSite
(),
true
);
UIUtils
.
drawMessageOverControl
(
viewPlaceholder
,
e
,
"Select a cell to view/edit value"
,
0
);
UIUtils
.
drawMessageOverControl
(
viewPlaceholder
,
e
,
"Press "
+
hidePanelCmd
+
" to hide this panel"
,
20
);
}
viewPlaceholder
.
addPaintListener
(
e
->
{
if
(
viewPlaceholder
.
getChildren
().
length
==
0
)
{
String
hidePanelCmd
=
ActionUtils
.
findCommandDescription
(
ResultSetCommandHandler
.
CMD_TOGGLE_PANELS
,
ViewValuePanel
.
this
.
presentation
.
getController
().
getSite
(),
true
);
UIUtils
.
drawMessageOverControl
(
viewPlaceholder
,
e
,
"Select a cell to view/edit value"
,
0
);
UIUtils
.
drawMessageOverControl
(
viewPlaceholder
,
e
,
"Press "
+
hidePanelCmd
+
" to hide this panel"
,
20
);
}
});
...
...
@@ -137,21 +129,13 @@ public class ViewValuePanel implements IResultSetPanel, IAdaptable {
if
(
this
.
presentation
instanceof
ISelectionProvider
)
{
final
ISelectionProvider
selectionProvider
=
(
ISelectionProvider
)
this
.
presentation
;
final
ISelectionChangedListener
selectionListener
=
new
ISelectionChangedListener
()
{
@Override
public
void
selectionChanged
(
SelectionChangedEvent
event
)
{
if
(
ViewValuePanel
.
this
.
presentation
.
getController
().
getVisiblePanel
()
==
ViewValuePanel
.
this
)
{
refreshValue
(
false
);
}
final
ISelectionChangedListener
selectionListener
=
event
->
{
if
(
ViewValuePanel
.
this
.
presentation
.
getController
().
getVisiblePanel
()
==
ViewValuePanel
.
this
)
{
refreshValue
(
false
);
}
};
selectionProvider
.
addSelectionChangedListener
(
selectionListener
);
viewPlaceholder
.
addDisposeListener
(
new
DisposeListener
()
{
@Override
public
void
widgetDisposed
(
DisposeEvent
e
)
{
selectionProvider
.
removeSelectionChangedListener
(
selectionListener
);
}
});
viewPlaceholder
.
addDisposeListener
(
e
->
selectionProvider
.
removeSelectionChangedListener
(
selectionListener
));
}
return
viewPlaceholder
;
...
...
@@ -264,15 +248,11 @@ public class ViewValuePanel implements IResultSetPanel, IAdaptable {
}
else
{
final
Composite
placeholder
=
UIUtils
.
createPlaceholder
(
viewPlaceholder
,
1
);
placeholder
.
setBackground
(
placeholder
.
getDisplay
().
getSystemColor
(
SWT
.
COLOR_WIDGET_BACKGROUND
));
placeholder
.
addPaintListener
(
new
PaintListener
()
{
@Override
public
void
paintControl
(
PaintEvent
e
)
{
Rectangle
bounds
=
placeholder
.
getBounds
();
String
message
=
"No editor for ["
+
previewController
.
getValueType
().
getTypeName
()
+
"]"
;
Point
ext
=
e
.
gc
.
textExtent
(
message
);
e
.
gc
.
drawText
(
message
,
(
bounds
.
width
-
ext
.
x
)
/
2
,
bounds
.
height
/
3
+
20
);
}
placeholder
.
addPaintListener
(
e
->
{
Rectangle
bounds
=
placeholder
.
getBounds
();
String
message
=
"No editor for ["
+
previewController
.
getValueType
().
getTypeName
()
+
"]"
;
Point
ext
=
e
.
gc
.
textExtent
(
message
);
e
.
gc
.
drawText
(
message
,
(
bounds
.
width
-
ext
.
x
)
/
2
,
bounds
.
height
/
3
+
20
);
});
referenceValueEditor
=
null
;
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/plaintext/PlainTextPresentation.java
浏览文件 @
e0a679b1
...
...
@@ -100,9 +100,7 @@ public class PlainTextPresentation extends AbstractPresentation implements IAdap
fireSelectionChanged
(
new
PlainTextSelectionImpl
());
}
});
text
.
addDisposeListener
(
e
->
{
dispose
();
});
text
.
addDisposeListener
(
e
->
dispose
());
final
ScrollBar
verticalBar
=
text
.
getVerticalBar
();
verticalBar
.
addSelectionListener
(
new
SelectionAdapter
()
{
...
...
@@ -206,12 +204,7 @@ public class PlainTextPresentation extends AbstractPresentation implements IAdap
horOffsetEnd
-
horOffsetBegin
-
1
,
null
,
curLineColor
);
DBeaverUI
.
asyncExec
(
new
Runnable
()
{
@Override
public
void
run
()
{
text
.
setStyleRanges
(
new
StyleRange
[]{
curLineRange
});
}
});
DBeaverUI
.
asyncExec
(()
->
text
.
setStyleRanges
(
new
StyleRange
[]{
curLineRange
}));
}
}
...
...
@@ -582,7 +575,7 @@ public class PlainTextPresentation extends AbstractPresentation implements IAdap
public
List
<
String
>
toList
()
{
return
curSelection
==
null
?
Collections
.
<
String
>
emptyList
()
:
Collections
.
emptyList
()
:
Collections
.
singletonList
(
curSelection
);
}
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/Spreadsheet.java
浏览文件 @
e0a679b1
...
...
@@ -16,8 +16,6 @@
*/
package
org.jkiss.dbeaver.ui.controls.resultset.spreadsheet
;
import
org.eclipse.jface.action.IMenuListener
;
import
org.eclipse.jface.action.IMenuManager
;
import
org.eclipse.jface.action.MenuManager
;
import
org.eclipse.swt.SWT
;
import
org.eclipse.swt.accessibility.Accessible
;
...
...
@@ -25,29 +23,17 @@ import org.eclipse.swt.accessibility.AccessibleEvent;
import
org.eclipse.swt.accessibility.AccessibleListener
;
import
org.eclipse.swt.custom.StyledText
;
import
org.eclipse.swt.dnd.Clipboard
;
import
org.eclipse.swt.events.DisposeEvent
;
import
org.eclipse.swt.events.DisposeListener
;
import
org.eclipse.swt.graphics.Point
;
import
org.eclipse.swt.graphics.Rectangle
;
import
org.eclipse.swt.layout.GridLayout
;
import
org.eclipse.swt.widgets.Composite
;
import
org.eclipse.swt.widgets.Control
;
import
org.eclipse.swt.widgets.Event
;
import
org.eclipse.swt.widgets.Listener
;
import
org.eclipse.swt.widgets.Menu
;
import
org.eclipse.swt.widgets.Text
;
import
org.eclipse.swt.widgets.*
;
import
org.eclipse.ui.IWorkbenchPartSite
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.DBeaverPreferences
;
import
org.jkiss.dbeaver.core.DBeaverUI
;
import
org.jkiss.dbeaver.model.data.DBDAttributeBinding
;
import
org.jkiss.dbeaver.ui.controls.lightgrid.GridCell
;
import
org.jkiss.dbeaver.ui.controls.lightgrid.GridPos
;
import
org.jkiss.dbeaver.ui.controls.lightgrid.IGridContentProvider
;
import
org.jkiss.dbeaver.ui.controls.lightgrid.IGridController
;
import
org.jkiss.dbeaver.ui.controls.lightgrid.IGridLabelProvider
;
import
org.jkiss.dbeaver.ui.controls.lightgrid.LightGrid
;
import
org.jkiss.dbeaver.ui.controls.lightgrid.*
;
import
org.jkiss.dbeaver.ui.controls.resultset.AbstractPresentation
;
/**
...
...
@@ -130,12 +116,9 @@ public class Spreadsheet extends LightGrid implements Listener {
hookAccessibility
();
{
super
.
addDisposeListener
(
new
DisposeListener
()
{
@Override
public
void
widgetDisposed
(
DisposeEvent
e
)
{
if
(
clipboard
!=
null
&&
!
clipboard
.
isDisposed
())
{
clipboard
.
dispose
();
}
super
.
addDisposeListener
(
e
->
{
if
(
clipboard
!=
null
&&
!
clipboard
.
isDisposed
())
{
clipboard
.
dispose
();
}
});
}
...
...
@@ -328,12 +311,7 @@ public class Spreadsheet extends LightGrid implements Listener {
case
LightGrid
.
Event_NavigateLink
:
// Perform navigation async because it may change grid content and
// we don't want to mess current grid state
DBeaverUI
.
asyncExec
(
new
Runnable
()
{
@Override
public
void
run
()
{
presentation
.
navigateLink
((
GridCell
)
event
.
data
,
event
.
stateMask
);
}
});
DBeaverUI
.
asyncExec
(()
->
presentation
.
navigateLink
((
GridCell
)
event
.
data
,
event
.
stateMask
));
break
;
}
}
...
...
@@ -349,17 +327,13 @@ public class Spreadsheet extends LightGrid implements Listener {
{
MenuManager
menuMgr
=
new
MenuManager
(
null
,
AbstractPresentation
.
RESULT_SET_PRESENTATION_CONTEXT_MENU
);
Menu
menu
=
menuMgr
.
createContextMenu
(
this
);
menuMgr
.
addMenuListener
(
new
IMenuListener
()
{
@Override
public
void
menuAboutToShow
(
IMenuManager
manager
)
{
// Let controller to provide it's own menu items
GridPos
focusPos
=
getFocusPos
();
presentation
.
fillContextMenu
(
manager
,
focusPos
.
col
>=
0
&&
focusPos
.
col
<
columnElements
.
length
?
columnElements
[
focusPos
.
col
]
:
null
,
focusPos
.
row
>=
0
&&
focusPos
.
row
<
rowElements
.
length
?
rowElements
[
focusPos
.
row
]
:
null
);
}
menuMgr
.
addMenuListener
(
manager
->
{
// Let controller to provide it's own menu items
GridPos
focusPos
=
getFocusPos
();
presentation
.
fillContextMenu
(
manager
,
focusPos
.
col
>=
0
&&
focusPos
.
col
<
columnElements
.
length
?
columnElements
[
focusPos
.
col
]
:
null
,
focusPos
.
row
>=
0
&&
focusPos
.
row
<
rowElements
.
length
?
rowElements
[
focusPos
.
row
]
:
null
);
});
menuMgr
.
setRemoveAllWhenShown
(
true
);
super
.
setMenu
(
menu
);
...
...
@@ -435,12 +409,7 @@ public class Spreadsheet extends LightGrid implements Listener {
final
Accessible
accessible
=
getAccessible
();
accessible
.
addAccessibleListener
(
new
GridAccessibleListener
());
addCursorChangeListener
(
new
Listener
()
{
@Override
public
void
handleEvent
(
Event
event
)
{
accessible
.
selectionChanged
();
}
});
addCursorChangeListener
(
event
->
accessible
.
selectionChanged
());
}
private
static
class
GridAccessibleListener
implements
AccessibleListener
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/SpreadsheetCellEditor.java
浏览文件 @
e0a679b1
...
...
@@ -24,7 +24,6 @@ import org.eclipse.swt.events.SelectionEvent;
import
org.eclipse.swt.events.SelectionListener
;
import
org.eclipse.swt.graphics.Rectangle
;
import
org.eclipse.swt.widgets.Control
;
import
org.eclipse.swt.widgets.Event
;
import
org.eclipse.swt.widgets.Listener
;
import
org.jkiss.dbeaver.ui.controls.lightgrid.LightGrid
;
...
...
@@ -69,14 +68,7 @@ public class SpreadsheetCellEditor extends ControlEditor
}
};
resizeListener
=
new
Listener
()
{
@Override
public
void
handleEvent
(
Event
event
)
{
layout
();
}
};
resizeListener
=
event
->
layout
();
scrollListener
=
new
SelectionListener
()
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/spreadsheet/SpreadsheetPresentation.java
浏览文件 @
e0a679b1
...
...
@@ -131,7 +131,7 @@ public class SpreadsheetPresentation extends AbstractPresentation implements IRe
private
Color
foregroundSelected
,
backgroundSelected
;
private
Color
backgroundMatched
;
private
Color
cellHeaderForeground
,
cellHeaderBackground
,
cellHeaderSelectionBackground
;
private
Font
boldFont
,
italicFont
,
bolItalicFont
;
private
Font
boldFont
,
italicFont
;
private
boolean
showOddRows
=
true
;
private
boolean
showCelIcons
=
true
;
...
...
@@ -1289,12 +1289,7 @@ public class SpreadsheetPresentation extends AbstractPresentation implements IRe
for
(
Integer
row
:
spreadsheet
.
getRowSelection
())
{
rows
.
add
(
controller
.
getModel
().
getRow
(
row
));
}
Collections
.
sort
(
rows
,
new
Comparator
<
ResultSetRow
>()
{
@Override
public
int
compare
(
ResultSetRow
o1
,
ResultSetRow
o2
)
{
return
o1
.
getVisualNumber
()
-
o2
.
getVisualNumber
();
}
});
rows
.
sort
(
Comparator
.
comparingInt
(
ResultSetRow:
:
getVisualNumber
));
return
rows
;
}
}
...
...
@@ -1337,12 +1332,7 @@ public class SpreadsheetPresentation extends AbstractPresentation implements IRe
}
else
{
DBDAttributeBinding
[]
columns
=
model
.
getVisibleAttributes
().
toArray
(
new
DBDAttributeBinding
[
model
.
getVisibleAttributeCount
()]);
if
(
columnOrder
!=
SWT
.
NONE
&&
columnOrder
!=
SWT
.
DEFAULT
)
{
Arrays
.
sort
(
columns
,
new
Comparator
<
DBDAttributeBinding
>()
{
@Override
public
int
compare
(
DBDAttributeBinding
o1
,
DBDAttributeBinding
o2
)
{
return
o1
.
getName
().
compareTo
(
o2
.
getName
())
*
(
columnOrder
==
SWT
.
UP
?
1
:
-
1
);
}
});
Arrays
.
sort
(
columns
,
(
o1
,
o2
)
->
o1
.
getName
().
compareTo
(
o2
.
getName
())
*
(
columnOrder
==
SWT
.
UP
?
1
:
-
1
));
}
return
columns
;
}
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/qm/QMObjectType.java
浏览文件 @
e0a679b1
...
...
@@ -37,7 +37,7 @@ public enum QMObjectType {
private
final
Class
<?
extends
QMMObject
>
type
;
private
QMObjectType
(
Class
<?
extends
QMMObject
>
type
)
QMObjectType
(
Class
<?
extends
QMMObject
>
type
)
{
this
.
type
=
type
;
}
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/qm/QMUtils.java
浏览文件 @
e0a679b1
...
...
@@ -29,7 +29,6 @@ import org.jkiss.dbeaver.model.qm.meta.QMMTransactionInfo;
import
org.jkiss.dbeaver.model.qm.meta.QMMTransactionSavepointInfo
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
java.util.Collections
;
import
java.util.List
;
/**
...
...
@@ -37,7 +36,6 @@ import java.util.List;
*/
public
class
QMUtils
{
public
static
final
EmptyCursorImpl
EMPTY_CURSOR
=
new
EmptyCursorImpl
();
private
static
DBPPlatform
application
;
private
static
QMExecutionHandler
defaultHandler
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录