Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
dc7a71f0
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,发现更多精彩内容 >>
提交
dc7a71f0
编写于
6月 30, 2017
作者:
S
Serge Rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#1825 File editor tab context menu actions
上级
34c44ecc
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
96 addition
and
8 deletion
+96
-8
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreCommands.java
...dbeaver.core/src/org/jkiss/dbeaver/core/CoreCommands.java
+2
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/e4/DBeaverStackRenderer.java
...ore/src/org/jkiss/dbeaver/ui/e4/DBeaverStackRenderer.java
+79
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/RenameHandler.java
.../jkiss/dbeaver/ui/editors/sql/handlers/RenameHandler.java
+15
-8
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/core/CoreCommands.java
浏览文件 @
dc7a71f0
...
@@ -70,4 +70,6 @@ public interface CoreCommands
...
@@ -70,4 +70,6 @@ public interface CoreCommands
String
CMD_LINK_EDITOR
=
"org.jkiss.dbeaver.core.navigator.linkeditor"
;
String
CMD_LINK_EDITOR
=
"org.jkiss.dbeaver.core.navigator.linkeditor"
;
String
CMD_SYNC_CONNECTION
=
"org.jkiss.dbeaver.ui.editors.sql.sync.connection"
;
String
CMD_SYNC_CONNECTION
=
"org.jkiss.dbeaver.ui.editors.sql.sync.connection"
;
String
CMD_SQL_RENAME
=
"org.jkiss.dbeaver.ui.editors.sql.rename"
;
}
}
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/e4/DBeaverStackRenderer.java
浏览文件 @
dc7a71f0
package
org.jkiss.dbeaver.ui.e4
;
package
org.jkiss.dbeaver.ui.e4
;
import
org.eclipse.core.resources.IFile
;
import
org.eclipse.e4.ui.model.application.ui.basic.MPart
;
import
org.eclipse.e4.ui.model.application.ui.basic.MPart
;
import
org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer
;
import
org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer
;
import
org.eclipse.swt.SWT
;
import
org.eclipse.swt.SWT
;
import
org.eclipse.swt.dnd.TextTransfer
;
import
org.eclipse.swt.events.SelectionAdapter
;
import
org.eclipse.swt.events.SelectionEvent
;
import
org.eclipse.swt.widgets.Display
;
import
org.eclipse.swt.widgets.Menu
;
import
org.eclipse.swt.widgets.Menu
;
import
org.eclipse.swt.widgets.MenuItem
;
import
org.eclipse.swt.widgets.MenuItem
;
import
org.eclipse.ui.IEditorPart
;
import
org.eclipse.ui.IWorkbenchPart
;
import
org.eclipse.ui.internal.e4.compatibility.CompatibilityPart
;
import
org.jkiss.dbeaver.core.CoreCommands
;
import
org.jkiss.dbeaver.ui.ActionUtils
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.editors.EditorUtils
;
import
org.jkiss.dbeaver.ui.editors.sql.SQLEditor
;
import
org.jkiss.dbeaver.ui.editors.sql.handlers.RenameHandler
;
import
java.io.File
;
public
class
DBeaverStackRenderer
extends
StackRenderer
{
public
class
DBeaverStackRenderer
extends
StackRenderer
{
...
@@ -12,7 +28,70 @@ public class DBeaverStackRenderer extends StackRenderer {
...
@@ -12,7 +28,70 @@ public class DBeaverStackRenderer extends StackRenderer {
protected
void
populateTabMenu
(
Menu
menu
,
MPart
part
)
{
protected
void
populateTabMenu
(
Menu
menu
,
MPart
part
)
{
super
.
populateTabMenu
(
menu
,
part
);
super
.
populateTabMenu
(
menu
,
part
);
IWorkbenchPart
workbenchPart
=
getWorkbenchPart
(
part
);
if
(
workbenchPart
instanceof
IEditorPart
)
{
IFile
inputFile
=
EditorUtils
.
getFileFromInput
(((
IEditorPart
)
workbenchPart
).
getEditorInput
());
if
(
inputFile
!=
null
)
{
File
localFile
=
inputFile
.
getLocation
().
toFile
();
if
(
localFile
!=
null
)
{
populateFileMenu
(
menu
,
workbenchPart
,
inputFile
,
localFile
);
}
}
}
}
private
void
populateFileMenu
(
final
Menu
menu
,
final
IWorkbenchPart
workbenchPart
,
final
IFile
inputFile
,
final
File
file
)
{
new
MenuItem
(
menu
,
SWT
.
SEPARATOR
);
new
MenuItem
(
menu
,
SWT
.
SEPARATOR
);
{
MenuItem
menuItemOpenFolder
=
new
MenuItem
(
menu
,
SWT
.
NONE
);
menuItemOpenFolder
.
setText
(
"Open file folder in explorer"
);
menuItemOpenFolder
.
addSelectionListener
(
new
SelectionAdapter
()
{
@Override
public
void
widgetSelected
(
SelectionEvent
e
)
{
if
(
file
.
getParentFile
().
isDirectory
())
{
UIUtils
.
launchProgram
(
file
.
getParentFile
().
getAbsolutePath
());
}
}
});
}
{
MenuItem
menuItemOthers
=
new
MenuItem
(
menu
,
SWT
.
NONE
);
menuItemOthers
.
setText
(
"Copy file path to clipboard"
);
menuItemOthers
.
addSelectionListener
(
new
SelectionAdapter
()
{
@Override
public
void
widgetSelected
(
SelectionEvent
e
)
{
String
filePath
=
file
.
getAbsolutePath
();
UIUtils
.
setClipboardContents
(
Display
.
getCurrent
(),
TextTransfer
.
getInstance
(),
filePath
);
}
});
}
{
MenuItem
menuItemOthers
=
new
MenuItem
(
menu
,
SWT
.
NONE
);
String
renameText
=
"Rename file"
;
if
(
workbenchPart
instanceof
SQLEditor
)
{
renameText
+=
"\t"
+
ActionUtils
.
findCommandDescription
(
CoreCommands
.
CMD_SQL_RENAME
,
workbenchPart
.
getSite
(),
true
);
}
menuItemOthers
.
setText
(
renameText
);
menuItemOthers
.
addSelectionListener
(
new
SelectionAdapter
()
{
@Override
public
void
widgetSelected
(
SelectionEvent
e
)
{
RenameHandler
.
renameFile
(
workbenchPart
,
inputFile
,
"file"
);
}
});
}
}
private
IWorkbenchPart
getWorkbenchPart
(
MPart
part
)
{
if
(
part
!=
null
)
{
Object
clientObject
=
part
.
getObject
();
if
(
clientObject
instanceof
CompatibilityPart
)
{
return
((
CompatibilityPart
)
clientObject
).
getPart
();
}
}
return
null
;
}
}
}
}
\ No newline at end of file
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/RenameHandler.java
浏览文件 @
dc7a71f0
...
@@ -23,33 +23,40 @@ import org.eclipse.core.resources.IFile;
...
@@ -23,33 +23,40 @@ import org.eclipse.core.resources.IFile;
import
org.eclipse.core.runtime.CoreException
;
import
org.eclipse.core.runtime.CoreException
;
import
org.eclipse.core.runtime.NullProgressMonitor
;
import
org.eclipse.core.runtime.NullProgressMonitor
;
import
org.eclipse.swt.widgets.Shell
;
import
org.eclipse.swt.widgets.Shell
;
import
org.eclipse.ui.IEditorPart
;
import
org.eclipse.ui.IWorkbenchPart
;
import
org.eclipse.ui.handlers.HandlerUtil
;
import
org.eclipse.ui.handlers.HandlerUtil
;
import
org.jkiss.dbeaver.runtime.ui.DBUserInterface
;
import
org.jkiss.dbeaver.runtime.ui.DBUserInterface
;
import
org.jkiss.dbeaver.ui.actions.AbstractDataSourceHandler
;
import
org.jkiss.dbeaver.ui.actions.AbstractDataSourceHandler
;
import
org.jkiss.dbeaver.ui.dialogs.EnterNameDialog
;
import
org.jkiss.dbeaver.ui.dialogs.EnterNameDialog
;
import
org.jkiss.dbeaver.ui.editors.EditorUtils
;
import
org.jkiss.dbeaver.ui.editors.EditorUtils
;
import
org.jkiss.dbeaver.ui.editors.sql.SQLEditor
;
import
org.jkiss.dbeaver.utils.RuntimeUtils
;
import
org.jkiss.dbeaver.utils.RuntimeUtils
;
public
class
RenameHandler
extends
AbstractDataSourceHandler
{
public
class
RenameHandler
extends
AbstractDataSourceHandler
{
@Override
@Override
public
Object
execute
(
ExecutionEvent
event
)
throws
ExecutionException
{
public
Object
execute
(
ExecutionEvent
event
)
throws
ExecutionException
{
SQLEditor
editor
=
RuntimeUtils
.
getObjectAdapter
(
HandlerUtil
.
getActivePart
(
event
),
SQLEditor
.
class
);
IEditorPart
editor
=
RuntimeUtils
.
getObjectAdapter
(
HandlerUtil
.
getActivePart
(
event
),
IEditorPart
.
class
);
if
(
editor
==
null
)
{
if
(
editor
==
null
)
{
log
.
error
(
"No active SQL editor"
);
log
.
error
(
"No active SQL editor"
);
return
null
;
return
null
;
}
}
Shell
shell
=
HandlerUtil
.
getActiveShell
(
event
);
IFile
file
=
EditorUtils
.
getFileFromInput
(
editor
.
getEditorInput
());
IFile
file
=
EditorUtils
.
getFileFromInput
(
editor
.
getEditorInput
());
if
(
file
==
null
)
{
if
(
file
==
null
)
{
DBUserInterface
.
getInstance
().
showError
(
"Rename"
,
"Can't rename - no source file"
);
DBUserInterface
.
getInstance
().
showError
(
"Rename"
,
"Can't rename - no source file"
);
return
null
;
return
null
;
}
}
String
newName
=
EnterNameDialog
.
chooseName
(
shell
,
"Rename SQL script ["
+
file
.
getName
()
+
"]"
,
file
.
getName
());
renameFile
(
editor
,
file
,
"SQL script"
);
//file.set
return
null
;
}
public
static
void
renameFile
(
IWorkbenchPart
editor
,
IFile
file
,
String
fileTitle
)
{
Shell
shell
=
editor
.
getSite
().
getShell
();
String
newName
=
EnterNameDialog
.
chooseName
(
shell
,
"Rename "
+
fileTitle
+
" ["
+
file
.
getName
()
+
"]"
,
file
.
getName
());
if
(
newName
==
null
)
{
if
(
newName
==
null
)
{
return
null
;
return
;
}
}
if
(
newName
.
indexOf
(
'.'
)
==
-
1
)
{
if
(
newName
.
indexOf
(
'.'
)
==
-
1
)
{
int
divPos
=
file
.
getName
().
lastIndexOf
(
'.'
);
int
divPos
=
file
.
getName
().
lastIndexOf
(
'.'
);
...
@@ -60,15 +67,15 @@ public class RenameHandler extends AbstractDataSourceHandler {
...
@@ -60,15 +67,15 @@ public class RenameHandler extends AbstractDataSourceHandler {
if
(!
newName
.
equals
(
file
.
getName
()))
{
if
(!
newName
.
equals
(
file
.
getName
()))
{
NullProgressMonitor
monitor
=
new
NullProgressMonitor
();
NullProgressMonitor
monitor
=
new
NullProgressMonitor
();
editor
.
doSave
(
monitor
);
if
(
editor
instanceof
IEditorPart
)
{
((
IEditorPart
)
editor
).
doSave
(
monitor
);
}
try
{
try
{
file
.
move
(
file
.
getParent
().
getFullPath
().
append
(
newName
),
true
,
monitor
);
file
.
move
(
file
.
getParent
().
getFullPath
().
append
(
newName
),
true
,
monitor
);
}
catch
(
CoreException
e
)
{
}
catch
(
CoreException
e
)
{
DBUserInterface
.
getInstance
().
showError
(
"Rename"
,
"Error renaming file '"
+
file
.
getName
()
+
"'"
,
e
);
DBUserInterface
.
getInstance
().
showError
(
"Rename"
,
"Error renaming file '"
+
file
.
getName
()
+
"'"
,
e
);
}
}
}
}
//file.set
return
null
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录