Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
1c598b7c
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,发现更多精彩内容 >>
提交
1c598b7c
编写于
3月 13, 2018
作者:
S
serge-rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#3138 Smart combo UI fix
上级
1dba8926
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
55 addition
and
97 deletion
+55
-97
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/CSmartCombo.java
...r.core/src/org/jkiss/dbeaver/ui/controls/CSmartCombo.java
+55
-97
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/CSmartCombo.java
浏览文件 @
1c598b7c
...
...
@@ -64,7 +64,9 @@ public class CSmartCombo<ITEM_TYPE> extends Composite {
{
super
(
parent
,
style
=
checkStyle
(
style
));
this
.
labelProvider
=
labelProvider
;
this
.
setLayoutData
(
new
GridData
(
GridData
.
VERTICAL_ALIGN_CENTER
));
if
(
parent
.
getLayout
()
instanceof
GridLayout
)
{
this
.
setLayoutData
(
new
GridData
(
GridData
.
FILL_VERTICAL
));
}
GridLayout
gridLayout
=
new
GridLayout
(
3
,
false
);
gridLayout
.
marginHeight
=
0
;
...
...
@@ -73,10 +75,10 @@ public class CSmartCombo<ITEM_TYPE> extends Composite {
this
.
setLayout
(
gridLayout
);
this
.
imageLabel
=
new
Label
(
this
,
SWT
.
NONE
);
this
.
imageLabel
.
setLayoutData
(
new
GridData
(
GridData
.
HORIZONTAL_ALIGN_BEGINNING
|
GridData
.
VERTICAL_ALIGN_CENTER
));
this
.
imageLabel
.
setLayoutData
(
new
GridData
(
GridData
.
FILL_VERTICAL
|
GridData
.
HORIZONTAL_ALIGN_BEGINNING
|
GridData
.
VERTICAL_ALIGN_CENTER
));
this
.
text
=
new
Text
(
this
,
SWT
.
NONE
);
this
.
text
.
setLayoutData
(
new
GridData
(
GridData
.
FILL_
HORIZONTAL
|
GridData
.
VERTICAL_ALIGN_CENTER
));
this
.
text
.
setLayoutData
(
new
GridData
(
GridData
.
FILL_
BOTH
|
GridData
.
VERTICAL_ALIGN_CENTER
));
this
.
setCursor
(
getDisplay
().
getSystemCursor
(
SWT
.
CURSOR_ARROW
));
...
...
@@ -85,14 +87,11 @@ public class CSmartCombo<ITEM_TYPE> extends Composite {
arrowStyle
|=
SWT
.
FLAT
;
}
this
.
arrow
=
new
Button
(
this
,
arrowStyle
);
this
.
arrow
.
setLayoutData
(
new
GridData
(
GridData
.
HORIZONTAL_ALIGN_END
|
GridData
.
VERTICAL_ALIGN_CENTER
));
this
.
arrow
.
setLayoutData
(
new
GridData
(
GridData
.
FILL_VERTICAL
|
GridData
.
HORIZONTAL_ALIGN_END
|
GridData
.
VERTICAL_ALIGN_CENTER
));
setEnabled
(
true
,
true
);
this
.
listener
=
new
Listener
()
{
@Override
public
void
handleEvent
(
Event
event
)
{
this
.
listener
=
event
->
{
if
(
isDisposed
())
{
return
;
}
...
...
@@ -119,17 +118,12 @@ public class CSmartCombo<ITEM_TYPE> extends Composite {
if
(
getShell
()
==
event
.
widget
)
{
handleFocus
(
SWT
.
FocusOut
);
}
}
};
this
.
filter
=
new
Listener
()
{
@Override
public
void
handleEvent
(
Event
event
)
{
this
.
filter
=
event
->
{
Shell
shell
=
((
Control
)
event
.
widget
).
getShell
();
if
(
shell
==
CSmartCombo
.
this
.
getShell
())
{
handleFocus
(
SWT
.
FocusOut
);
}
}
};
int
[]
comboEvents
=
{
SWT
.
Dispose
,
SWT
.
Move
,
SWT
.
Resize
};
...
...
@@ -148,14 +142,11 @@ public class CSmartCombo<ITEM_TYPE> extends Composite {
}
// Update default bg color in async mode to let Eclipse set appropriate styles
DBeaverUI
.
asyncExec
(
new
Runnable
()
{
@Override
public
void
run
()
{
DBeaverUI
.
asyncExec
(()
->
{
if
(
isDisposed
())
{
return
;
}
text
.
setEditable
(
false
);
}
});
}
...
...
@@ -220,46 +211,23 @@ public class CSmartCombo<ITEM_TYPE> extends Composite {
public
void
addModifyListener
(
final
ModifyListener
listener
)
{
checkWidget
();
addListener
(
SWT
.
Modify
,
new
Listener
()
{
@Override
public
void
handleEvent
(
Event
event
)
{
listener
.
modifyText
(
new
ModifyEvent
(
event
));
}
});
addListener
(
SWT
.
Modify
,
event
->
listener
.
modifyText
(
new
ModifyEvent
(
event
)));
}
public
void
addSelectionListener
(
final
SelectionListener
listener
)
{
checkWidget
();
addListener
(
SWT
.
Selection
,
new
Listener
()
{
@Override
public
void
handleEvent
(
Event
event
)
{
listener
.
widgetSelected
(
new
SelectionEvent
(
event
));
}
});
addListener
(
SWT
.
DefaultSelection
,
new
Listener
()
{
@Override
public
void
handleEvent
(
Event
event
)
{
listener
.
widgetDefaultSelected
(
new
SelectionEvent
(
event
));
}
});
addListener
(
SWT
.
Selection
,
event
->
listener
.
widgetSelected
(
new
SelectionEvent
(
event
)));
addListener
(
SWT
.
DefaultSelection
,
event
->
listener
.
widgetDefaultSelected
(
new
SelectionEvent
(
event
)));
}
public
void
addVerifyListener
(
final
VerifyListener
listener
)
{
checkWidget
();
addListener
(
SWT
.
Verify
,
new
Listener
()
{
@Override
public
void
handleEvent
(
Event
event
)
{
listener
.
verifyText
(
new
VerifyEvent
(
event
));
}
});
addListener
(
SWT
.
Verify
,
event
->
listener
.
verifyText
(
new
VerifyEvent
(
event
)));
}
static
int
checkStyle
(
int
style
)
private
static
int
checkStyle
(
int
style
)
{
int
mask
=
SWT
.
BORDER
|
SWT
.
READ_ONLY
|
SWT
.
FLAT
|
SWT
.
LEFT_TO_RIGHT
|
SWT
.
RIGHT_TO_LEFT
;
return
style
&
mask
;
...
...
@@ -426,7 +394,7 @@ public class CSmartCombo<ITEM_TYPE> extends Composite {
this
.
visibleItemCount
=
count
;
}
void
handleFocus
(
int
type
)
private
void
handleFocus
(
int
type
)
{
if
(
isDisposed
())
{
return
;
...
...
@@ -467,7 +435,7 @@ public class CSmartCombo<ITEM_TYPE> extends Composite {
}
}
void
createPopup
()
private
void
createPopup
()
{
Shell
oldPopup
=
this
.
popup
;
if
(
oldPopup
!=
null
)
{
...
...
@@ -560,7 +528,7 @@ public class CSmartCombo<ITEM_TYPE> extends Composite {
}
}
boolean
isDropped
()
private
boolean
isDropped
()
{
return
this
.
popup
!=
null
&&
this
.
popup
.
getVisible
();
}
...
...
@@ -576,12 +544,7 @@ public class CSmartCombo<ITEM_TYPE> extends Composite {
this
.
popup
=
null
;
this
.
dropDownControl
=
null
;
disposeTime
=
System
.
currentTimeMillis
();
DBeaverUI
.
asyncExec
(
new
Runnable
()
{
@Override
public
void
run
()
{
toDispose
.
dispose
();
}
});
DBeaverUI
.
asyncExec
(
toDispose:
:
dispose
);
}
return
;
}
...
...
@@ -642,19 +605,14 @@ public class CSmartCombo<ITEM_TYPE> extends Composite {
this
.
popup
.
layout
();
if
(
this
.
popup
.
getData
(
"resizeListener"
)
==
null
)
{
this
.
popup
.
addListener
(
SWT
.
Resize
,
new
Listener
()
{
@Override
public
void
handleEvent
(
Event
event
)
{
CSmartCombo
.
this
.
sizeHint
=
popup
.
getSize
();
}
});
this
.
popup
.
addListener
(
SWT
.
Resize
,
event
->
CSmartCombo
.
this
.
sizeHint
=
popup
.
getSize
());
this
.
popup
.
setData
(
"resizeListener"
,
Boolean
.
TRUE
);
}
this
.
popup
.
setVisible
(
true
);
this
.
dropDownControl
.
setFocus
();
}
void
listEvent
(
Event
event
)
private
void
listEvent
(
Event
event
)
{
switch
(
event
.
type
)
{
case
SWT
.
Dispose
:
...
...
@@ -761,7 +719,7 @@ public class CSmartCombo<ITEM_TYPE> extends Composite {
}
}
void
arrowEvent
(
Event
event
)
private
void
arrowEvent
(
Event
event
)
{
switch
(
event
.
type
)
{
case
SWT
.
FocusIn
:
{
...
...
@@ -777,7 +735,7 @@ public class CSmartCombo<ITEM_TYPE> extends Composite {
}
}
void
comboEvent
(
Event
event
)
private
void
comboEvent
(
Event
event
)
{
switch
(
event
.
type
)
{
case
SWT
.
Dispose
:
...
...
@@ -803,7 +761,7 @@ public class CSmartCombo<ITEM_TYPE> extends Composite {
}
}
void
popupEvent
(
Event
event
)
private
void
popupEvent
(
Event
event
)
{
switch
(
event
.
type
)
{
case
SWT
.
Paint
:
...
...
@@ -823,7 +781,7 @@ public class CSmartCombo<ITEM_TYPE> extends Composite {
}
}
void
textEvent
(
Event
event
)
private
void
textEvent
(
Event
event
)
{
switch
(
event
.
type
)
{
case
SWT
.
FocusIn
:
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录