Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
fc599284
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,发现更多精彩内容 >>
提交
fc599284
编写于
5月 20, 2016
作者:
S
serge-rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Opening editor files thru RMI
Former-commit-id:
7ccb43b2
上级
32c1989b
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
56 addition
and
31 deletion
+56
-31
plugins/org.jkiss.dbeaver.core.application/src/org/jkiss/dbeaver/core/application/ApplicationWorkbenchWindowAdvisor.java
...r/core/application/ApplicationWorkbenchWindowAdvisor.java
+5
-22
plugins/org.jkiss.dbeaver.core.application/src/org/jkiss/dbeaver/core/application/DBeaverApplication.java
...rg/jkiss/dbeaver/core/application/DBeaverApplication.java
+11
-5
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverCore.java
....dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverCore.java
+8
-1
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverInstanceServer.java
...ore/src/org/jkiss/dbeaver/core/DBeaverInstanceServer.java
+32
-3
未找到文件。
plugins/org.jkiss.dbeaver.core.application/src/org/jkiss/dbeaver/core/application/ApplicationWorkbenchWindowAdvisor.java
浏览文件 @
fc599284
...
...
@@ -107,28 +107,11 @@ public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor im
log.warn(e);
}
*/
List
<
String
>
filesToOpen
=
new
ArrayList
<>();
String
[]
cliParameters
=
Platform
.
getCommandLineArgs
();
boolean
prevParam
=
false
,
prevFile
=
false
;
for
(
String
param
:
cliParameters
)
{
if
(!
param
.
startsWith
(
"-"
)
&&
(!
prevParam
||
prevFile
))
{
filesToOpen
.
add
(
param
);
}
prevParam
=
param
.
startsWith
(
"-"
);
prevFile
=
param
.
equals
(
"-file"
);
}
for
(
String
filePath
:
filesToOpen
)
{
File
file
=
new
File
(
filePath
);
if
(
file
.
exists
())
{
try
{
IEditorDescriptor
desc
=
window
.
getWorkbench
().
getEditorRegistry
().
getDefaultEditor
(
file
.
getName
());
IFileStore
fileStore
=
EFS
.
getStore
(
file
.
toURI
());
IEditorInput
input
=
new
FileStoreEditorInput
(
fileStore
);
IDE
.
openEditor
(
window
.
getActivePage
(),
input
,
desc
.
getId
());
}
catch
(
CoreException
e
)
{
log
.
error
(
"Can't open editor from file '"
+
file
.
getAbsolutePath
(),
e
);
}
}
try
{
DBeaverApplication
.
executeCommandLineCommands
(
DBeaverApplication
.
getCommandLine
(),
DBeaverCore
.
getInstance
().
getInstanceServer
());
}
catch
(
Exception
e
)
{
log
.
error
(
"Error processing command line"
,
e
);
}
}
...
...
plugins/org.jkiss.dbeaver.core.application/src/org/jkiss/dbeaver/core/application/DBeaverApplication.java
浏览文件 @
fc599284
...
...
@@ -17,7 +17,10 @@
*/
package
org.jkiss.dbeaver.core.application
;
import
org.apache.commons.cli.*
;
import
org.apache.commons.cli.CommandLine
;
import
org.apache.commons.cli.DefaultParser
;
import
org.apache.commons.cli.HelpFormatter
;
import
org.apache.commons.cli.Option
;
import
org.eclipse.core.runtime.Platform
;
import
org.eclipse.equinox.app.IApplication
;
import
org.eclipse.equinox.app.IApplicationContext
;
...
...
@@ -30,9 +33,9 @@ import org.eclipse.ui.IWorkbench;
import
org.eclipse.ui.IWorkbenchPreferenceConstants
;
import
org.eclipse.ui.PlatformUI
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.IInstanceController
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.IInstanceController
;
import
org.jkiss.utils.ArrayUtils
;
import
java.io.File
;
...
...
@@ -154,14 +157,17 @@ public class DBeaverApplication implements IApplication
return
false
;
}
return
callRemoteServer
(
commandLine
,
controller
);
}
catch
(
Throwable
e
)
{
return
executeCommandLineCommands
(
commandLine
,
controller
);
}
catch
(
RemoteException
e
)
{
log
.
error
(
"Error calling remote server"
,
e
);
return
true
;
}
catch
(
Throwable
e
)
{
log
.
error
(
"Internal error while calling remote server"
,
e
);
return
false
;
}
}
p
rivate
boolean
callRemoteServer
(
CommandLine
commandLine
,
IInstanceController
controller
)
throws
Remote
Exception
{
p
ublic
static
boolean
executeCommandLineCommands
(
CommandLine
commandLine
,
IInstanceController
controller
)
throws
Exception
{
String
[]
files
=
commandLine
.
getOptionValues
(
DBeaverCommandLine
.
PARAM_FILE
);
String
[]
fileArgs
=
commandLine
.
getArgs
();
if
(!
ArrayUtils
.
isEmpty
(
files
)
||
!
ArrayUtils
.
isEmpty
(
fileArgs
))
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverCore.java
浏览文件 @
fc599284
...
...
@@ -27,6 +27,7 @@ import org.eclipse.core.runtime.NullProgressMonitor;
import
org.eclipse.core.runtime.Platform
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.dbeaver.DBException
;
import
org.jkiss.dbeaver.IInstanceController
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.model.*
;
import
org.jkiss.dbeaver.model.data.DBDRegistry
;
...
...
@@ -90,6 +91,7 @@ public class DBeaverCore implements DBPApplication {
private
final
List
<
IPluginService
>
activatedServices
=
new
ArrayList
<>();
private
static
boolean
disposed
=
false
;
private
IInstanceController
instanceServer
;
public
static
DBeaverCore
getInstance
()
{
...
...
@@ -185,7 +187,7 @@ public class DBeaverCore implements DBPApplication {
if
(
standalone
)
{
// Start instance server
DBeaverInstanceServer
.
startInstanceServer
();
instanceServer
=
DBeaverInstanceServer
.
startInstanceServer
();
}
QMUtils
.
initApplication
(
this
);
...
...
@@ -288,6 +290,7 @@ public class DBeaverCore implements DBPApplication {
}
DBeaverInstanceServer
.
stopInstanceServer
();
instanceServer
=
null
;
}
// Remove temp folder
...
...
@@ -317,6 +320,10 @@ public class DBeaverCore implements DBPApplication {
return
getProjectRegistry
();
}
public
IInstanceController
getInstanceServer
()
{
return
instanceServer
;
}
/**
* Returns configuration file
*/
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/DBeaverInstanceServer.java
浏览文件 @
fc599284
...
...
@@ -18,8 +18,17 @@
package
org.jkiss.dbeaver.core
;
import
org.eclipse.core.filesystem.EFS
;
import
org.eclipse.core.filesystem.IFileStore
;
import
org.eclipse.core.runtime.CoreException
;
import
org.eclipse.ui.IEditorDescriptor
;
import
org.eclipse.ui.IEditorInput
;
import
org.eclipse.ui.IWorkbenchWindow
;
import
org.eclipse.ui.ide.FileStoreEditorInput
;
import
org.eclipse.ui.ide.IDE
;
import
org.jkiss.dbeaver.Log
;
import
org.jkiss.dbeaver.IInstanceController
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.utils.GeneralUtils
;
import
org.jkiss.utils.IOUtils
;
...
...
@@ -47,8 +56,26 @@ public class DBeaverInstanceServer implements IInstanceController {
}
@Override
public
void
openExternalFiles
(
String
[]
fileNames
)
{
public
void
openExternalFiles
(
final
String
[]
fileNames
)
{
final
IWorkbenchWindow
window
=
DBeaverUI
.
getActiveWorkbenchWindow
();
UIUtils
.
runInUI
(
window
.
getShell
(),
new
Runnable
()
{
@Override
public
void
run
()
{
for
(
String
filePath
:
fileNames
)
{
File
file
=
new
File
(
filePath
);
if
(
file
.
exists
())
{
try
{
IEditorDescriptor
desc
=
window
.
getWorkbench
().
getEditorRegistry
().
getDefaultEditor
(
file
.
getName
());
IFileStore
fileStore
=
EFS
.
getStore
(
file
.
toURI
());
IEditorInput
input
=
new
FileStoreEditorInput
(
fileStore
);
IDE
.
openEditor
(
window
.
getActivePage
(),
input
,
desc
.
getId
());
}
catch
(
CoreException
e
)
{
log
.
error
(
"Can't open editor from file '"
+
file
.
getAbsolutePath
(),
e
);
}
}
}
}
});
}
@Override
...
...
@@ -62,7 +89,7 @@ public class DBeaverInstanceServer implements IInstanceController {
System
.
exit
(-
1
);
}
public
static
void
startInstanceServer
()
{
public
static
IInstanceController
startInstanceServer
()
{
DBeaverInstanceServer
server
=
new
DBeaverInstanceServer
();
try
{
...
...
@@ -80,8 +107,10 @@ public class DBeaverInstanceServer implements IInstanceController {
try
(
OutputStream
os
=
new
FileOutputStream
(
rmiFile
))
{
props
.
store
(
os
,
"DBeaver instance server properties"
);
}
return
server
;
}
catch
(
Exception
e
)
{
log
.
error
(
"Can't start RMI server"
,
e
);
return
null
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录