Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
9b5905f1
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,发现更多精彩内容 >>
提交
9b5905f1
编写于
9月 22, 2016
作者:
S
serge-rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#758 SQL script rename handler
上级
6245b722
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
117 addition
and
0 deletion
+117
-0
plugins/org.jkiss.dbeaver.core/plugin.xml
plugins/org.jkiss.dbeaver.core/plugin.xml
+7
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/RenameHandler.java
.../jkiss/dbeaver/ui/editors/sql/handlers/RenameHandler.java
+110
-0
未找到文件。
plugins/org.jkiss.dbeaver.core/plugin.xml
浏览文件 @
9b5905f1
...
...
@@ -855,6 +855,13 @@
</with>
</enabledWhen>
</handler>
<handler
commandId=
"org.eclipse.ui.edit.rename"
class=
"org.jkiss.dbeaver.ui.editors.sql.handlers.RenameHandler"
>
<enabledWhen>
<with
variable=
"activePart"
>
<instanceof
value=
"org.jkiss.dbeaver.ui.editors.sql.SQLEditor"
/>
</with>
</enabledWhen>
</handler>
<!-- SQL editor handlers -->
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/handlers/RenameHandler.java
0 → 100644
浏览文件 @
9b5905f1
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2016 Serge Rieder (serge@jkiss.org)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License (version 2)
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package
org.jkiss.dbeaver.ui.editors.sql.handlers
;
import
org.eclipse.core.commands.ExecutionEvent
;
import
org.eclipse.core.commands.ExecutionException
;
import
org.eclipse.core.resources.IFile
;
import
org.eclipse.core.resources.IFolder
;
import
org.eclipse.core.resources.IProject
;
import
org.eclipse.core.runtime.CoreException
;
import
org.eclipse.core.runtime.NullProgressMonitor
;
import
org.eclipse.jface.viewers.ISelection
;
import
org.eclipse.jface.viewers.IStructuredSelection
;
import
org.eclipse.swt.widgets.Shell
;
import
org.eclipse.ui.IEditorInput
;
import
org.eclipse.ui.IWorkbenchPart
;
import
org.eclipse.ui.IWorkbenchWindow
;
import
org.eclipse.ui.PartInitException
;
import
org.eclipse.ui.handlers.HandlerUtil
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.core.CoreCommands
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.model.DBPContextProvider
;
import
org.jkiss.dbeaver.model.DBPDataSourceContainer
;
import
org.jkiss.dbeaver.model.DBUtils
;
import
org.jkiss.dbeaver.model.IDataSourceContainerProvider
;
import
org.jkiss.dbeaver.model.exec.DBCExecutionContext
;
import
org.jkiss.dbeaver.model.navigator.DBNDataSource
;
import
org.jkiss.dbeaver.model.navigator.DBNLocalFolder
;
import
org.jkiss.dbeaver.model.navigator.DBNResource
;
import
org.jkiss.dbeaver.model.runtime.VoidProgressMonitor
;
import
org.jkiss.dbeaver.model.struct.DBSObject
;
import
org.jkiss.dbeaver.registry.DataSourceRegistry
;
import
org.jkiss.dbeaver.registry.ProjectRegistry
;
import
org.jkiss.dbeaver.ui.UIUtils
;
import
org.jkiss.dbeaver.ui.actions.AbstractDataSourceHandler
;
import
org.jkiss.dbeaver.ui.actions.navigator.NavigatorHandlerObjectOpen
;
import
org.jkiss.dbeaver.ui.controls.ScriptSelectorPanel
;
import
org.jkiss.dbeaver.ui.dialogs.EnterNameDialog
;
import
org.jkiss.dbeaver.ui.dialogs.connection.SelectDataSourceDialog
;
import
org.jkiss.dbeaver.ui.editors.EditorUtils
;
import
org.jkiss.dbeaver.ui.editors.StringEditorInput
;
import
org.jkiss.dbeaver.ui.editors.sql.SQLEditor
;
import
org.jkiss.dbeaver.ui.resources.ResourceUtils
;
import
org.jkiss.dbeaver.utils.ContentUtils
;
import
org.jkiss.dbeaver.utils.RuntimeUtils
;
import
org.jkiss.utils.CommonUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
RenameHandler
extends
AbstractDataSourceHandler
{
@Override
public
Object
execute
(
ExecutionEvent
event
)
throws
ExecutionException
{
SQLEditor
editor
=
RuntimeUtils
.
getObjectAdapter
(
HandlerUtil
.
getActivePart
(
event
),
SQLEditor
.
class
);
if
(
editor
==
null
)
{
log
.
error
(
"No active SQL editor"
);
return
null
;
}
Shell
shell
=
HandlerUtil
.
getActiveShell
(
event
);
IFile
file
=
EditorUtils
.
getFileFromInput
(
editor
.
getEditorInput
());
if
(
file
==
null
)
{
UIUtils
.
showErrorDialog
(
shell
,
"Rename"
,
"Can't rename - no source file"
);
return
null
;
}
String
newName
=
EnterNameDialog
.
chooseName
(
shell
,
"Rename SQL script ["
+
file
.
getName
()
+
"]"
,
file
.
getName
());
if
(
newName
==
null
)
{
return
null
;
}
if
(
newName
.
indexOf
(
'.'
)
==
-
1
)
{
int
divPos
=
file
.
getName
().
lastIndexOf
(
'.'
);
if
(
divPos
!=
-
1
)
{
newName
+=
file
.
getName
().
substring
(
divPos
);
}
}
if
(!
newName
.
equals
(
file
.
getName
()))
{
NullProgressMonitor
monitor
=
new
NullProgressMonitor
();
editor
.
doSave
(
monitor
);
try
{
file
.
move
(
file
.
getParent
().
getFullPath
().
append
(
newName
),
true
,
monitor
);
}
catch
(
CoreException
e
)
{
UIUtils
.
showErrorDialog
(
shell
,
"Rename"
,
"Error renaming file '"
+
file
.
getName
()
+
"'"
,
e
);
}
}
//file.set
return
null
;
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录