Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
f4a9b654
D
dbeaver
项目概览
suliangchun
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
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,发现更多精彩内容 >>
提交
f4a9b654
编写于
4月 29, 2019
作者:
S
serge-rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#4222 GIS viewer: save as image
Former-commit-id:
ff223c2f
上级
d63ac718
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
54 addition
and
12 deletion
+54
-12
plugins/org.jkiss.dbeaver.data.gis.view/src/org/jkiss/dbeaver/ui/gis/panel/GISLeafletViewer.java
.../src/org/jkiss/dbeaver/ui/gis/panel/GISLeafletViewer.java
+42
-9
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/data/PostgreGeometryValueHandler.java
...xt/postgresql/model/data/PostgreGeometryValueHandler.java
+12
-3
未找到文件。
plugins/org.jkiss.dbeaver.data.gis.view/src/org/jkiss/dbeaver/ui/gis/panel/GISLeafletViewer.java
浏览文件 @
f4a9b654
...
...
@@ -26,6 +26,8 @@ import org.eclipse.swt.dnd.ImageTransfer;
import
org.eclipse.swt.dnd.Transfer
;
import
org.eclipse.swt.graphics.GC
;
import
org.eclipse.swt.graphics.Image
;
import
org.eclipse.swt.graphics.ImageData
;
import
org.eclipse.swt.graphics.ImageLoader
;
import
org.eclipse.swt.layout.GridData
;
import
org.eclipse.swt.widgets.*
;
import
org.jkiss.code.Nullable
;
...
...
@@ -37,13 +39,11 @@ import org.jkiss.dbeaver.model.exec.DBCException;
import
org.jkiss.dbeaver.model.gis.*
;
import
org.jkiss.dbeaver.model.runtime.VoidProgressMonitor
;
import
org.jkiss.dbeaver.runtime.DBWorkbench
;
import
org.jkiss.dbeaver.ui.ActionUtils
;
import
org.jkiss.dbeaver.ui.DBeaverIcons
;
import
org.jkiss.dbeaver.ui.UIIcon
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.*
;
import
org.jkiss.dbeaver.ui.css.CSSUtils
;
import
org.jkiss.dbeaver.ui.css.DBStyles
;
import
org.jkiss.dbeaver.ui.data.IValueController
;
import
org.jkiss.dbeaver.ui.dialogs.DialogUtils
;
import
org.jkiss.dbeaver.ui.gis.GeometryDataUtils
;
import
org.jkiss.dbeaver.ui.gis.GeometryViewerConstants
;
import
org.jkiss.dbeaver.ui.gis.internal.GISViewerActivator
;
...
...
@@ -65,6 +65,8 @@ public class GISLeafletViewer {
private
static
final
String
PREF_RECENT_SRID_LIST
=
"srid.list.recent"
;
private
static
final
int
MAX_RECENT_SRID_SIZE
=
10
;
private
static
final
String
[]
SUPPORTED_FORMATS
=
new
String
[]
{
"png"
,
"gif"
,
"bmp"
};
private
final
IValueController
valueController
;
private
final
Browser
browser
;
private
DBGeometry
[]
lastValue
;
...
...
@@ -367,7 +369,32 @@ public class GISLeafletViewer {
toolBarManager
.
add
(
new
Action
(
"Save as picture"
,
DBeaverIcons
.
getImageDescriptor
(
UIIcon
.
PICTURE_SAVE
))
{
@Override
public
void
run
()
{
/*
final
Shell
shell
=
browser
.
getShell
();
FileDialog
saveDialog
=
new
FileDialog
(
shell
,
SWT
.
SAVE
);
String
[]
extensions
=
new
String
[
SUPPORTED_FORMATS
.
length
];
String
[]
filterNames
=
new
String
[
SUPPORTED_FORMATS
.
length
];
for
(
int
i
=
0
;
i
<
SUPPORTED_FORMATS
.
length
;
i
++)
{
extensions
[
i
]
=
"*."
+
SUPPORTED_FORMATS
[
i
];
filterNames
[
i
]
=
SUPPORTED_FORMATS
[
i
].
toUpperCase
();
}
saveDialog
.
setFilterExtensions
(
extensions
);
saveDialog
.
setFilterNames
(
filterNames
);
String
filePath
=
DialogUtils
.
openFileDialog
(
saveDialog
);
if
(
filePath
==
null
)
{
return
;
}
int
imageType
=
SWT
.
IMAGE_BMP
;
{
String
filePathLower
=
filePath
.
toLowerCase
();
if
(
filePathLower
.
endsWith
(
".jpg"
))
{
imageType
=
SWT
.
IMAGE_JPEG
;
}
else
if
(
filePathLower
.
endsWith
(
".png"
))
{
imageType
=
SWT
.
IMAGE_PNG
;
}
else
if
(
filePathLower
.
endsWith
(
".gif"
))
{
imageType
=
SWT
.
IMAGE_GIF
;
}
}
Image
image
=
new
Image
(
Display
.
getDefault
(),
browser
.
getBounds
());
GC
gc
=
new
GC
(
image
);
try
{
...
...
@@ -375,10 +402,16 @@ public class GISLeafletViewer {
}
finally
{
gc
.
dispose
();
}
ImageTransfer imageTransfer = ImageTransfer.getInstance();
Clipboard clipboard = new Clipboard(Display.getCurrent());
clipboard.setContents(new Object[] {image.getImageData()}, new Transfer[]{imageTransfer});
*/
ImageLoader
imageLoader
=
new
ImageLoader
();
imageLoader
.
data
=
new
ImageData
[
1
];
imageLoader
.
data
[
0
]
=
image
.
getImageData
();
File
outFile
=
new
File
(
filePath
);
try
(
OutputStream
fos
=
new
FileOutputStream
(
outFile
))
{
imageLoader
.
save
(
fos
,
imageType
);
}
catch
(
IOException
e
)
{
DBWorkbench
.
getPlatformUI
().
showError
(
"Image save error"
,
"Error saving as picture"
,
e
);
}
UIUtils
.
launchProgram
(
outFile
.
getAbsolutePath
());
}
});
...
...
plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/data/PostgreGeometryValueHandler.java
浏览文件 @
f4a9b654
...
...
@@ -45,9 +45,18 @@ public class PostgreGeometryValueHandler extends JDBCAbstractValueHandler {
@Override
protected
Object
fetchColumnValue
(
DBCSession
session
,
JDBCResultSet
resultSet
,
DBSTypedObject
type
,
int
index
)
throws
DBCException
,
SQLException
{
return
getValueFromObject
(
session
,
type
,
resultSet
.
getObject
(
index
),
false
);
try
{
Object
object
=
resultSet
.
getObject
(
index
);
return
getValueFromObject
(
session
,
type
,
object
,
false
);
}
catch
(
SQLException
e
)
{
if
(
e
.
getCause
()
instanceof
IllegalArgumentException
)
{
// Try to parse as WKB
String
wkbValue
=
resultSet
.
getString
(
index
);
return
makeGeometryFromWKB
(
session
,
wkbValue
);
}
else
{
throw
e
;
}
}
}
@Override
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录