Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
8e4756a1
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,发现更多精彩内容 >>
提交
8e4756a1
编写于
3月 06, 2015
作者:
J
jurgen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Folder pages activation. Single control editor model
上级
19107b33
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
106 addition
and
47 deletion
+106
-47
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ext/ISingleControlEditor.java
....core/src/org/jkiss/dbeaver/ext/ISingleControlEditor.java
+38
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/content/ContentEditorPart.java
...g/jkiss/dbeaver/ui/editors/content/ContentEditorPart.java
+2
-3
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/content/parts/ContentBinaryEditorPart.java
...ver/ui/editors/content/parts/ContentBinaryEditorPart.java
+2
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/content/parts/ContentImageEditorPart.java
...aver/ui/editors/content/parts/ContentImageEditorPart.java
+2
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/content/parts/ContentTextEditorPart.java
...eaver/ui/editors/content/parts/ContentTextEditorPart.java
+0
-6
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/content/parts/ContentXMLEditorPart.java
...beaver/ui/editors/content/parts/ContentXMLEditorPart.java
+0
-6
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/entity/properties/FolderPageEditor.java
...beaver/ui/editors/entity/properties/FolderPageEditor.java
+32
-25
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/entity/properties/FolderPageNode.java
.../dbeaver/ui/editors/entity/properties/FolderPageNode.java
+1
-0
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorNested.java
...src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorNested.java
+19
-6
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/text/BaseTextEditor.java
...src/org/jkiss/dbeaver/ui/editors/text/BaseTextEditor.java
+10
-1
未找到文件。
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ext/ISingleControlEditor.java
0 → 100644
浏览文件 @
8e4756a1
/*
* Copyright (C) 2010-2015 Serge Rieder
* serge@jkiss.org
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package
org.jkiss.dbeaver.ext
;
import
org.eclipse.swt.widgets.Control
;
import
org.eclipse.ui.IEditorPart
;
import
org.jkiss.code.NotNull
;
/**
* Editor with single main control.
* Usually used by editors represented by text of table/tree control.
*/
public
interface
ISingleControlEditor
extends
IEditorPart
{
/**
* Gets main editor control
* @return control
*/
@NotNull
Control
getEditorControl
();
}
\ No newline at end of file
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/content/ContentEditorPart.java
浏览文件 @
8e4756a1
...
...
@@ -24,20 +24,19 @@ import org.eclipse.swt.widgets.Control;
import
org.eclipse.ui.IEditorActionBarContributor
;
import
org.eclipse.ui.IEditorPart
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.ext.ISingleControlEditor
;
import
javax.activation.MimeType
;
/**
* Database content editor
*/
public
interface
ContentEditorPart
extends
IEditorPart
{
public
interface
ContentEditorPart
extends
IEditorPart
,
ISingleControlEditor
{
void
initPart
(
IEditorPart
contentEditor
,
@Nullable
MimeType
mimeType
);
IEditorActionBarContributor
getActionBarContributor
();
Control
getEditorControl
();
String
getContentTypeTitle
();
Image
getContentTypeImage
();
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/content/parts/ContentBinaryEditorPart.java
浏览文件 @
8e4756a1
...
...
@@ -22,6 +22,7 @@ import org.eclipse.swt.graphics.Image;
import
org.eclipse.swt.widgets.Control
;
import
org.eclipse.ui.IEditorActionBarContributor
;
import
org.eclipse.ui.IEditorPart
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.dbeaver.ui.DBIcon
;
import
org.jkiss.dbeaver.ui.editors.binary.BinaryEditor
;
import
org.jkiss.dbeaver.ui.editors.content.ContentEditorPart
;
...
...
@@ -48,6 +49,7 @@ public class ContentBinaryEditorPart extends BinaryEditor implements ContentEdit
return
null
;
}
@NotNull
@Override
public
Control
getEditorControl
()
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/content/parts/ContentImageEditorPart.java
浏览文件 @
8e4756a1
...
...
@@ -18,6 +18,7 @@
*/
package
org.jkiss.dbeaver.ui.editors.content.parts
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.dbeaver.core.Log
;
import
org.eclipse.core.resources.IResourceChangeEvent
;
import
org.eclipse.core.resources.IResourceChangeListener
;
...
...
@@ -132,6 +133,7 @@ public class ContentImageEditorPart extends EditorPart implements ContentEditorP
return
null
;
}
@NotNull
@Override
public
Control
getEditorControl
()
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/content/parts/ContentTextEditorPart.java
浏览文件 @
8e4756a1
...
...
@@ -55,12 +55,6 @@ public class ContentTextEditorPart extends BaseTextEditor implements ContentEdit
return
null
;
}
@Override
public
Control
getEditorControl
()
{
return
getTextViewer
().
getTextWidget
();
}
@Override
public
String
getContentTypeTitle
()
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/content/parts/ContentXMLEditorPart.java
浏览文件 @
8e4756a1
...
...
@@ -56,12 +56,6 @@ public class ContentXMLEditorPart extends XMLEditor implements ContentEditorPart
return
null
;
}
@Override
public
Control
getEditorControl
()
{
return
getTextViewer
().
getTextWidget
();
}
@Override
public
String
getContentTypeTitle
()
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/entity/properties/FolderPageEditor.java
浏览文件 @
8e4756a1
...
...
@@ -23,17 +23,17 @@ import org.eclipse.core.runtime.IProgressMonitor;
import
org.eclipse.jface.viewers.ISelectionProvider
;
import
org.eclipse.swt.events.DisposeEvent
;
import
org.eclipse.swt.events.DisposeListener
;
import
org.eclipse.swt.events.FocusEvent
;
import
org.eclipse.swt.events.FocusListener
;
import
org.eclipse.swt.widgets.Composite
;
import
org.eclipse.swt.widgets.Control
;
import
org.eclipse.ui.*
;
import
org.eclipse.ui.internal.services.INestable
;
import
org.eclipse.ui.part.MultiPageEditorPart
;
import
org.eclipse.ui.part.MultiPageEditorSite
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.dbeaver.core.Log
;
import
org.jkiss.dbeaver.ext.IDatabaseEditor
;
import
org.jkiss.dbeaver.ext.IDatabaseEditorContributorManager
;
import
org.jkiss.dbeaver.ext.IDatabaseEditorContributorUser
;
import
org.jkiss.dbeaver.ext.IPropertyChangeReflector
;
import
org.jkiss.dbeaver.ext.*
;
import
org.jkiss.dbeaver.ext.ui.IActiveWorkbenchPart
;
import
org.jkiss.dbeaver.ext.ui.IRefreshablePart
;
import
org.jkiss.dbeaver.registry.editor.EntityEditorDescriptor
;
...
...
@@ -94,6 +94,33 @@ public class FolderPageEditor extends FolderPage implements IDatabaseEditorContr
UIUtils
.
showErrorDialog
(
parent
.
getShell
(),
"Create SQL viewer"
,
null
,
e
);
}
editor
.
createPartControl
(
parent
);
if
(
editor
instanceof
ISingleControlEditor
)
{
// Use focus to active selection provider and contributed actions
Control
editorControl
=
((
ISingleControlEditor
)
editor
).
getEditorControl
();
editorControl
.
addFocusListener
(
new
FocusListener
()
{
@Override
public
void
focusGained
(
FocusEvent
e
)
{
ISelectionProvider
selectionProvider
=
editor
.
getSite
().
getSelectionProvider
();
mainEditor
.
getSite
().
setSelectionProvider
(
selectionProvider
);
selectionProvider
.
setSelection
(
selectionProvider
.
getSelection
());
if
(
actionContributor
!=
null
)
{
actionContributor
.
setActiveEditor
(
editor
);
}
activateNestedSite
(
true
);
}
@Override
public
void
focusLost
(
FocusEvent
e
)
{
activateNestedSite
(
false
);
if
(
actionContributor
!=
null
)
{
actionContributor
.
setActiveEditor
(
null
);
}
}
});
}
parent
.
addDisposeListener
(
new
DisposeListener
()
{
@Override
public
void
widgetDisposed
(
DisposeEvent
e
)
{
...
...
@@ -119,19 +146,6 @@ public class FolderPageEditor extends FolderPage implements IDatabaseEditorContr
if
(
editor
instanceof
IActiveWorkbenchPart
)
{
((
IActiveWorkbenchPart
)
editor
).
activatePart
();
}
//sqlViewer.enableUndoManager(true);
ISelectionProvider
selectionProvider
=
editor
.
getSite
().
getSelectionProvider
();
mainEditor
.
getSite
().
setSelectionProvider
(
selectionProvider
);
selectionProvider
.
setSelection
(
selectionProvider
.
getSelection
());
//selectionProvider.setSelection(new StructuredSelection());
if
(
actionContributor
!=
null
)
{
actionContributor
.
setActiveEditor
(
editor
);
}
activateSectionSite
(
true
);
//sqlViewer.handleActivate();
}
@Override
...
...
@@ -139,17 +153,10 @@ public class FolderPageEditor extends FolderPage implements IDatabaseEditorContr
if
(
editor
instanceof
IActiveWorkbenchPart
)
{
((
IActiveWorkbenchPart
)
editor
).
deactivatePart
();
}
activateSectionSite
(
false
);
if
(
actionContributor
!=
null
)
{
actionContributor
.
setActiveEditor
(
null
);
}
// if (sqlViewer != null) {
// //sqlViewer.enableUndoManager(false);
// }
}
@SuppressWarnings
(
"deprecation"
)
private
void
activate
Section
Site
(
boolean
activate
)
{
private
void
activate
Nested
Site
(
boolean
activate
)
{
if
(
nestedEditorSite
instanceof
INestable
)
{
if
(
activate
)
{
((
INestable
)
nestedEditorSite
).
activate
();
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/entity/properties/FolderPageNode.java
浏览文件 @
8e4756a1
...
...
@@ -89,6 +89,7 @@ class FolderPageNode extends FolderPage implements ISearchContextProvider, IRefr
parent
.
layout
();
// Activate items control on focus
itemControl
.
getItemsViewer
().
getControl
().
addFocusListener
(
new
FocusListener
()
{
@Override
public
void
focusGained
(
FocusEvent
e
)
{
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/sql/SQLEditorNested.java
浏览文件 @
8e4756a1
...
...
@@ -29,6 +29,8 @@ import org.eclipse.jface.text.IDocument;
import
org.eclipse.jface.text.IRegion
;
import
org.eclipse.swt.SWT
;
import
org.eclipse.swt.custom.SashForm
;
import
org.eclipse.swt.events.FocusEvent
;
import
org.eclipse.swt.events.FocusListener
;
import
org.eclipse.swt.widgets.Composite
;
import
org.eclipse.swt.widgets.Control
;
import
org.eclipse.ui.IEditorInput
;
...
...
@@ -142,6 +144,23 @@ public abstract class SQLEditorNested<T extends DBSObject>
editorSash
.
setWeights
(
new
int
[]{
70
,
30
});
editorSash
.
setMaximizedControl
(
editorControl
);
}
// Use focus to activate page control
getEditorControl
().
addFocusListener
(
new
FocusListener
()
{
@Override
public
void
focusGained
(
FocusEvent
e
)
{
if
(
pageControl
!=
null
&&
!
pageControl
.
isDisposed
())
{
pageControl
.
activate
(
true
);
}
}
@Override
public
void
focusLost
(
FocusEvent
e
)
{
if
(
pageControl
!=
null
&&
!
pageControl
.
isDisposed
())
{
pageControl
.
activate
(
false
);
}
}
});
}
@Override
...
...
@@ -171,16 +190,10 @@ public abstract class SQLEditorNested<T extends DBSObject>
log
.
error
(
e
);
}
}
if
(
pageControl
!=
null
&&
!
pageControl
.
isDisposed
())
{
pageControl
.
activate
(
true
);
}
}
@Override
public
void
deactivatePart
()
{
if
(
pageControl
!=
null
&&
!
pageControl
.
isDisposed
())
{
pageControl
.
activate
(
false
);
}
}
@Override
...
...
plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/editors/text/BaseTextEditor.java
浏览文件 @
8e4756a1
...
...
@@ -37,16 +37,19 @@ import org.eclipse.jface.text.source.ISourceViewer;
import
org.eclipse.jface.text.source.IVerticalRuler
;
import
org.eclipse.jface.util.PropertyChangeEvent
;
import
org.eclipse.swt.widgets.Composite
;
import
org.eclipse.swt.widgets.Control
;
import
org.eclipse.ui.IEditorInput
;
import
org.eclipse.ui.texteditor.AbstractTextEditor
;
import
org.eclipse.ui.texteditor.IDocumentProvider
;
import
org.eclipse.ui.texteditor.ITextEditorActionConstants
;
import
org.eclipse.ui.texteditor.StatusTextEditor
;
import
org.eclipse.ui.texteditor.rulers.*
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.code.Nullable
;
import
org.jkiss.dbeaver.core.DBeaverCore
;
import
org.jkiss.dbeaver.core.DBeaverUI
;
import
org.jkiss.dbeaver.ext.ICommentsSupport
;
import
org.jkiss.dbeaver.ext.ISingleControlEditor
;
import
org.jkiss.dbeaver.model.impl.resources.ScriptsHandlerImpl
;
import
org.jkiss.dbeaver.model.runtime.DBRProgressMonitor
;
import
org.jkiss.dbeaver.model.runtime.DBRRunnableWithProgress
;
...
...
@@ -66,7 +69,7 @@ import java.util.Map;
* Abstract text editor.
* Contains some common dbeaver text editor adaptions.
*/
public
abstract
class
BaseTextEditor
extends
StatusTextEditor
{
public
abstract
class
BaseTextEditor
extends
StatusTextEditor
implements
ISingleControlEditor
{
private
final
static
String
LINE_NUMBER_RULER
=
"lineNumberRule"
;
...
...
@@ -105,6 +108,12 @@ public abstract class BaseTextEditor extends StatusTextEditor {
return
provider
==
null
?
null
:
(
Document
)
provider
.
getDocument
(
getEditorInput
());
}
@NotNull
@Override
public
Control
getEditorControl
()
{
return
getTextViewer
().
getTextWidget
();
}
@Override
public
void
createPartControl
(
Composite
parent
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录