Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
a54e140c
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,发现更多精彩内容 >>
提交
a54e140c
编写于
6月 23, 2018
作者:
S
serge-rider
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ERD: direct notes editor
Former-commit-id:
6f5c0142
上级
e8347f12
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
312 addition
and
233 deletion
+312
-233
plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/command/NoteSetTextCommand.java
...org/jkiss/dbeaver/ext/erd/command/NoteSetTextCommand.java
+8
-9
plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/directedit/ExtendedDirectEditManager.java
...dbeaver/ext/erd/directedit/ExtendedDirectEditManager.java
+150
-157
plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/directedit/FigureEditorLocator.java
...jkiss/dbeaver/ext/erd/directedit/FigureEditorLocator.java
+65
-0
plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/figures/NoteFigure.java
...erd/src/org/jkiss/dbeaver/ext/erd/figures/NoteFigure.java
+8
-0
plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/model/ERDNote.java
....ext.erd/src/org/jkiss/dbeaver/ext/erd/model/ERDNote.java
+9
-5
plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/part/NotePart.java
....ext.erd/src/org/jkiss/dbeaver/ext/erd/part/NotePart.java
+39
-13
plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/policy/NoteDirectEditPolicy.java
...rg/jkiss/dbeaver/ext/erd/policy/NoteDirectEditPolicy.java
+33
-49
未找到文件。
plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/command/NoteSetTextCommand.java
浏览文件 @
a54e140c
...
...
@@ -18,36 +18,35 @@ package org.jkiss.dbeaver.ext.erd.command;
import
org.eclipse.gef.commands.Command
;
import
org.jkiss.dbeaver.ext.erd.figures.NoteFigure
;
import
org.jkiss.dbeaver.ext.erd.
model.ERDNote
;
import
org.jkiss.dbeaver.ext.erd.
part.NotePart
;
/**
* Change note text
*/
public
class
NoteSetTextCommand
extends
Command
{
private
ERDNote
note
;
private
NoteFigure
figure
;
private
NotePart
note
;
private
String
newText
;
private
String
oldText
;
public
NoteSetTextCommand
(
ERDNote
note
,
NoteFigure
figur
e
,
String
newText
)
{
public
NoteSetTextCommand
(
NotePart
not
e
,
String
newText
)
{
super
(
"Set note text"
);
this
.
note
=
note
;
this
.
figure
=
figure
;
this
.
oldText
=
this
.
note
.
getName
();
this
.
newText
=
newText
;
}
@Override
public
void
execute
()
{
note
.
setObject
(
newText
);
figure
.
setText
(
newText
);
note
.
getNote
().
setObject
(
newText
);
((
NoteFigure
)
note
.
getFigure
())
.
setText
(
newText
);
}
@Override
public
void
undo
()
{
note
.
setObject
(
oldText
);
figure
.
setText
(
oldText
);
note
.
getNote
().
setObject
(
oldText
);
((
NoteFigure
)
note
.
getFigure
())
.
setText
(
oldText
);
}
}
\ No newline at end of file
plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/directedit/ExtendedDirectEditManager.java
浏览文件 @
a54e140c
...
...
@@ -36,167 +36,160 @@ import org.eclipse.swt.graphics.FontData;
import
org.eclipse.swt.graphics.GC
;
import
org.eclipse.swt.graphics.Point
;
import
org.eclipse.swt.widgets.Text
;
import
org.jkiss.dbeaver.ext.erd.figures.NoteFigure
;
/**
* A generic DirectEdit manager to be used for labels which includes validation
* functionality by adding the ICellEditorValidator on startup
*/
public
class
ExtendedDirectEditManager
extends
DirectEditManager
{
Font
figureFont
;
protected
VerifyListener
verifyListener
;
protected
Label
label
;
protected
String
originalValue
;
private
boolean
committing
=
false
;
private
ICellEditorValidator
validator
=
null
;
/**
* Creates a new ActivityDirectEditManager with the given attributes.
*
* @param source
* the source EditPart
* @param editorType
* type of editor
* @param locator
* the CellEditorLocator
*/
public
ExtendedDirectEditManager
(
GraphicalEditPart
source
,
Class
editorType
,
CellEditorLocator
locator
,
Label
label
,
ICellEditorValidator
validator
)
{
super
(
source
,
editorType
,
locator
);
this
.
label
=
label
;
this
.
originalValue
=
label
.
getText
();
this
.
validator
=
validator
;
}
/**
* @see org.eclipse.gef.tools.DirectEditManager#bringDown()
*/
@Override
protected
void
bringDown
()
{
Font
disposeFont
=
figureFont
;
figureFont
=
null
;
super
.
bringDown
();
if
(
disposeFont
!=
null
)
disposeFont
.
dispose
();
}
/**
* @see org.eclipse.gef.tools.DirectEditManager#initCellEditor()
*/
@Override
protected
void
initCellEditor
()
{
Text
text
=
(
Text
)
getCellEditor
().
getControl
();
//add the verifyListener to apply changes to the control size
verifyListener
=
new
VerifyListener
()
{
/**
* Changes the size of the editor control to reflect the changed
* text
*/
@Override
public
void
verifyText
(
VerifyEvent
event
)
{
Text
text
=
(
Text
)
getCellEditor
().
getControl
();
String
oldText
=
text
.
getText
();
String
leftText
=
oldText
.
substring
(
0
,
event
.
start
);
String
rightText
=
oldText
.
substring
(
event
.
end
,
oldText
.
length
());
GC
gc
=
new
GC
(
text
);
if
(
leftText
==
null
)
leftText
=
""
;
if
(
rightText
==
null
)
rightText
=
""
;
String
s
=
leftText
+
event
.
text
+
rightText
;
Point
size
=
gc
.
textExtent
(
leftText
+
event
.
text
+
rightText
);
gc
.
dispose
();
if
(
size
.
x
!=
0
)
size
=
text
.
computeSize
(
size
.
x
,
SWT
.
DEFAULT
);
else
{
//just make it square
size
.
x
=
size
.
y
;
}
getCellEditor
().
getControl
().
setSize
(
size
.
x
,
size
.
y
);
}
};
text
.
addVerifyListener
(
verifyListener
);
//set the initial value of the
originalValue
=
this
.
label
.
getText
();
getCellEditor
().
setValue
(
originalValue
);
//calculate the font size of the underlying
IFigure
figure
=
getEditPart
().
getFigure
();
figureFont
=
figure
.
getFont
();
FontData
data
=
figureFont
.
getFontData
()[
0
];
Dimension
fontSize
=
new
Dimension
(
0
,
data
.
getHeight
());
//set the font to be used
this
.
label
.
translateToAbsolute
(
fontSize
);
data
.
setHeight
(
fontSize
.
height
);
figureFont
=
new
Font
(
null
,
data
);
//set the validator for the CellEditor
getCellEditor
().
setValidator
(
validator
);
text
.
setFont
(
figureFont
);
text
.
selectAll
();
}
/**
* Commits the current value of the cell editor by getting a {@link Command}
* from the source edit part and executing it via the {@link CommandStack}.
* Finally, {@link #bringDown()}is called to perform and necessary cleanup.
*/
@Override
protected
void
commit
()
{
if
(
committing
)
return
;
committing
=
true
;
try
{
//we set the cell editor control to invisible to remove any
// possible flicker
getCellEditor
().
getControl
().
setVisible
(
false
);
if
(
isDirty
())
{
CommandStack
stack
=
getEditPart
().
getViewer
().
getEditDomain
().
getCommandStack
();
Command
command
=
getEditPart
().
getCommand
(
getDirectEditRequest
());
if
(
command
!=
null
&&
command
.
canExecute
())
stack
.
execute
(
command
);
}
}
finally
{
bringDown
();
committing
=
false
;
}
}
/**
* Need to override so as to remove the verify listener
*/
@Override
protected
void
unhookListeners
()
{
super
.
unhookListeners
();
Text
text
=
(
Text
)
getCellEditor
().
getControl
();
text
.
removeVerifyListener
(
verifyListener
);
verifyListener
=
null
;
}
public
class
ExtendedDirectEditManager
extends
DirectEditManager
{
protected
Font
figureFont
;
protected
VerifyListener
verifyListener
;
protected
IFigure
figure
;
protected
String
originalValue
;
private
boolean
committing
=
false
;
private
ICellEditorValidator
validator
=
null
;
/**
* Creates a new ActivityDirectEditManager with the given attributes.
*
* @param source the source EditPart
* @param editorType type of editor
* @param locator the CellEditorLocator
*/
public
ExtendedDirectEditManager
(
GraphicalEditPart
source
,
Class
editorType
,
CellEditorLocator
locator
,
IFigure
figure
,
ICellEditorValidator
validator
)
{
super
(
source
,
editorType
,
locator
);
this
.
figure
=
figure
;
this
.
originalValue
=
getFigureText
(
figure
);
this
.
validator
=
validator
;
}
private
static
String
getFigureText
(
IFigure
figure
)
{
if
(
figure
instanceof
Label
)
{
return
((
Label
)
figure
).
getText
();
}
else
if
(
figure
instanceof
NoteFigure
)
{
return
((
NoteFigure
)
figure
).
getText
();
}
else
{
return
"???"
;
}
}
/**
* @see org.eclipse.gef.tools.DirectEditManager#bringDown()
*/
@Override
protected
void
bringDown
()
{
Font
disposeFont
=
figureFont
;
figureFont
=
null
;
super
.
bringDown
();
if
(
disposeFont
!=
null
)
disposeFont
.
dispose
();
}
/**
* @see org.eclipse.gef.tools.DirectEditManager#initCellEditor()
*/
@Override
protected
void
initCellEditor
()
{
Text
text
=
(
Text
)
getCellEditor
().
getControl
();
//add the verifyListener to apply changes to the control size
verifyListener
=
new
VerifyListener
()
{
/**
* Changes the size of the editor control to reflect the changed
* text
*/
@Override
public
void
verifyText
(
VerifyEvent
event
)
{
Text
text
=
(
Text
)
getCellEditor
().
getControl
();
String
oldText
=
text
.
getText
();
String
leftText
=
oldText
.
substring
(
0
,
event
.
start
);
String
rightText
=
oldText
.
substring
(
event
.
end
,
oldText
.
length
());
GC
gc
=
new
GC
(
text
);
String
s
=
leftText
+
event
.
text
+
rightText
;
Point
size
=
gc
.
textExtent
(
leftText
+
event
.
text
+
rightText
);
gc
.
dispose
();
if
(
size
.
x
!=
0
)
size
=
text
.
computeSize
(
size
.
x
,
SWT
.
DEFAULT
);
else
{
//just make it square
size
.
x
=
size
.
y
;
}
getCellEditor
().
getControl
().
setSize
(
size
.
x
,
size
.
y
);
}
};
text
.
addVerifyListener
(
verifyListener
);
//set the initial value of the
originalValue
=
getFigureText
(
this
.
figure
);
getCellEditor
().
setValue
(
originalValue
);
//calculate the font size of the underlying
IFigure
figure
=
getEditPart
().
getFigure
();
figureFont
=
figure
.
getFont
();
FontData
data
=
figureFont
.
getFontData
()[
0
];
Dimension
fontSize
=
new
Dimension
(
0
,
data
.
getHeight
());
//set the font to be used
this
.
figure
.
translateToAbsolute
(
fontSize
);
data
.
setHeight
(
fontSize
.
height
);
figureFont
=
new
Font
(
null
,
data
);
//set the validator for the CellEditor
getCellEditor
().
setValidator
(
validator
);
text
.
setFont
(
figureFont
);
text
.
selectAll
();
}
/**
* Commits the current value of the cell editor by getting a {@link Command}
* from the source edit part and executing it via the {@link CommandStack}.
* Finally, {@link #bringDown()}is called to perform and necessary cleanup.
*/
@Override
protected
void
commit
()
{
if
(
committing
)
return
;
committing
=
true
;
try
{
//we set the cell editor control to invisible to remove any
// possible flicker
getCellEditor
().
getControl
().
setVisible
(
false
);
if
(
isDirty
())
{
CommandStack
stack
=
getEditPart
().
getViewer
().
getEditDomain
().
getCommandStack
();
Command
command
=
getEditPart
().
getCommand
(
getDirectEditRequest
());
if
(
command
!=
null
&&
command
.
canExecute
())
stack
.
execute
(
command
);
}
}
finally
{
bringDown
();
committing
=
false
;
}
}
/**
* Need to override so as to remove the verify listener
*/
@Override
protected
void
unhookListeners
()
{
super
.
unhookListeners
();
Text
text
=
(
Text
)
getCellEditor
().
getControl
();
text
.
removeVerifyListener
(
verifyListener
);
verifyListener
=
null
;
}
}
\ No newline at end of file
plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/directedit/FigureEditorLocator.java
0 → 100644
浏览文件 @
a54e140c
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2018 Serge Rider (serge@jkiss.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* Created on Jul 13, 2004
*/
package
org.jkiss.dbeaver.ext.erd.directedit
;
import
org.eclipse.draw2d.IFigure
;
import
org.eclipse.draw2d.geometry.Rectangle
;
import
org.eclipse.draw2d.text.TextFlow
;
import
org.eclipse.gef.tools.CellEditorLocator
;
import
org.eclipse.jface.viewers.CellEditor
;
import
org.eclipse.swt.SWT
;
import
org.eclipse.swt.graphics.Point
;
import
org.eclipse.swt.widgets.Text
;
/**
* A CellEditorLocator for a specified text flow
*
* @author Serge Rider
*/
public
class
FigureEditorLocator
implements
CellEditorLocator
{
private
IFigure
figure
;
public
FigureEditorLocator
(
IFigure
label
)
{
this
.
figure
=
label
;
}
/**
* expands the size of the control by 1 pixel in each direction
*/
@Override
public
void
relocate
(
CellEditor
celleditor
)
{
Text
text
=
(
Text
)
celleditor
.
getControl
();
Point
pref
=
text
.
computeSize
(
SWT
.
DEFAULT
,
SWT
.
DEFAULT
);
Rectangle
rect
=
figure
.
getBounds
().
getCopy
();
figure
.
translateToAbsolute
(
rect
);
if
(
text
.
getCharCount
()
>
1
)
text
.
setBounds
(
rect
.
x
-
1
,
rect
.
y
-
1
,
pref
.
x
+
1
,
pref
.
y
+
1
);
else
text
.
setBounds
(
rect
.
x
-
1
,
rect
.
y
-
1
,
pref
.
y
+
1
,
pref
.
y
+
1
);
}
protected
IFigure
getFigure
()
{
return
figure
;
}
}
\ No newline at end of file
plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/figures/NoteFigure.java
浏览文件 @
a54e140c
...
...
@@ -54,6 +54,14 @@ public class NoteFigure extends FlowPage {
));
}
public
TextFlow
getTextFlow
()
{
return
textFlow
;
}
public
String
getText
()
{
return
textFlow
.
getText
();
}
public
void
setText
(
String
text
)
{
textFlow
.
setText
(
text
);
...
...
plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/model/ERDNote.java
浏览文件 @
a54e140c
...
...
@@ -17,21 +17,25 @@
package
org.jkiss.dbeaver.ext.erd.model
;
import
org.jkiss.code.NotNull
;
import
org.jkiss.utils.CommonUtils
;
/**
* Simple text note
*/
public
class
ERDNote
extends
ERDObject
<
String
>
{
public
ERDNote
(
String
text
)
{
super
(
text
);
public
ERDNote
(
String
text
)
{
super
(
CommonUtils
.
notEmpty
(
text
));
}
@NotNull
@Override
public
String
getName
()
{
public
String
getName
()
{
return
getObject
();
}
@Override
public
void
setObject
(
String
object
)
{
super
.
setObject
(
CommonUtils
.
notEmpty
(
object
));
}
}
plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/part/NotePart.java
浏览文件 @
a54e140c
...
...
@@ -19,7 +19,6 @@ package org.jkiss.dbeaver.ext.erd.part;
import
org.eclipse.draw2d.ChopboxAnchor
;
import
org.eclipse.draw2d.ConnectionAnchor
;
import
org.eclipse.draw2d.IFigure
;
import
org.eclipse.draw2d.geometry.Dimension
;
import
org.eclipse.draw2d.geometry.Point
;
import
org.eclipse.draw2d.geometry.Rectangle
;
...
...
@@ -27,15 +26,18 @@ import org.eclipse.gef.ConnectionEditPart;
import
org.eclipse.gef.EditPolicy
;
import
org.eclipse.gef.Request
;
import
org.eclipse.gef.RequestConstants
;
import
org.jkiss.dbeaver.ext.erd.ERDMessages
;
import
org.jkiss.dbeaver.ext.erd.command.EntityAddCommand
;
import
org.jkiss.dbeaver.ext.erd.command.NoteSetTextCommand
;
import
org.eclipse.gef.requests.DirectEditRequest
;
import
org.eclipse.gef.tools.DirectEditManager
;
import
org.eclipse.jface.viewers.TextCellEditor
;
import
org.jkiss.dbeaver.ext.erd.directedit.ExtendedDirectEditManager
;
import
org.jkiss.dbeaver.ext.erd.directedit.FigureEditorLocator
;
import
org.jkiss.dbeaver.ext.erd.directedit.ValidationMessageHandler
;
import
org.jkiss.dbeaver.ext.erd.editor.ERDGraphicalViewer
;
import
org.jkiss.dbeaver.ext.erd.figures.NoteFigure
;
import
org.jkiss.dbeaver.ext.erd.model.ERDNote
;
import
org.jkiss.dbeaver.ext.erd.model.EntityDiagram
;
import
org.jkiss.dbeaver.ext.erd.policy.NoteEditPolicy
;
import
org.jkiss.dbeaver.ext.erd.policy.Note
Direct
EditPolicy
;
import
org.jkiss.dbeaver.model.DBPNamedObject
;
import
org.jkiss.dbeaver.ui.dialogs.EditTextDialog
;
import
java.beans.PropertyChangeEvent
;
...
...
@@ -46,6 +48,8 @@ import java.beans.PropertyChangeEvent;
*/
public
class
NotePart
extends
NodePart
{
private
DirectEditManager
manager
;
public
NotePart
()
{
}
...
...
@@ -65,8 +69,8 @@ public class NotePart extends NodePart
//installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new EntityNodeEditPolicy());
//installEditPolicy(EditPolicy.LAYOUT_ROLE, new EntityLayoutEditPolicy());
//installEditPolicy(EditPolicy.CONTAINER_ROLE, new EntityContainerEditPolicy());
installEditPolicy
(
EditPolicy
.
COMPONENT_ROLE
,
new
NoteEditPolicy
());
//
installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new NoteDirectEditPolicy());
//
installEditPolicy(EditPolicy.COMPONENT_ROLE, new NoteEditPolicy());
installEditPolicy
(
EditPolicy
.
DIRECT_EDIT_ROLE
,
new
NoteDirectEditPolicy
());
//installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new ResizableEditPolicy());
}
...
...
@@ -76,23 +80,45 @@ public class NotePart extends NodePart
public
void
performRequest
(
Request
request
)
{
if
(
request
.
getType
()
==
RequestConstants
.
REQ_OPEN
)
{
performDirectEdit
();
/*
final String newText = EditTextDialog.editText(getViewer().getControl().getShell(), ERDMessages.part_note_title, getNote().getObject());
if (newText != null) {
NoteSetTextCommand command = new NoteSetTextCommand(getNote(), (NoteFigure) getFigure(), newText);
getViewer().getEditDomain().getCommandStack().execute(command);
}
*/
}
else
if
(
request
.
getType
()
==
RequestConstants
.
REQ_DIRECT_EDIT
)
{
if
(
request
instanceof
DirectEditRequest
&&
!
directEditHitTest
(((
DirectEditRequest
)
request
).
getLocation
().
getCopy
()))
return
;
performDirectEdit
();
}
}
//******************* Miscellaneous stuff *********************/
private
boolean
directEditHitTest
(
Point
requestLoc
)
{
NoteFigure
figure
=
(
NoteFigure
)
getFigure
();
figure
.
translateToRelative
(
requestLoc
);
return
figure
.
containsPoint
(
requestLoc
);
}
protected
void
performDirectEdit
()
{
if
(
manager
==
null
)
{
ERDGraphicalViewer
viewer
=
(
ERDGraphicalViewer
)
getViewer
();
ValidationMessageHandler
handler
=
viewer
.
getValidationHandler
();
NoteFigure
figure
=
(
NoteFigure
)
getFigure
();
manager
=
new
ExtendedDirectEditManager
(
this
,
TextCellEditor
.
class
,
new
FigureEditorLocator
(
figure
),
figure
,
value
->
null
);
}
manager
.
show
();
}
public
String
toString
()
{
return
getNote
().
getObject
();
}
//******************* Listener related methods *********************/
public
void
handleNameChange
(
String
value
)
{
NoteFigure
noteFigure
=
(
NoteFigure
)
getFigure
();
...
...
@@ -102,7 +128,7 @@ public class NotePart extends NodePart
/**
* Reverts to existing name in model when exiting from a direct edit
* (possibly before a commit which will result in a change in the
label
* (possibly before a commit which will result in a change in the
figure
* value)
*/
public
void
revertNameChange
()
...
...
@@ -131,7 +157,7 @@ public class NotePart extends NodePart
* Creates a figure which represents the table
*/
@Override
protected
I
Figure
createFigure
()
protected
Note
Figure
createFigure
()
{
final
NoteFigure
noteFigure
=
new
NoteFigure
(
getNote
());
EntityDiagram
.
NodeVisualInfo
visualInfo
=
((
DiagramPart
)
getParent
()).
getDiagram
().
getVisualInfo
(
getNote
(),
true
);
...
...
plugins/org.jkiss.dbeaver.ext.erd/src/org/jkiss/dbeaver/ext/erd/policy/NoteDirectEditPolicy.java
浏览文件 @
a54e140c
...
...
@@ -23,65 +23,49 @@ import org.eclipse.gef.commands.Command;
import
org.eclipse.gef.editpolicies.DirectEditPolicy
;
import
org.eclipse.gef.requests.DirectEditRequest
;
import
org.eclipse.jface.viewers.CellEditor
;
import
org.jkiss.dbeaver.ext.erd.command.NoteSetTextCommand
;
import
org.jkiss.dbeaver.ext.erd.part.NotePart
;
/**
* EditPolicy for the direct editing of table names
*
*
* @author Serge Rider
*/
public
class
NoteDirectEditPolicy
extends
DirectEditPolicy
{
public
class
NoteDirectEditPolicy
extends
DirectEditPolicy
{
private
String
oldValue
;
private
String
oldValue
;
/**
* @see org.eclipse.gef.editpolicies.DirectEditPolicy#getDirectEditCommand(org.eclipse.gef.requests.DirectEditRequest)
*/
@Override
protected
Command
getDirectEditCommand
(
DirectEditRequest
request
)
{
/*
EntityRenameCommand cmd = new EntityRenameCommand();
ERDEntity table = (ERDEntity) getHost().getModel();
cmd.setTable(table);
cmd.setOldName(table.getName());
CellEditor cellEditor = request.getCellEditor();
cmd.setName((String) cellEditor.getValue());
return cmd;
*/
return
null
;
}
@Override
protected
Command
getDirectEditCommand
(
DirectEditRequest
request
)
{
CellEditor
cellEditor
=
request
.
getCellEditor
();
String
newNote
=
(
String
)
cellEditor
.
getValue
();
return
new
NoteSetTextCommand
((
NotePart
)
getHost
(),
newNote
);
}
@Override
protected
void
showCurrentEditValue
(
DirectEditRequest
request
)
{
String
value
=
(
String
)
request
.
getCellEditor
().
getValue
();
NotePart
notePart
=
(
NotePart
)
getHost
();
notePart
.
handleNameChange
(
value
);
}
/**
* @see org.eclipse.gef.editpolicies.DirectEditPolicy#showCurrentEditValue(org.eclipse.gef.requests.DirectEditRequest)
*/
@Override
protected
void
showCurrentEditValue
(
DirectEditRequest
request
)
{
String
value
=
(
String
)
request
.
getCellEditor
().
getValue
();
NotePart
notePart
=
(
NotePart
)
getHost
();
notePart
.
handleNameChange
(
value
);
}
@Override
protected
void
storeOldEditValue
(
DirectEditRequest
request
)
{
@Override
protected
void
storeOldEditValue
(
DirectEditRequest
request
)
{
CellEditor
cellEditor
=
request
.
getCellEditor
();
oldValue
=
(
String
)
cellEditor
.
getValue
();
}
CellEditor
cellEditor
=
request
.
getCellEditor
();
oldValue
=
(
String
)
cellEditor
.
getValue
();
}
/**
* @param request
*/
@Override
protected
void
revertOldEditValue
(
DirectEditRequest
request
)
{
CellEditor
cellEditor
=
request
.
getCellEditor
();
cellEditor
.
setValue
(
oldValue
);
NotePart
entityPart
=
(
NotePart
)
getHost
();
entityPart
.
revertNameChange
();
}
/**
* @param request
*/
@Override
protected
void
revertOldEditValue
(
DirectEditRequest
request
)
{
CellEditor
cellEditor
=
request
.
getCellEditor
();
cellEditor
.
setValue
(
oldValue
);
NotePart
entityPart
=
(
NotePart
)
getHost
();
entityPart
.
revertNameChange
();
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录