Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kityminder-core
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
吴志俊
kityminder-core
Commits
09a3fa39
Commit
09a3fa39
authored
Aug 08, 2014
by
campaign
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
改进节点删除为空时的处理机制
parent
1d1e499c
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
55 additions
and
59 deletions
+55
-59
editor.js
src/module/editor.js
+2
-12
editor.receiver.js
src/module/editor.receiver.js
+27
-40
text.js
src/module/text.js
+26
-7
No files found.
src/module/editor.js
View file @
09a3fa39
...
...
@@ -20,6 +20,7 @@ KityMinder.registerModule('TextEditModule', function() {
function
inputStatusReady
(
node
){
if
(
node
&&
km
.
isSingleSelect
()
&&
node
.
isSelected
())
{
var
color
=
node
.
getStyle
(
'text-selection-color'
);
//准备输入状态
...
...
@@ -47,8 +48,6 @@ KityMinder.registerModule('TextEditModule', function() {
}
receiver
.
minderNode
.
setTmpData
(
'_lastTextContent'
,
receiver
.
textShape
.
getContent
());
km
.
setStatus
(
'inputready'
);
}
...
...
@@ -73,16 +72,6 @@ KityMinder.registerModule('TextEditModule', function() {
}
if
(
receiver
.
minderNode
){
var
textShape
=
receiver
.
minderNode
.
getTextShape
();
if
(
textShape
&&
textShape
.
getOpacity
()
===
0
){
receiver
.
minderNode
.
setText
(
receiver
.
minderNode
.
getTmpData
(
'_lastTextContent'
));
receiver
.
minderNode
.
render
();
receiver
.
minderNode
.
getTextShape
().
setOpacity
(
1
);
km
.
layout
(
300
);
}
}
mouseDownStatus
=
true
;
selectionReadyShow
=
sel
.
isShow
();
...
...
@@ -104,6 +93,7 @@ KityMinder.registerModule('TextEditModule', function() {
if
(
node
){
var
textShape
=
node
.
getTextShape
();
textShape
.
setStyle
(
'cursor'
,
'default'
);
if
(
this
.
isSingleSelect
()
&&
node
.
isSelected
())
{
sel
.
collapse
(
true
);
...
...
src/module/editor.receiver.js
View file @
09a3fa39
...
...
@@ -75,7 +75,9 @@ Minder.Receiver = kity.createClass('Receiver', {
return
this
;
},
getTextShapeHeight
:
function
()
{
return
this
.
textShape
.
getRenderBox
().
height
;
var
height
=
this
.
textShape
.
getRenderBox
().
height
;
return
height
||
this
.
minderNode
.
_lastTextShapeBox
.
height
;
},
setKityMinder
:
function
(
km
)
{
this
.
km
=
km
;
...
...
@@ -115,7 +117,6 @@ Minder.Receiver = kity.createClass('Receiver', {
var
keyCode
=
orgEvt
.
keyCode
;
function
setTextToContainer
()
{
clearTimeout
(
me
.
timer
);
if
(
!
me
.
range
.
hasNativeRange
())
{
return
;
...
...
@@ -139,26 +140,11 @@ Minder.Receiver = kity.createClass('Receiver', {
text
+=
'
\
u200b'
;
}
//如果接受框已经空了,并且已经添加了占位的a了就什么都不做了
if
(
text
.
length
===
0
&&
me
.
textShape
.
getOpacity
()
===
0
){
return
;
}
if
(
text
.
length
===
0
)
{
me
.
minderNode
.
setTmpData
(
'_lastTextContent'
,
me
.
textShape
.
getContent
());
me
.
minderNode
.
setText
(
'a'
);
}
else
{
me
.
minderNode
.
setText
(
text
);
if
(
me
.
textShape
.
getOpacity
()
===
0
)
{
me
.
textShape
.
setOpacity
(
1
);
}
}
me
.
minderNode
.
setText
(
text
);
me
.
setContainerStyle
();
me
.
minderNode
.
getRenderContainer
().
bringTop
();
me
.
minderNode
.
render
();
//移动光标不做layout
if
(
!
keymap
.
notContentChange
[
keyCode
]){
clearTimeout
(
me
.
inputTextTimer
);
...
...
@@ -170,9 +156,7 @@ Minder.Receiver = kity.createClass('Receiver', {
me
.
textShape
=
me
.
minderNode
.
getRenderer
(
'TextRenderer'
).
getRenderShape
();
if
(
text
.
length
===
0
)
{
me
.
textShape
.
setOpacity
(
0
);
}
me
.
setBaseOffset
();
me
.
updateTextOffsetData
();
me
.
updateRange
();
...
...
@@ -187,18 +171,7 @@ Minder.Receiver = kity.createClass('Receiver', {
me
.
km
.
setStatus
(
'textedit'
);
}
function
restoreTextContent
(){
if
(
me
.
minderNode
){
var
textShape
=
me
.
minderNode
.
getTextShape
();
if
(
textShape
&&
textShape
.
getOpacity
()
===
0
){
me
.
minderNode
.
setText
(
me
.
minderNode
.
getTmpData
(
'_lastTextContent'
));
me
.
minderNode
.
render
();
me
.
minderNode
.
getTextShape
().
setOpacity
(
1
);
me
.
km
.
layout
(
300
);
}
}
}
switch
(
e
.
type
)
{
case
'input'
:
...
...
@@ -223,7 +196,7 @@ Minder.Receiver = kity.createClass('Receiver', {
this
.
km
.
setStatus
(
'normal'
);
this
.
km
.
fire
(
'contentchange'
);
}
restoreTextContent
();
return
;
case
keymap
.
left
:
case
keymap
.
right
:
...
...
@@ -233,7 +206,6 @@ Minder.Receiver = kity.createClass('Receiver', {
case
keymap
.
Del
:
case
keymap
[
'/'
]:
if
(
this
.
selection
.
isHide
()){
restoreTextContent
();
this
.
km
.
setStatus
(
'normal'
);
return
;
}
...
...
@@ -257,7 +229,7 @@ Minder.Receiver = kity.createClass('Receiver', {
88
:
1
,
67
:
1
}[
keyCode
]){
restoreTextContent
();
this
.
km
.
setStatus
(
'normal'
);
return
;
}
...
...
@@ -305,7 +277,7 @@ Minder.Receiver = kity.createClass('Receiver', {
this
.
km
.
setStatus
(
'normal'
);
this
.
km
.
fire
(
'contentchange'
);
}
restoreTextContent
();
shide
return
;
}
if
(
keymap
.
Enter
==
keyCode
&&
(
this
.
isTypeText
||
browser
.
mac
&&
browser
.
gecko
))
{
...
...
@@ -343,6 +315,7 @@ Minder.Receiver = kity.createClass('Receiver', {
return
true
;
case
'keyup'
:
var
node
=
this
.
km
.
getSelectedNode
();
if
(
this
.
km
.
getStatus
()
==
'normal'
&&
node
&&
this
.
selection
.
isHide
()){
if
(
node
&&
this
.
km
.
isSingleSelect
()
&&
node
.
isSelected
())
{
...
...
@@ -374,8 +347,6 @@ Minder.Receiver = kity.createClass('Receiver', {
}
this
.
minderNode
.
setTmpData
(
'_lastTextContent'
,
this
.
textShape
.
getContent
());
this
.
km
.
setStatus
(
'inputready'
);
}
...
...
@@ -390,7 +361,7 @@ Minder.Receiver = kity.createClass('Receiver', {
return
this
;
},
updateTextOffsetData
:
function
()
{
this
.
textShape
.
textData
=
this
.
getTextOffsetData
();
this
.
getTextOffsetData
();
return
this
;
},
setSelection
:
function
(
selection
)
{
...
...
@@ -452,6 +423,15 @@ Minder.Receiver = kity.createClass('Receiver', {
height
:
box
.
height
});
}
if
(
this
.
textData
.
length
===
0
){
var
lastBox
=
this
.
minderNode
.
_lastTextShapeBox
;
this
.
textData
.
push
({
x
:
lastBox
.
x
,
y
:
lastBox
.
y
,
width
:
0
,
height
:
lastBox
.
height
});
}
return
this
;
},
setCurrentIndex
:
function
(
offset
)
{
...
...
@@ -460,6 +440,10 @@ Minder.Receiver = kity.createClass('Receiver', {
var
hadChanged
=
false
;
//要剪掉基数
this
.
_getRelativeValue
(
offset
);
if
(
this
.
textData
.
length
==
1
&&
this
.
textData
[
0
].
width
===
0
){
me
.
index
=
0
;
return
this
;
}
utils
.
each
(
this
.
textData
,
function
(
i
,
v
)
{
//点击开始之前
if
(
i
===
0
&&
offset
.
x
<=
v
.
x
)
{
...
...
@@ -578,6 +562,9 @@ Minder.Receiver = kity.createClass('Receiver', {
updateContainerRangeBySel
:
function
(){
var
me
=
this
;
var
node
=
this
.
container
.
firstChild
;
if
(
!
node
){
node
=
this
.
container
;
}
this
.
range
.
setStart
(
node
,
this
.
selection
.
startOffset
);
this
.
range
.
setEnd
(
node
,
this
.
selection
.
endOffset
);
if
(
browser
.
gecko
){
...
...
src/module/text.js
View file @
09a3fa39
...
...
@@ -10,16 +10,35 @@ var TextRenderer = KityMinder.TextRenderer = kity.createClass('TextRenderer', {
.
setAttr
(
'text-rendering'
,
'inherit'
);
},
update
:
function
(
text
,
node
)
{
this
.
setTextStyle
(
node
,
text
.
setContent
(
node
.
getText
()));
var
box
=
text
.
getBoundaryBox
();
var
r
=
Math
.
round
;
if
(
kity
.
Browser
.
ie
)
{
box
.
y
+=
1
;
update
:
function
(
text
,
node
)
{
var
tmpText
=
node
.
getText
();
this
.
setTextStyle
(
node
,
text
.
setContent
(
tmpText
));
if
(
tmpText
.
length
||
!
this
.
_lastBox
){
var
box
=
text
.
getBoundaryBox
();
var
r
=
Math
.
round
;
if
(
kity
.
Browser
.
ie
)
{
box
.
y
+=
1
;
}
this
.
_lastBox
=
{
x
:
r
(
box
.
x
),
y
:
r
(
box
.
y
),
width
:
r
(
box
.
width
),
height
:
r
(
box
.
height
)
};
}
else
{
this
.
_lastBox
.
width
=
0
;
}
var
lastBox
=
this
.
_lastBox
;
node
.
_lastTextShapeBox
=
lastBox
;
return
function
()
{
return
new
kity
.
Box
(
r
(
box
.
x
),
r
(
box
.
y
),
r
(
box
.
width
),
r
(
box
.
height
)
);
return
new
kity
.
Box
(
lastBox
.
x
,
lastBox
.
y
,
lastBox
.
width
,
lastBox
.
height
);
};
},
setTextStyle
:
function
(
node
,
text
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment