Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F881955
_DndMovingManager.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
18 KB
Subscribers
None
_DndMovingManager.js
View Options
/*
Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
if
(
!
dojo
.
_hasResource
[
"dojox.grid.enhanced.dnd._DndMovingManager"
]){
dojo
.
_hasResource
[
"dojox.grid.enhanced.dnd._DndMovingManager"
]
=
true
;
dojo
.
provide
(
"dojox.grid.enhanced.dnd._DndMovingManager"
);
dojo
.
require
(
"dojox.grid.enhanced.dnd._DndSelectingManager"
);
dojo
.
require
(
"dojox.grid.enhanced.dnd._DndMover"
);
dojo
.
require
(
"dojo.dnd.move"
);
dojo
.
declare
(
"dojox.grid.enhanced.dnd._DndMovingManager"
,
dojox
.
grid
.
enhanced
.
dnd
.
_DndSelectingManager
,{
exceptRowsTo
:-
1
,
exceptColumnsTo
:-
1
,
coverDIVs
:
[],
movers
:
[],
constructor
:
function
(
_1
){
if
(
this
.
grid
.
indirectSelection
){
this
.
exceptColumnsTo
=
this
.
grid
.
pluginMgr
.
getFixedCellNumber
()
-
1
;
}
this
.
coverDIVs
=
this
.
movers
=
[];
dojo
.
subscribe
(
"CTRL_KEY_DOWN"
,
dojo
.
hitch
(
this
,
function
(
_2
,
_3
){
if
(
_2
==
this
.
grid
&&
_2
!=
this
){
this
.
keyboardMove
(
_3
);
}
}));
dojo
.
forEach
(
this
.
grid
.
views
.
views
,
function
(
_4
){
dojo
.
connect
(
_4
.
scrollboxNode
,
"onscroll"
,
dojo
.
hitch
(
this
,
function
(){
this
.
clearDrugDivs
();
}));
},
this
);
},
getGridWidth
:
function
(){
return
dojo
.
contentBox
(
this
.
grid
.
domNode
).
w
-
this
.
grid
.
views
.
views
[
0
].
getWidth
().
replace
(
"px"
,
""
);
},
isColSelected
:
function
(
_5
){
return
this
.
selectedColumns
[
_5
]
&&
_5
>
this
.
exceptColumnsTo
;
},
getHScrollBarHeight
:
function
(){
this
.
scrollbarHeight
=
0
;
dojo
.
forEach
(
this
.
grid
.
views
.
views
,
function
(
_6
,
_7
){
if
(
_6
.
scrollboxNode
){
var
_8
=
_6
.
scrollboxNode
.
offsetHeight
-
_6
.
scrollboxNode
.
clientHeight
;
this
.
scrollbarHeight
=
_8
>
this
.
scrollbarHeight
?
_8
:
this
.
scrollbarHeight
;
}
},
this
);
return
this
.
scrollbarHeight
;
},
getExceptionalColOffsetWidth
:
function
(){
if
(
!
this
.
grid
.
indirectSelection
||!
this
.
grid
.
rowSelectCell
){
return
0
;
}
var
_9
=
(
normalizedOffsetWidth
=
0
),
_a
=
this
.
grid
.
rowSelectCell
.
view
.
scrollboxNode
;
dojo
.
forEach
(
this
.
getHeaderNodes
(),
function
(
_b
,
_c
){
if
(
_c
<=
this
.
exceptColumnsTo
){
var
_d
=
dojo
.
coords
(
_b
);
_9
+=
_d
.
w
;
}
},
this
);
normalizedOffsetWidth
=
_9
-
_a
.
scrollLeft
*
(
dojo
.
_isBodyLtr
()
?
1
:
(
dojo
.
isMoz
?-
1
:
1
));
return
normalizedOffsetWidth
>
0
?
normalizedOffsetWidth
:
0
;
},
getGridCoords
:
function
(
_e
){
if
(
!
this
.
gridCoords
||
_e
){
this
.
gridCoords
=
new
Object
();
if
(
!
this
.
headerHeight
){
this
.
headerHeight
=
dojo
.
coords
(
this
.
getHeaderNodes
()[
0
]).
h
;
}
var
_f
=
dojo
.
coords
(
this
.
grid
.
views
.
views
[
0
].
domNode
);
var
_10
=
dojo
.
coords
(
this
.
grid
.
domNode
);
var
_11
=
dojo
.
contentBox
(
this
.
grid
.
domNode
);
this
.
gridCoords
.
h
=
_11
.
h
-
this
.
headerHeight
-
this
.
getHScrollBarHeight
();
this
.
gridCoords
.
t
=
_10
.
y
;
this
.
gridCoords
.
l
=
dojo
.
_isBodyLtr
()
?
(
_10
.
x
+
_f
.
w
)
:
_10
.
x
;
this
.
gridCoords
.
w
=
_11
.
w
-
_f
.
w
;
}
return
this
.
gridCoords
;
},
createAvatar
:
function
(
_12
,
_13
,
_14
,
top
,
_15
){
this
.
gridCoords
=
null
;
var
_16
=
this
.
getGridCoords
();
var
_17
=
dojo
.
doc
.
createElement
(
"DIV"
);
_17
.
className
=
"dojoxGridSelectedDIV"
;
_17
.
id
=
"grid_dnd_cover_div_"
+
_14
+
"_"
+
top
;
_17
.
style
.
width
=
_12
+
"px"
;
var
_18
=
dojo
.
_docScroll
();
var
_19
=
top
<
_16
.
t
+
this
.
headerHeight
?
_16
.
t
+
this
.
headerHeight
-
top
:
0
;
var
_1a
=
_16
.
t
+
_16
.
h
+
this
.
headerHeight
;
var
_1b
=
0
;
if
(
top
<
_16
.
t
+
this
.
headerHeight
){
_1b
=
(
_16
.
t
+
this
.
headerHeight
);
}
else
{
if
(
top
>
_1a
){
_1b
=
10000
;
}
else
{
_1b
=
top
;
}
}
_17
.
style
.
top
=
_1b
+
_18
.
y
+
"px"
;
_17
.
style
.
left
=
(
_14
+
_18
.
x
)
+
"px"
;
var
_1c
=
_1b
+
_13
-
_19
;
if
(
_1c
>
_1a
+
(
_15
?
this
.
scrollbarHeight
:
0
)){
_1c
=
_1a
;
}
_17
.
style
.
height
=
((
_1c
-
_1b
)
>=
0
?
(
_1c
-
_1b
)
:
0
)
+
"px"
;
dojo
.
doc
.
body
.
appendChild
(
_17
);
_17
.
connections
=
[];
_17
.
connections
.
push
(
dojo
.
connect
(
_17
,
"onmouseout"
,
this
,
function
(){
this
.
clearDrugDivs
();
}));
_17
.
connections
.
push
(
dojo
.
connect
(
_17
,
"onclick"
,
this
,
"avataDivClick"
));
_17
.
connections
.
push
(
dojo
.
connect
(
_17
,
"keydown"
,
this
,
function
(
e
){
this
.
handleESC
(
e
,
this
);
}));
this
.
coverDIVs
.
push
(
_17
);
return
_17
;
},
handleESC
:
function
(
e
,
_1d
){
var
dk
=
dojo
.
keys
;
switch
(
e
.
keyCode
){
case
dk
.
ESCAPE
:
try
{
this
.
cancelDND
();
}
catch
(
e
){
}
break
;
}
},
cancelDND
:
function
(){
this
.
cleanAll
();
this
.
clearDrugDivs
();
if
(
this
.
mover
){
this
.
mover
.
destroy
();
}
this
.
cleanAll
();
},
createCoverMover
:
function
(
_1e
,
_1f
,
_20
,
top
,
_21
){
var
_22
=
this
.
getGridCoords
(),
_23
=
(
_21
==
"col"
?
true
:
false
);
var
_24
=
{
box
:
{
l
:
(
_21
==
"row"
?
_20
:
_22
.
l
)
+
dojo
.
_docScroll
().
x
,
t
:
(
_21
==
"col"
?
top
:
_22
.
t
+
this
.
headerHeight
)
+
dojo
.
_docScroll
().
y
,
w
:
_21
==
"row"
?
1
:
_22
.
w
,
h
:
_21
==
"col"
?
1
:
_22
.
h
},
within
:
true
,
movingType
:
_21
,
mover
:
dojox
.
grid
.
enhanced
.
dnd
.
_DndMover
};
return
new
dojox
.
grid
.
enhanced
.
dnd
.
_DndBoxConstrainedMoveable
(
this
.
createAvatar
(
_1e
,
_1f
,
_20
,
top
,
_23
),
_24
);
},
getBorderDiv
:
function
(){
var
_25
=
dojo
.
byId
(
"borderDIV"
+
this
.
grid
.
id
);
if
(
_25
==
null
){
_25
=
dojo
.
doc
.
createElement
(
"DIV"
);
_25
.
id
=
"borderDIV"
+
this
.
grid
.
id
;
_25
.
className
=
"dojoxGridBorderDIV"
;
dojo
.
doc
.
body
.
appendChild
(
_25
);
}
return
_25
;
},
setBorderDiv
:
function
(
_26
,
_27
,
_28
,
top
){
var
_29
=
this
.
getBorderDiv
();
dojo
.
style
(
_29
,{
"height"
:
_27
+
"px"
,
"top"
:
top
+
"px"
,
"width"
:
_26
+
"px"
,
"left"
:
_28
+
"px"
});
return
_29
;
},
removeOtherMovers
:
function
(
id
){
if
(
!
this
.
coverDIVs
.
hasRemovedOtherMovers
){
var
_2a
;
dojo
.
forEach
(
this
.
coverDIVs
,
function
(
div
){
if
(
div
.
id
!=
id
){
dojo
.
doc
.
body
.
removeChild
(
div
);
}
else
{
_2a
=
div
;
}
},
this
);
this
.
coverDIVs
=
[
_2a
];
this
.
coverDIVs
.
hasRemovedOtherMovers
=
true
;
}
},
addColMovers
:
function
(){
var
_2b
=-
1
;
dojo
.
forEach
(
this
.
selectedColumns
,
function
(
col
,
_2c
){
if
(
this
.
isColSelected
(
_2c
)){
if
(
_2b
==-
1
){
_2b
=
_2c
;
}
if
(
this
.
selectedColumns
[
_2c
+
1
]
==
null
){
this
.
addColMover
(
_2b
,
_2c
);
_2b
=-
1
;
}
}
},
this
);
},
addColMover
:
function
(
_2d
,
_2e
){
if
(
this
.
lock
){
return
;
}
var
_2f
=
(
_30
=
0
);
var
top
=
null
,
_31
=
null
;
if
(
dojo
.
_isBodyLtr
()){
dojo
.
forEach
(
this
.
getHeaderNodes
(),
function
(
_32
,
_33
){
var
_34
=
dojo
.
coords
(
_32
);
if
(
_33
==
_2d
){
_2f
=
_34
.
x
;
top
=
_34
.
y
+
_34
.
h
;
_31
=
_34
.
h
;
}
if
(
_33
==
_2e
){
_30
=
_34
.
x
+
_34
.
w
;
}
});
}
else
{
dojo
.
forEach
(
this
.
getHeaderNodes
(),
function
(
_35
,
_36
){
var
_37
=
dojo
.
coords
(
_35
);
if
(
_36
==
_2d
){
_30
=
_37
.
x
+
_37
.
w
;
_31
=
_37
.
h
;
}
if
(
_36
==
_2e
){
_2f
=
_37
.
x
;
top
=
_37
.
y
+
_37
.
h
;
}
});
}
var
_38
=
this
.
normalizeColMoverCoords
(
_2f
,
_30
,
_2d
,
_2e
);
var
_39
=
_38
.
h
,
_3a
=
_38
.
w
,
_2f
=
_38
.
l
,
_30
=
_38
.
r
;
var
_3b
=
this
.
createCoverMover
(
_3a
,
_39
,
_2f
,
top
,
"col"
);
this
.
movers
.
push
(
_3b
);
var
_3c
=
this
.
setBorderDiv
(
3
,
_39
,
-
1000
,
top
+
dojo
.
_docScroll
().
y
);
dojo
.
attr
(
_3c
,
"colH"
,
_38
.
colH
);
dojo
.
connect
(
_3b
,
"onMoveStart"
,
dojo
.
hitch
(
this
,
function
(
_3d
,
_3e
){
this
.
mover
=
_3d
;
this
.
removeOtherMovers
(
_3d
.
node
.
id
);
}));
dojo
.
connect
(
_3b
,
"onMove"
,
dojo
.
hitch
(
this
,
function
(
_3f
,
_40
,
_41
){
if
(
_3f
.
node
==
null
||
_3f
.
node
.
parentNode
==
null
){
return
;
}
this
.
isMoving
=
true
;
this
.
moveColBorder
(
_3f
,
_41
,
_3c
);
}));
dojo
.
connect
(
_3b
,
"onMoveStop"
,
dojo
.
hitch
(
this
,
function
(
_42
){
if
(
this
.
drugDestIndex
==
null
||
this
.
isContinuousSelection
(
this
.
selectedColumns
)
&&
(
this
.
drugDestIndex
==
_2d
||
this
.
drugDestIndex
==
_2e
||
this
.
drugDestIndex
==
(
_2e
+
1
)
&&
this
.
drugBefore
)){
this
.
movingIgnored
=
true
;
if
(
this
.
isMoving
){
this
.
isMoving
=
false
;
this
.
clearDrugDivs
();
}
return
;
}
this
.
isMoving
=
false
;
this
.
mover
=
null
;
this
.
startMoveCols
();
this
.
drugDestIndex
=
null
;
}));
},
normalizeColMoverCoords
:
function
(
_43
,
_44
,
_45
,
_46
){
var
_47
=
_44
-
_43
,
_48
=
this
.
grid
.
views
.
views
,
_49
=
this
.
grid
.
pluginMgr
;
var
_4a
=
{
"w"
:
_47
,
"h"
:
0
,
"l"
:
_43
,
"r"
:
_44
,
"colH"
:
0
};
var
_4b
=
this
.
getGridWidth
()
-
_48
[
_48
.
length
-
1
].
getScrollbarWidth
();
var
rtl
=!
dojo
.
_isBodyLtr
();
var
_4c
=
_49
.
getViewByCellIdx
(
!
rtl
?
_45
:
_46
);
var
_4d
=
_49
.
getViewByCellIdx
(
!
rtl
?
_46
:
_45
);
var
_4e
=
(
_4c
==
_4d
);
if
(
!
_4c
||!
_4d
){
return
_4a
;
}
var
_4f
=
dojo
.
coords
(
_4c
.
scrollboxNode
).
x
+
(
rtl
&&
dojo
.
isIE
?
_4c
.
getScrollbarWidth
()
:
0
);
var
_50
=
dojo
.
coords
(
_4d
.
scrollboxNode
);
var
_51
=
_50
.
x
+
_50
.
w
-
((
!
rtl
||!
dojo
.
isIE
)
?
_4d
.
getScrollbarWidth
()
:
0
);
if
(
_4a
.
l
<
_4f
){
_4a
.
w
=
_4a
.
r
-
_4f
;
_4a
.
l
=
_4f
;
}
if
(
_4a
.
r
>
_51
){
_4a
.
w
=
_51
-
_4a
.
l
;
}
var
i
,
_52
=
this
.
grid
.
views
.
views
[
0
],
_53
=
dojo
.
coords
(
_52
.
contentNode
).
h
;
var
_54
=
_4d
,
_55
=
_50
.
h
;
_4a
.
colH
=
_53
;
_55
=!
_4e
?
_55
:
(
_55
-
(
_54
.
scrollboxNode
.
offsetHeight
-
_54
.
scrollboxNode
.
clientHeight
));
_4a
.
h
=
_53
<
_55
?
_53
:
_55
;
return
_4a
;
},
moveColBorder
:
function
(
_56
,
_57
,
_58
){
var
_59
=
dojo
.
_docScroll
(),
rtl
=!
dojo
.
_isBodyLtr
();
_57
.
x
-=
_59
.
x
;
var
_5a
=
this
.
grid
.
views
.
views
,
_5b
=
this
.
getGridCoords
();
var
_5c
=
_5a
[
!
rtl
?
1
:
_5a
.
length
-
1
].
scrollboxNode
;
var
_5d
=
_5a
[
!
rtl
?
_5a
.
length
-
1
:
1
].
scrollboxNode
;
var
_5e
=
(
!
rtl
||!
dojo
.
isIE
)
?
_5b
.
l
:
(
_5b
.
l
+
_5c
.
offsetWidth
-
_5c
.
clientWidth
);
var
_5f
=
(
!
rtl
||
dojo
.
isMoz
)
?
(
_5b
.
l
+
_5b
.
w
-
(
_5d
.
offsetWidth
-
_5d
.
clientWidth
))
:
(
_5b
.
l
+
_5b
.
w
);
dojo
.
forEach
(
this
.
getHeaderNodes
(),
dojo
.
hitch
(
this
,
function
(
_60
,
_61
){
if
(
_61
>
this
.
exceptColumnsTo
){
var
x
,
_62
=
dojo
.
coords
(
_60
);
if
(
_57
.
x
>=
_62
.
x
&&
_57
.
x
<=
_62
.
x
+
_62
.
w
){
if
(
!
this
.
selectedColumns
[
_61
]
||!
this
.
selectedColumns
[
_61
-
1
]){
x
=
_62
.
x
+
_59
.
x
+
(
rtl
?
_62
.
w
:
0
);
if
(
_57
.
x
<
_5e
||
_57
.
x
>
_5f
||
x
<
_5e
||
x
>
_5f
){
return
;
}
dojo
.
style
(
_58
,
"left"
,
x
+
"px"
);
this
.
drugDestIndex
=
_61
;
this
.
drugBefore
=
true
;
!
dojo
.
isIE
&&
this
.
normalizeColBorderHeight
(
_58
,
_61
);
}
}
else
{
if
(
this
.
getHeaderNodes
()[
_61
+
1
]
==
null
&&
(
!
rtl
?
(
_57
.
x
>
_62
.
x
+
_62
.
w
)
:
(
_57
.
x
<
_62
.
x
))){
x
=
_57
.
x
<
_5e
?
_5e
:
(
_57
.
x
>
_5f
?
_5f
:
(
_62
.
x
+
_59
.
x
+
(
rtl
?
0
:
_62
.
w
)));
dojo
.
style
(
_58
,
"left"
,
x
+
"px"
);
this
.
drugDestIndex
=
_61
;
this
.
drugBefore
=
false
;
!
dojo
.
isIE
&&
this
.
normalizeColBorderHeight
(
_58
,
_61
);
}
}
}
}));
},
normalizeColBorderHeight
:
function
(
_63
,
_64
){
var
_65
=
this
.
grid
.
pluginMgr
.
getViewByCellIdx
(
_64
);
if
(
!
_65
){
return
;
}
var
_66
=
_65
.
scrollboxNode
,
_67
=
dojo
.
attr
(
_63
,
"colH"
);
var
_68
=
dojo
.
coords
(
_66
).
h
-
(
_66
.
offsetHeight
-
_66
.
clientHeight
);
_68
=
_67
>
0
&&
_67
<
_68
?
_67
:
_68
;
dojo
.
style
(
_63
,
"height"
,
_68
+
"px"
);
},
avataDivClick
:
function
(
e
){
if
(
this
.
movingIgnored
){
this
.
movingIgnored
=
false
;
return
;
}
this
.
cleanAll
();
this
.
clearDrugDivs
();
},
startMoveCols
:
function
(){
this
.
changeCursorState
(
"wait"
);
this
.
srcIndexdelta
=
0
;
deltaColAmount
=
0
;
dojo
.
forEach
(
this
.
selectedColumns
,
dojo
.
hitch
(
this
,
function
(
col
,
_69
){
if
(
this
.
isColSelected
(
_69
)){
if
(
this
.
drugDestIndex
>
_69
){
_69
-=
deltaColAmount
;
}
deltaColAmount
+=
1
;
var
_6a
=
this
.
grid
.
layout
.
cells
[
_69
].
view
.
idx
;
var
_6b
=
this
.
grid
.
layout
.
cells
[
this
.
drugDestIndex
].
view
.
idx
;
if
(
_69
!=
this
.
drugDestIndex
){
this
.
grid
.
layout
.
moveColumn
(
_6a
,
_6b
,
_69
,
this
.
drugDestIndex
,
this
.
drugBefore
);
}
if
(
this
.
drugDestIndex
<=
_69
&&
this
.
drugDestIndex
+
1
<
this
.
grid
.
layout
.
cells
.
length
){
this
.
drugDestIndex
+=
1
;
}
}
}));
var
_6c
=
this
.
drugDestIndex
+
(
this
.
drugBefore
?
0
:
1
);
this
.
clearDrugDivs
();
this
.
cleanAll
();
this
.
resetCellIdx
();
this
.
drugSelectionStart
.
colIndex
=
_6c
-
deltaColAmount
;
this
.
drugSelectColumn
(
this
.
drugSelectionStart
.
colIndex
+
deltaColAmount
-
1
);
},
changeCursorState
:
function
(
_6d
){
dojo
.
forEach
(
this
.
coverDIVs
,
function
(
div
){
div
.
style
.
cursor
=
"wait"
;
});
},
addRowMovers
:
function
(){
var
_6e
=-
1
;
dojo
.
forEach
(
this
.
grid
.
selection
.
selected
,
function
(
row
,
_6f
){
var
_70
=
this
.
grid
.
views
.
views
[
0
];
if
(
row
&&
_70
.
rowNodes
[
_6f
]){
if
(
_6e
==-
1
){
_6e
=
_6f
;
}
if
(
this
.
grid
.
selection
.
selected
[
_6f
+
1
]
==
null
||!
_70
.
rowNodes
[
_6f
+
1
]){
this
.
addRowMover
(
_6e
,
_6f
);
_6e
=-
1
;
}
}
},
this
);
},
addRowMover
:
function
(
_71
,
to
){
var
_72
=
0
,
_73
=
this
.
grid
.
views
.
views
;
dojo
.
forEach
(
_73
,
function
(
_74
,
_75
){
_72
+=
_74
.
getScrollbarWidth
();
});
var
_76
=
_73
[
_73
.
length
-
1
].
getScrollbarWidth
();
var
_77
=!
dojo
.
_isBodyLtr
()
?
(
dojo
.
isIE
?
_72
-
_76
:
_72
)
:
0
;
var
_78
=
this
.
getGridWidth
()
-
_76
;
var
_79
=
this
.
grid
.
views
.
views
[
0
];
var
_7a
=
_79
.
rowNodes
[
_71
],
_7b
=
_79
.
rowNodes
[
to
];
if
(
!
_7a
||!
_7b
){
return
;
}
var
_7c
=
dojo
.
coords
(
_7a
),
_7d
=
dojo
.
coords
(
_7b
);
var
_7e
=
this
.
getExceptionalColOffsetWidth
();
var
_7f
=
this
.
createCoverMover
(
_78
-
_7e
,(
_7d
.
y
-
_7c
.
y
+
_7d
.
h
),
dojo
.
_isBodyLtr
()
?
(
_7c
.
x
+
_7c
.
w
+
_7e
)
:
(
_7c
.
x
-
_78
-
_77
),
_7c
.
y
,
"row"
);
var
_80
=
this
.
setBorderDiv
(
_78
,
3
,(
dojo
.
_isBodyLtr
()
?
(
_7d
.
x
+
_7d
.
w
)
:
(
_7d
.
x
-
_78
-
_77
))
+
dojo
.
_docScroll
().
x
,
-
100
);
var
_81
=
dojo
.
connect
(
_7f
,
"onMoveStart"
,
dojo
.
hitch
(
this
,
function
(
_82
,
_83
){
this
.
mover
=
_82
;
this
.
removeOtherMovers
(
_82
.
node
.
id
);
}));
var
_84
=
dojo
.
connect
(
_7f
,
"onMove"
,
dojo
.
hitch
(
this
,
function
(
_85
,
_86
,
_87
){
if
(
_85
.
node
==
null
||
_85
.
node
.
parentNode
==
null
){
return
;
}
this
.
isMoving
=
true
;
this
.
moveRowBorder
(
_85
,
_86
,
_80
,
_87
);
}));
var
_88
=
dojo
.
connect
(
_7f
,
"onMoveStop"
,
dojo
.
hitch
(
this
,
function
(
_89
){
if
(
this
.
avaOnRowIndex
==
null
||
this
.
isContinuousSelection
(
this
.
grid
.
selection
.
selected
)
&&
(
this
.
avaOnRowIndex
==
_71
||
this
.
avaOnRowIndex
==
(
to
+
1
))){
this
.
movingIgnored
=
true
;
if
(
this
.
isMoving
){
this
.
isMoving
=
false
;
this
.
clearDrugDivs
();
}
return
;
}
this
.
isMoving
=
false
;
this
.
mover
=
null
;
this
.
grid
.
select
.
outRangeY
=
false
;
this
.
grid
.
select
.
moveOutTop
=
false
;
this
.
grid
.
scroller
.
findScrollTop
(
this
.
grid
.
scroller
.
page
*
this
.
grid
.
scroller
.
rowsPerPage
);
this
.
startMoveRows
();
this
.
avaOnRowIndex
=
null
;
delete
_7f
;
}));
},
moveRowBorder
:
function
(
_8a
,
_8b
,
_8c
,
_8d
){
var
_8e
=
this
.
getGridCoords
(
true
),
_8f
=
dojo
.
_docScroll
();
var
_90
=
_8e
.
t
+
this
.
headerHeight
+
_8e
.
h
;
_8b
.
t
-=
_8f
.
y
,
_8d
.
y
-=
_8f
.
y
;
if
(
_8d
.
y
>=
_90
){
this
.
grid
.
select
.
outRangeY
=
true
;
this
.
autoMoveToNextRow
();
}
else
{
if
(
_8d
.
y
<=
_8e
.
t
+
this
.
headerHeight
){
this
.
grid
.
select
.
moveOutTop
=
true
;
this
.
autoMoveToPreRow
();
}
else
{
this
.
grid
.
select
.
outRangeY
=
this
.
grid
.
select
.
moveOutTop
=
false
;
var
_91
=
this
.
grid
.
views
.
views
[
0
],
_92
=
_91
.
rowNodes
;
var
_93
=
dojo
.
coords
(
_91
.
contentNode
).
h
;
var
_94
=
0
,
_95
=-
1
;
for
(
i
in
_92
){
++
_94
;
if
(
i
>
_95
){
_95
=
i
;
}
}
var
_96
=
dojo
.
coords
(
_92
[
_95
]);
if
(
_93
<
_8e
.
h
&&
_8d
.
y
>
(
_96
.
y
+
_96
.
h
)){
this
.
avaOnRowIndex
=
_94
;
dojo
.
style
(
_8c
,{
"top"
:
_96
.
y
+
_96
.
h
+
_8f
.
y
+
"px"
});
return
;
}
var
_97
,
_98
,
_99
;
for
(
var
_9a
in
_92
){
_9a
=
parseInt
(
_9a
);
if
(
isNaN
(
_9a
)){
continue
;
}
_98
=
_92
[
_9a
];
if
(
!
_98
){
continue
;
}
_97
=
dojo
.
coords
(
_98
),
_99
=
(
_97
.
y
<=
_90
);
if
(
_99
&&
_8d
.
y
>
_97
.
y
&&
_8d
.
y
<
_97
.
y
+
_97
.
h
){
if
(
!
this
.
grid
.
selection
.
selected
[
_9a
]
||!
this
.
grid
.
selection
.
selected
[
_9a
-
1
]){
this
.
avaOnRowIndex
=
_9a
;
dojo
.
style
(
_8c
,{
"top"
:
_97
.
y
+
_8f
.
y
+
"px"
});
}
}
}
}
}
},
autoMoveToPreRow
:
function
(){
if
(
this
.
grid
.
select
.
moveOutTop
){
if
(
this
.
grid
.
scroller
.
firstVisibleRow
>
0
){
this
.
grid
.
scrollToRow
(
this
.
grid
.
scroller
.
firstVisibleRow
-
1
);
this
.
autoMoveBorderDivPre
();
setTimeout
(
dojo
.
hitch
(
this
,
"autoMoveToPreRow"
),
this
.
autoScrollRate
);
}
}
},
autoMoveBorderDivPre
:
function
(){
var
_9b
=
dojo
.
_docScroll
(),
_9c
=
this
.
getGridCoords
();
var
_9d
=
_9c
.
t
+
this
.
headerHeight
+
_9b
.
y
;
var
_9e
,
_9f
=
this
.
getBorderDiv
();
if
(
this
.
avaOnRowIndex
-
1
<=
0
){
this
.
avaOnRowIndex
=
0
;
_9e
=
_9d
;
}
else
{
this
.
avaOnRowIndex
--
;
_9e
=
dojo
.
coords
(
this
.
grid
.
views
.
views
[
0
].
rowNodes
[
this
.
avaOnRowIndex
]).
y
+
_9b
.
y
;
}
_9f
.
style
.
top
=
(
_9e
<
_9d
?
_9d
:
_9e
)
+
"px"
;
},
autoMoveToNextRow
:
function
(){
if
(
this
.
grid
.
select
.
outRangeY
){
if
(
this
.
avaOnRowIndex
+
1
<=
this
.
grid
.
scroller
.
rowCount
){
this
.
grid
.
scrollToRow
(
this
.
grid
.
scroller
.
firstVisibleRow
+
1
);
this
.
autoMoveBorderDiv
();
setTimeout
(
dojo
.
hitch
(
this
,
"autoMoveToNextRow"
),
this
.
autoScrollRate
);
}
}
},
autoMoveBorderDiv
:
function
(){
var
_a0
=
dojo
.
_docScroll
(),
_a1
=
this
.
getGridCoords
();
var
_a2
=
_a1
.
t
+
this
.
headerHeight
+
_a1
.
h
+
_a0
.
y
;
var
_a3
,
_a4
=
this
.
getBorderDiv
();
if
(
this
.
avaOnRowIndex
+
1
>=
this
.
grid
.
scroller
.
rowCount
){
this
.
avaOnRowIndex
=
this
.
grid
.
scroller
.
rowCount
;
_a3
=
_a2
;
}
else
{
this
.
avaOnRowIndex
++
;
_a3
=
dojo
.
coords
(
this
.
grid
.
views
.
views
[
0
].
rowNodes
[
this
.
avaOnRowIndex
]).
y
+
_a0
.
y
;
}
_a4
.
style
.
top
=
(
_a3
>
_a2
?
_a2
:
_a3
)
+
"px"
;
},
startMoveRows
:
function
(){
var
_a5
=
Math
.
min
(
this
.
avaOnRowIndex
,
this
.
getFirstSelected
());
var
end
=
Math
.
max
(
this
.
avaOnRowIndex
-
1
,
this
.
getLastSelected
());
this
.
moveRows
(
_a5
,
end
,
this
.
getPageInfo
());
},
moveRows
:
function
(
_a6
,
end
,
_a7
){
var
i
,
_a8
=
false
,
_a9
=
(
selectedRowsAboveBorderDIV
=
0
),
_aa
=
[];
var
_ab
=
this
.
grid
.
scroller
,
_ac
=
_ab
.
rowsPerPage
;
var
_ad
=
_a7
.
topPage
*
_ac
,
_ae
=
(
_a7
.
bottomPage
+
1
)
*
_ac
-
1
;
var
_af
=
dojo
.
hitch
(
this
,
function
(
_b0
,
to
){
for
(
i
=
_b0
;
i
<
to
;
i
++
){
if
(
!
this
.
grid
.
selection
.
selected
[
i
]
||!
this
.
grid
.
_by_idx
[
i
]){
_aa
.
push
(
this
.
grid
.
_by_idx
[
i
]);
}
}
});
_af
(
_a6
,
this
.
avaOnRowIndex
);
for
(
i
=
_a6
;
i
<=
end
;
i
++
){
if
(
this
.
grid
.
selection
.
selected
[
i
]
&&
this
.
grid
.
_by_idx
[
i
]){
_aa
.
push
(
this
.
grid
.
_by_idx
[
i
]);
_a9
++
;
if
(
this
.
avaOnRowIndex
>
i
){
selectedRowsAboveBorderDIV
++
;
}
}
}
_af
(
this
.
avaOnRowIndex
,
end
+
1
);
for
(
i
=
_a6
,
j
=
0
;
i
<=
end
;
i
++
){
this
.
grid
.
_by_idx
[
i
]
=
_aa
[
j
++
];
if
(
i
>=
_ad
&&
i
<=
_ae
){
this
.
grid
.
updateRow
(
i
);
_a8
=
true
;
}
}
this
.
avaOnRowIndex
+=
_a9
-
selectedRowsAboveBorderDIV
;
try
{
this
.
clearDrugDivs
();
this
.
cleanAll
();
this
.
drugSelectionStart
.
rowIndex
=
this
.
avaOnRowIndex
-
_a9
;
this
.
drugSelectRow
(
this
.
drugSelectionStart
.
rowIndex
+
_a9
-
1
);
if
(
_a8
){
var
_b1
=
_ab
.
stack
;
dojo
.
forEach
(
_a7
.
invalidPages
,
function
(
_b2
){
_ab
.
destroyPage
(
_b2
);
i
=
dojo
.
indexOf
(
_b1
,
_b2
);
if
(
i
>=
0
){
_b1
.
splice
(
i
,
1
);
}
});
}
this
.
publishRowMove
();
}
catch
(
e
){
}
},
clearDrugDivs
:
function
(){
if
(
!
this
.
isMoving
){
var
_b3
=
this
.
getBorderDiv
();
_b3
.
style
.
top
=-
100
+
"px"
;
_b3
.
style
.
height
=
"0px"
;
_b3
.
style
.
left
=-
100
+
"px"
;
dojo
.
forEach
(
this
.
coverDIVs
,
function
(
div
){
dojo
.
forEach
(
div
.
connections
,
function
(
_b4
){
dojo
.
disconnect
(
_b4
);
});
dojo
.
doc
.
body
.
removeChild
(
div
);
delete
div
;
},
this
);
this
.
coverDIVs
=
[];
}
},
setDrugCoverDivs
:
function
(
_b5
,
_b6
){
if
(
!
this
.
isMoving
){
if
(
this
.
isColSelected
(
_b5
)){
this
.
addColMovers
();
}
else
{
if
(
this
.
grid
.
selection
.
selected
[
_b6
]){
this
.
addRowMovers
();
}
else
{
this
.
clearDrugDivs
();
}
}
}
},
getPageInfo
:
function
(){
var
_b7
=
this
.
grid
.
scroller
,
_b8
=
(
bottomPage
=
_b7
.
page
);
var
_b9
=
_b7
.
firstVisibleRow
,
_ba
=
_b7
.
lastVisibleRow
;
var
_bb
=
_b7
.
rowsPerPage
,
_bc
=
_b7
.
pageNodes
[
0
];
var
_bd
,
_be
,
_bf
=
[],
_c0
;
dojo
.
forEach
(
_bc
,
function
(
_c1
,
_c2
){
if
(
!
_c1
){
return
;
}
_c0
=
false
;
_bd
=
_c2
*
_bb
;
_be
=
(
_c2
+
1
)
*
_bb
-
1
;
if
(
_b9
>=
_bd
&&
_b9
<=
_be
){
_b8
=
_c2
;
_c0
=
true
;
}
if
(
_ba
>=
_bd
&&
_ba
<=
_be
){
bottomPage
=
_c2
;
_c0
=
true
;
}
if
(
!
_c0
&&
(
_bd
>
_ba
||
_be
<
_b9
)){
_bf
.
push
(
_c2
);
}
});
return
{
topPage
:
_b8
,
bottomPage
:
bottomPage
,
invalidPages
:
_bf
};
},
resetCellIdx
:
function
(){
var
_c3
=
0
;
var
_c4
=-
1
;
dojo
.
forEach
(
this
.
grid
.
views
.
views
,
function
(
_c5
,
_c6
){
if
(
_c6
==
0
){
return
;
}
if
(
_c5
.
structure
.
cells
&&
_c5
.
structure
.
cells
[
0
]){
dojo
.
forEach
(
_c5
.
structure
.
cells
[
0
],
function
(
_c7
,
_c8
){
var
_c9
=
_c7
.
markup
[
2
].
split
(
" "
);
var
idx
=
_c3
+
_c8
;
_c9
[
1
]
=
"idx=\""
+
idx
+
"\""
;
_c7
.
markup
[
2
]
=
_c9
.
join
(
" "
);
});
}
for
(
i
in
_c5
.
rowNodes
){
if
(
!
_c5
.
rowNodes
[
i
]){
return
;
}
dojo
.
forEach
(
_c5
.
rowNodes
[
i
].
firstChild
.
rows
[
0
].
cells
,
function
(
_ca
,
_cb
){
if
(
_ca
&&
_ca
.
attributes
){
if
(
_cb
+
_c3
>
_c4
){
_c4
=
_cb
+
_c3
;
}
var
idx
=
document
.
createAttribute
(
"idx"
);
idx
.
value
=
_cb
+
_c3
;
_ca
.
attributes
.
setNamedItem
(
idx
);
}
});
}
_c3
=
_c4
+
1
;
});
},
publishRowMove
:
function
(){
dojo
.
publish
(
this
.
grid
.
rowMovedTopic
,[
this
]);
},
keyboardMove
:
function
(
_cc
){
var
_cd
=
this
.
selectedColumns
.
length
>
0
;
var
_ce
=
dojo
.
hitch
(
this
.
grid
.
selection
,
dojox
.
grid
.
Selection
.
prototype
[
"getFirstSelected"
])()
>=
0
;
var
i
,
_cf
,
dk
=
dojo
.
keys
,
_d0
=
_cc
.
keyCode
;
if
(
!
dojo
.
_isBodyLtr
()){
_d0
=
(
_cc
.
keyCode
==
dk
.
LEFT_ARROW
)
?
dk
.
RIGHT_ARROW
:
(
_cc
.
keyCode
==
dk
.
RIGHT_ARROW
?
dk
.
LEFT_ARROW
:
_d0
);
}
switch
(
_d0
){
case
dk
.
LEFT_ARROW
:
if
(
!
_cd
){
return
;
}
_cf
=
this
.
getHeaderNodes
().
length
;
for
(
i
=
0
;
i
<
_cf
;
i
++
){
if
(
this
.
isColSelected
(
i
)){
this
.
drugDestIndex
=
i
-
1
;
this
.
drugBefore
=
true
;
break
;
}
}
var
_d1
=
this
.
grid
.
indirectSelection
?
1
:
0
;
(
this
.
drugDestIndex
>=
_d1
)
?
this
.
startMoveCols
()
:
(
this
.
drugDestIndex
=
_d1
);
break
;
case
dk
.
RIGHT_ARROW
:
if
(
!
_cd
){
return
;
}
_cf
=
this
.
getHeaderNodes
().
length
;
this
.
drugBefore
=
true
;
for
(
i
=
0
;
i
<
_cf
;
i
++
){
if
(
this
.
isColSelected
(
i
)
&&!
this
.
isColSelected
(
i
+
1
)){
this
.
drugDestIndex
=
i
+
2
;
if
(
this
.
drugDestIndex
==
_cf
){
this
.
drugDestIndex
--
;
this
.
drugBefore
=
false
;
}
break
;
}
}
if
(
this
.
drugDestIndex
<
_cf
){
this
.
startMoveCols
();
}
break
;
case
dk
.
UP_ARROW
:
if
(
!
_ce
){
return
;
}
this
.
avaOnRowIndex
=
dojo
.
hitch
(
this
.
grid
.
selection
,
dojox
.
grid
.
Selection
.
prototype
[
"getFirstSelected"
])()
-
1
;
if
(
this
.
avaOnRowIndex
>-
1
){
this
.
startMoveRows
();
}
break
;
case
dk
.
DOWN_ARROW
:
if
(
!
_ce
){
return
;
}
for
(
i
=
0
;
i
<
this
.
grid
.
rowCount
;
i
++
){
if
(
this
.
grid
.
selection
.
selected
[
i
]
&&!
this
.
grid
.
selection
.
selected
[
i
+
1
]){
this
.
avaOnRowIndex
=
i
+
2
;
break
;
}
}
if
(
this
.
avaOnRowIndex
<=
this
.
grid
.
rowCount
){
this
.
startMoveRows
();
}
}
}});
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Apr 2, 13:34 (4 w, 8 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27157
Default Alt Text
_DndMovingManager.js (18 KB)
Attached To
rZEDHG ZedLegacy
Event Timeline
Log In to Comment