Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F946814
_Grid.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
19 KB
Subscribers
None
_Grid.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._Grid"
]){
dojo
.
_hasResource
[
"dojox.grid._Grid"
]
=
true
;
dojo
.
provide
(
"dojox.grid._Grid"
);
dojo
.
require
(
"dijit.dijit"
);
dojo
.
require
(
"dijit.Menu"
);
dojo
.
require
(
"dojox.html.metrics"
);
dojo
.
require
(
"dojox.grid.util"
);
dojo
.
require
(
"dojox.grid._Scroller"
);
dojo
.
require
(
"dojox.grid._Layout"
);
dojo
.
require
(
"dojox.grid._View"
);
dojo
.
require
(
"dojox.grid._ViewManager"
);
dojo
.
require
(
"dojox.grid._RowManager"
);
dojo
.
require
(
"dojox.grid._FocusManager"
);
dojo
.
require
(
"dojox.grid._EditManager"
);
dojo
.
require
(
"dojox.grid.Selection"
);
dojo
.
require
(
"dojox.grid._RowSelector"
);
dojo
.
require
(
"dojox.grid._Events"
);
dojo
.
requireLocalization
(
"dijit"
,
"loading"
,
null
,
"ROOT,ar,ca,cs,da,de,el,es,fi,fr,he,hu,it,ja,ko,nb,nl,pl,pt,pt-pt,ru,sk,sl,sv,th,tr,zh,zh-tw"
);
(
function
(){
if
(
!
dojo
.
isCopyKey
){
dojo
.
isCopyKey
=
dojo
.
dnd
.
getCopyKeyState
;
}
dojo
.
declare
(
"dojox.grid._Grid"
,[
dijit
.
_Widget
,
dijit
.
_Templated
,
dojox
.
grid
.
_Events
],{
templateString
:
"<div class=\"dojoxGrid\" hidefocus=\"hidefocus\" wairole=\"grid\" dojoAttachEvent=\"onmouseout:_mouseOut\">\n\t<div class=\"dojoxGridMasterHeader\" dojoAttachPoint=\"viewsHeaderNode\" wairole=\"presentation\"></div>\n\t<div class=\"dojoxGridMasterView\" dojoAttachPoint=\"viewsNode\" wairole=\"presentation\"></div>\n\t<div class=\"dojoxGridMasterMessages\" style=\"display: none;\" dojoAttachPoint=\"messagesNode\"></div>\n\t<span dojoAttachPoint=\"lastFocusNode\" tabindex=\"0\"></span>\n</div>\n"
,
classTag
:
"dojoxGrid"
,
get
:
function
(
_1
){
},
rowCount
:
5
,
keepRows
:
75
,
rowsPerPage
:
25
,
autoWidth
:
false
,
initialWidth
:
""
,
autoHeight
:
""
,
rowHeight
:
0
,
autoRender
:
true
,
defaultHeight
:
"15em"
,
height
:
""
,
structure
:
null
,
elasticView
:-
1
,
singleClickEdit
:
false
,
selectionMode
:
"extended"
,
rowSelector
:
""
,
columnReordering
:
false
,
headerMenu
:
null
,
placeholderLabel
:
"GridColumns"
,
selectable
:
false
,
_click
:
null
,
loadingMessage
:
"<span class='dojoxGridLoading'>${loadingState}</span>"
,
errorMessage
:
"<span class='dojoxGridError'>${errorState}</span>"
,
noDataMessage
:
""
,
escapeHTMLInData
:
true
,
formatterScope
:
null
,
editable
:
false
,
sortInfo
:
0
,
themeable
:
true
,
_placeholders
:
null
,
_layoutClass
:
dojox
.
grid
.
_Layout
,
buildRendering
:
function
(){
this
.
inherited
(
arguments
);
if
(
this
.
get
==
dojox
.
grid
.
_Grid
.
prototype
.
get
){
this
.
get
=
null
;
}
if
(
!
this
.
domNode
.
getAttribute
(
"tabIndex"
)){
this
.
domNode
.
tabIndex
=
"0"
;
}
this
.
createScroller
();
this
.
createLayout
();
this
.
createViews
();
this
.
createManagers
();
this
.
createSelection
();
this
.
connect
(
this
.
selection
,
"onSelected"
,
"onSelected"
);
this
.
connect
(
this
.
selection
,
"onDeselected"
,
"onDeselected"
);
this
.
connect
(
this
.
selection
,
"onChanged"
,
"onSelectionChanged"
);
dojox
.
html
.
metrics
.
initOnFontResize
();
this
.
connect
(
dojox
.
html
.
metrics
,
"onFontResize"
,
"textSizeChanged"
);
dojox
.
grid
.
util
.
funnelEvents
(
this
.
domNode
,
this
,
"doKeyEvent"
,
dojox
.
grid
.
util
.
keyEvents
);
if
(
this
.
selectionMode
!=
"none"
){
dojo
.
attr
(
this
.
domNode
,
"aria-multiselectable"
,
this
.
selectionMode
==
"single"
?
"false"
:
"true"
);
}
},
postMixInProperties
:
function
(){
this
.
inherited
(
arguments
);
var
_2
=
dojo
.
i18n
.
getLocalization
(
"dijit"
,
"loading"
,
this
.
lang
);
this
.
loadingMessage
=
dojo
.
string
.
substitute
(
this
.
loadingMessage
,
_2
);
this
.
errorMessage
=
dojo
.
string
.
substitute
(
this
.
errorMessage
,
_2
);
if
(
this
.
srcNodeRef
&&
this
.
srcNodeRef
.
style
.
height
){
this
.
height
=
this
.
srcNodeRef
.
style
.
height
;
}
this
.
_setAutoHeightAttr
(
this
.
autoHeight
,
true
);
this
.
lastScrollTop
=
this
.
scrollTop
=
0
;
},
postCreate
:
function
(){
this
.
_placeholders
=
[];
this
.
_setHeaderMenuAttr
(
this
.
headerMenu
);
this
.
_setStructureAttr
(
this
.
structure
);
this
.
_click
=
[];
this
.
inherited
(
arguments
);
if
(
this
.
domNode
&&
this
.
autoWidth
&&
this
.
initialWidth
){
this
.
domNode
.
style
.
width
=
this
.
initialWidth
;
}
if
(
this
.
domNode
&&!
this
.
editable
){
dojo
.
attr
(
this
.
domNode
,
"aria-readonly"
,
"true"
);
}
},
destroy
:
function
(){
this
.
domNode
.
onReveal
=
null
;
this
.
domNode
.
onSizeChange
=
null
;
delete
this
.
_click
;
this
.
edit
.
destroy
();
delete
this
.
edit
;
this
.
views
.
destroyViews
();
if
(
this
.
scroller
){
this
.
scroller
.
destroy
();
delete
this
.
scroller
;
}
if
(
this
.
focus
){
this
.
focus
.
destroy
();
delete
this
.
focus
;
}
if
(
this
.
headerMenu
&&
this
.
_placeholders
.
length
){
dojo
.
forEach
(
this
.
_placeholders
,
function
(
p
){
p
.
unReplace
(
true
);
});
this
.
headerMenu
.
unBindDomNode
(
this
.
viewsHeaderNode
);
}
this
.
inherited
(
arguments
);
},
_setAutoHeightAttr
:
function
(
ah
,
_3
){
if
(
typeof
ah
==
"string"
){
if
(
!
ah
||
ah
==
"false"
){
ah
=
false
;
}
else
{
if
(
ah
==
"true"
){
ah
=
true
;
}
else
{
ah
=
window
.
parseInt
(
ah
,
10
);
}
}
}
if
(
typeof
ah
==
"number"
){
if
(
isNaN
(
ah
)){
ah
=
false
;
}
if
(
ah
<
0
){
ah
=
true
;
}
else
{
if
(
ah
===
0
){
ah
=
false
;
}
}
}
this
.
autoHeight
=
ah
;
if
(
typeof
ah
==
"boolean"
){
this
.
_autoHeight
=
ah
;
}
else
{
if
(
typeof
ah
==
"number"
){
this
.
_autoHeight
=
(
ah
>=
this
.
attr
(
"rowCount"
));
}
else
{
this
.
_autoHeight
=
false
;
}
}
if
(
this
.
_started
&&!
_3
){
this
.
render
();
}
},
_getRowCountAttr
:
function
(){
return
this
.
updating
&&
this
.
invalidated
&&
this
.
invalidated
.
rowCount
!=
undefined
?
this
.
invalidated
.
rowCount
:
this
.
rowCount
;
},
textSizeChanged
:
function
(){
this
.
render
();
},
sizeChange
:
function
(){
this
.
update
();
},
createManagers
:
function
(){
this
.
rows
=
new
dojox
.
grid
.
_RowManager
(
this
);
this
.
focus
=
new
dojox
.
grid
.
_FocusManager
(
this
);
this
.
edit
=
new
dojox
.
grid
.
_EditManager
(
this
);
},
createSelection
:
function
(){
this
.
selection
=
new
dojox
.
grid
.
Selection
(
this
);
},
createScroller
:
function
(){
this
.
scroller
=
new
dojox
.
grid
.
_Scroller
();
this
.
scroller
.
grid
=
this
;
this
.
scroller
.
renderRow
=
dojo
.
hitch
(
this
,
"renderRow"
);
this
.
scroller
.
removeRow
=
dojo
.
hitch
(
this
,
"rowRemoved"
);
},
createLayout
:
function
(){
this
.
layout
=
new
this
.
_layoutClass
(
this
);
this
.
connect
(
this
.
layout
,
"moveColumn"
,
"onMoveColumn"
);
},
onMoveColumn
:
function
(){
this
.
render
();
},
onResizeColumn
:
function
(
_4
){
},
createViews
:
function
(){
this
.
views
=
new
dojox
.
grid
.
_ViewManager
(
this
);
this
.
views
.
createView
=
dojo
.
hitch
(
this
,
"createView"
);
},
createView
:
function
(
_5
,
_6
){
var
c
=
dojo
.
getObject
(
_5
);
var
_7
=
new
c
({
grid
:
this
,
index
:
_6
});
this
.
viewsNode
.
appendChild
(
_7
.
domNode
);
this
.
viewsHeaderNode
.
appendChild
(
_7
.
headerNode
);
this
.
views
.
addView
(
_7
);
return
_7
;
},
buildViews
:
function
(){
for
(
var
i
=
0
,
vs
;(
vs
=
this
.
layout
.
structure
[
i
]);
i
++
){
this
.
createView
(
vs
.
type
||
dojox
.
_scopeName
+
".grid._View"
,
i
).
setStructure
(
vs
);
}
this
.
scroller
.
setContentNodes
(
this
.
views
.
getContentNodes
());
},
_setStructureAttr
:
function
(
_8
){
var
s
=
_8
;
if
(
s
&&
dojo
.
isString
(
s
)){
dojo
.
deprecated
(
"dojox.grid._Grid.attr('structure', 'objVar')"
,
"use dojox.grid._Grid.attr('structure', objVar) instead"
,
"2.0"
);
s
=
dojo
.
getObject
(
s
);
}
this
.
structure
=
s
;
if
(
!
s
){
if
(
this
.
layout
.
structure
){
s
=
this
.
layout
.
structure
;
}
else
{
return
;
}
}
this
.
views
.
destroyViews
();
if
(
s
!==
this
.
layout
.
structure
){
this
.
layout
.
setStructure
(
s
);
}
this
.
_structureChanged
();
},
setStructure
:
function
(
_9
){
dojo
.
deprecated
(
"dojox.grid._Grid.setStructure(obj)"
,
"use dojox.grid._Grid.attr('structure', obj) instead."
,
"2.0"
);
this
.
_setStructureAttr
(
_9
);
},
getColumnTogglingItems
:
function
(){
return
dojo
.
map
(
this
.
layout
.
cells
,
function
(
_a
){
if
(
!
_a
.
menuItems
){
_a
.
menuItems
=
[];
}
var
_b
=
this
;
var
_c
=
new
dijit
.
CheckedMenuItem
({
label
:
_a
.
name
,
checked
:!
_a
.
hidden
,
_gridCell
:
_a
,
onChange
:
function
(
_d
){
if
(
_b
.
layout
.
setColumnVisibility
(
this
.
_gridCell
.
index
,
_d
)){
var
_e
=
this
.
_gridCell
.
menuItems
;
if
(
_e
.
length
>
1
){
dojo
.
forEach
(
_e
,
function
(
_f
){
if
(
_f
!==
this
){
_f
.
setAttribute
(
"checked"
,
_d
);
}
},
this
);
}
_d
=
dojo
.
filter
(
_b
.
layout
.
cells
,
function
(
c
){
if
(
c
.
menuItems
.
length
>
1
){
dojo
.
forEach
(
c
.
menuItems
,
"item.attr('disabled', false);"
);
}
else
{
c
.
menuItems
[
0
].
attr
(
"disabled"
,
false
);
}
return
!
c
.
hidden
;
});
if
(
_d
.
length
==
1
){
dojo
.
forEach
(
_d
[
0
].
menuItems
,
"item.attr('disabled', true);"
);
}
}
},
destroy
:
function
(){
var
_10
=
dojo
.
indexOf
(
this
.
_gridCell
.
menuItems
,
this
);
this
.
_gridCell
.
menuItems
.
splice
(
_10
,
1
);
delete
this
.
_gridCell
;
dijit
.
CheckedMenuItem
.
prototype
.
destroy
.
apply
(
this
,
arguments
);
}});
_a
.
menuItems
.
push
(
_c
);
return
_c
;
},
this
);
},
_setHeaderMenuAttr
:
function
(
_11
){
if
(
this
.
_placeholders
&&
this
.
_placeholders
.
length
){
dojo
.
forEach
(
this
.
_placeholders
,
function
(
p
){
p
.
unReplace
(
true
);
});
this
.
_placeholders
=
[];
}
if
(
this
.
headerMenu
){
this
.
headerMenu
.
unBindDomNode
(
this
.
viewsHeaderNode
);
}
this
.
headerMenu
=
_11
;
if
(
!
_11
){
return
;
}
this
.
headerMenu
.
bindDomNode
(
this
.
viewsHeaderNode
);
if
(
this
.
headerMenu
.
getPlaceholders
){
this
.
_placeholders
=
this
.
headerMenu
.
getPlaceholders
(
this
.
placeholderLabel
);
}
},
setHeaderMenu
:
function
(
_12
){
dojo
.
deprecated
(
"dojox.grid._Grid.setHeaderMenu(obj)"
,
"use dojox.grid._Grid.attr('headerMenu', obj) instead."
,
"2.0"
);
this
.
_setHeaderMenuAttr
(
_12
);
},
setupHeaderMenu
:
function
(){
if
(
this
.
_placeholders
&&
this
.
_placeholders
.
length
){
dojo
.
forEach
(
this
.
_placeholders
,
function
(
p
){
if
(
p
.
_replaced
){
p
.
unReplace
(
true
);
}
p
.
replace
(
this
.
getColumnTogglingItems
());
},
this
);
}
},
_fetch
:
function
(
_13
){
this
.
setScrollTop
(
0
);
},
getItem
:
function
(
_14
){
return
null
;
},
showMessage
:
function
(
_15
){
if
(
_15
){
this
.
messagesNode
.
innerHTML
=
_15
;
this
.
messagesNode
.
style
.
display
=
""
;
}
else
{
this
.
messagesNode
.
innerHTML
=
""
;
this
.
messagesNode
.
style
.
display
=
"none"
;
}
},
_structureChanged
:
function
(){
this
.
buildViews
();
if
(
this
.
autoRender
&&
this
.
_started
){
this
.
render
();
}
},
hasLayout
:
function
(){
return
this
.
layout
.
cells
.
length
;
},
resize
:
function
(
_16
,
_17
){
this
.
_pendingChangeSize
=
_16
;
this
.
_pendingResultSize
=
_17
;
this
.
sizeChange
();
},
_getPadBorder
:
function
(){
this
.
_padBorder
=
this
.
_padBorder
||
dojo
.
_getPadBorderExtents
(
this
.
domNode
);
return
this
.
_padBorder
;
},
_getHeaderHeight
:
function
(){
var
vns
=
this
.
viewsHeaderNode
.
style
,
t
=
vns
.
display
==
"none"
?
0
:
this
.
views
.
measureHeader
();
vns
.
height
=
t
+
"px"
;
this
.
views
.
normalizeHeaderNodeHeight
();
return
t
;
},
_resize
:
function
(
_18
,
_19
){
_18
=
_18
||
this
.
_pendingChangeSize
;
_19
=
_19
||
this
.
_pendingResultSize
;
delete
this
.
_pendingChangeSize
;
delete
this
.
_pendingResultSize
;
if
(
!
this
.
domNode
){
return
;
}
var
pn
=
this
.
domNode
.
parentNode
;
if
(
!
pn
||
pn
.
nodeType
!=
1
||!
this
.
hasLayout
()
||
pn
.
style
.
visibility
==
"hidden"
||
pn
.
style
.
display
==
"none"
){
return
;
}
var
_1a
=
this
.
_getPadBorder
();
var
hh
=
undefined
;
var
h
;
if
(
this
.
_autoHeight
){
this
.
domNode
.
style
.
height
=
"auto"
;
this
.
viewsNode
.
style
.
height
=
""
;
}
else
{
if
(
typeof
this
.
autoHeight
==
"number"
){
h
=
hh
=
this
.
_getHeaderHeight
();
h
+=
(
this
.
scroller
.
averageRowHeight
*
this
.
autoHeight
);
this
.
domNode
.
style
.
height
=
h
+
"px"
;
}
else
{
if
(
this
.
domNode
.
clientHeight
<=
_1a
.
h
){
if
(
pn
==
document
.
body
){
this
.
domNode
.
style
.
height
=
this
.
defaultHeight
;
}
else
{
if
(
this
.
height
){
this
.
domNode
.
style
.
height
=
this
.
height
;
}
else
{
this
.
fitTo
=
"parent"
;
}
}
}
}
}
if
(
_19
){
_18
=
_19
;
}
if
(
_18
){
dojo
.
marginBox
(
this
.
domNode
,
_18
);
this
.
height
=
this
.
domNode
.
style
.
height
;
delete
this
.
fitTo
;
}
else
{
if
(
this
.
fitTo
==
"parent"
){
h
=
this
.
_parentContentBoxHeight
=
this
.
_parentContentBoxHeight
||
dojo
.
_getContentBox
(
pn
).
h
;
this
.
domNode
.
style
.
height
=
Math
.
max
(
0
,
h
)
+
"px"
;
}
}
var
_1b
=
dojo
.
some
(
this
.
views
.
views
,
function
(
v
){
return
v
.
flexCells
;
});
if
(
!
this
.
_autoHeight
&&
(
h
||
dojo
.
_getContentBox
(
this
.
domNode
).
h
)
===
0
){
this
.
viewsHeaderNode
.
style
.
display
=
"none"
;
}
else
{
this
.
viewsHeaderNode
.
style
.
display
=
"block"
;
if
(
!
_1b
&&
hh
===
undefined
){
hh
=
this
.
_getHeaderHeight
();
}
}
if
(
_1b
){
hh
=
undefined
;
}
this
.
adaptWidth
();
this
.
adaptHeight
(
hh
);
this
.
postresize
();
},
adaptWidth
:
function
(){
var
_1c
=
(
!
this
.
initialWidth
&&
this
.
autoWidth
);
var
w
=
_1c
?
0
:
this
.
domNode
.
clientWidth
||
(
this
.
domNode
.
offsetWidth
-
this
.
_getPadBorder
().
w
),
vw
=
this
.
views
.
arrange
(
1
,
w
);
this
.
views
.
onEach
(
"adaptWidth"
);
if
(
_1c
){
this
.
domNode
.
style
.
width
=
vw
+
"px"
;
}
},
adaptHeight
:
function
(
_1d
){
var
t
=
_1d
===
undefined
?
this
.
_getHeaderHeight
()
:
_1d
;
var
h
=
(
this
.
_autoHeight
?-
1
:
Math
.
max
(
this
.
domNode
.
clientHeight
-
t
,
0
)
||
0
);
this
.
views
.
onEach
(
"setSize"
,[
0
,
h
]);
this
.
views
.
onEach
(
"adaptHeight"
);
if
(
!
this
.
_autoHeight
){
var
_1e
=
0
,
_1f
=
0
;
var
_20
=
dojo
.
filter
(
this
.
views
.
views
,
function
(
v
){
var
has
=
v
.
hasHScrollbar
();
if
(
has
){
_1e
++
;
}
else
{
_1f
++
;
}
return
(
!
has
);
});
if
(
_1e
>
0
&&
_1f
>
0
){
dojo
.
forEach
(
_20
,
function
(
v
){
v
.
adaptHeight
(
true
);
});
}
}
if
(
this
.
autoHeight
===
true
||
h
!=-
1
||
(
typeof
this
.
autoHeight
==
"number"
&&
this
.
autoHeight
>=
this
.
attr
(
"rowCount"
))){
this
.
scroller
.
windowHeight
=
h
;
}
else
{
this
.
scroller
.
windowHeight
=
Math
.
max
(
this
.
domNode
.
clientHeight
-
t
,
0
);
}
},
startup
:
function
(){
if
(
this
.
_started
){
return
;
}
this
.
inherited
(
arguments
);
if
(
this
.
autoRender
){
this
.
render
();
}
},
render
:
function
(){
if
(
!
this
.
domNode
){
return
;
}
if
(
!
this
.
_started
){
return
;
}
if
(
!
this
.
hasLayout
()){
this
.
scroller
.
init
(
0
,
this
.
keepRows
,
this
.
rowsPerPage
);
return
;
}
this
.
update
=
this
.
defaultUpdate
;
this
.
_render
();
},
_render
:
function
(){
this
.
scroller
.
init
(
this
.
attr
(
"rowCount"
),
this
.
keepRows
,
this
.
rowsPerPage
);
this
.
prerender
();
this
.
setScrollTop
(
0
);
this
.
postrender
();
},
prerender
:
function
(){
this
.
keepRows
=
this
.
_autoHeight
?
0
:
this
.
keepRows
;
this
.
scroller
.
setKeepInfo
(
this
.
keepRows
);
this
.
views
.
render
();
this
.
_resize
();
},
postrender
:
function
(){
this
.
postresize
();
this
.
focus
.
initFocusView
();
dojo
.
setSelectable
(
this
.
domNode
,
this
.
selectable
);
},
postresize
:
function
(){
if
(
this
.
_autoHeight
){
var
_21
=
Math
.
max
(
this
.
views
.
measureContent
())
+
"px"
;
this
.
viewsNode
.
style
.
height
=
_21
;
}
},
renderRow
:
function
(
_22
,
_23
){
this
.
views
.
renderRow
(
_22
,
_23
,
this
.
_skipRowRenormalize
);
},
rowRemoved
:
function
(
_24
){
this
.
views
.
rowRemoved
(
_24
);
},
invalidated
:
null
,
updating
:
false
,
beginUpdate
:
function
(){
this
.
invalidated
=
[];
this
.
updating
=
true
;
},
endUpdate
:
function
(){
this
.
updating
=
false
;
var
i
=
this
.
invalidated
,
r
;
if
(
i
.
all
){
this
.
update
();
}
else
{
if
(
i
.
rowCount
!=
undefined
){
this
.
updateRowCount
(
i
.
rowCount
);
}
else
{
for
(
r
in
i
){
this
.
updateRow
(
Number
(
r
));
}
}
}
this
.
invalidated
=
[];
},
defaultUpdate
:
function
(){
if
(
!
this
.
domNode
){
return
;
}
if
(
this
.
updating
){
this
.
invalidated
.
all
=
true
;
return
;
}
this
.
lastScrollTop
=
this
.
scrollTop
;
this
.
prerender
();
this
.
scroller
.
invalidateNodes
();
this
.
setScrollTop
(
this
.
lastScrollTop
);
this
.
postrender
();
},
update
:
function
(){
this
.
render
();
},
updateRow
:
function
(
_25
){
_25
=
Number
(
_25
);
if
(
this
.
updating
){
this
.
invalidated
[
_25
]
=
true
;
}
else
{
this
.
views
.
updateRow
(
_25
);
this
.
scroller
.
rowHeightChanged
(
_25
);
}
},
updateRows
:
function
(
_26
,
_27
){
_26
=
Number
(
_26
);
_27
=
Number
(
_27
);
var
i
;
if
(
this
.
updating
){
for
(
i
=
0
;
i
<
_27
;
i
++
){
this
.
invalidated
[
i
+
_26
]
=
true
;
}
}
else
{
for
(
i
=
0
;
i
<
_27
;
i
++
){
this
.
views
.
updateRow
(
i
+
_26
,
this
.
_skipRowRenormalize
);
}
this
.
scroller
.
rowHeightChanged
(
_26
);
}
},
updateRowCount
:
function
(
_28
){
if
(
this
.
updating
){
this
.
invalidated
.
rowCount
=
_28
;
}
else
{
this
.
rowCount
=
_28
;
this
.
_setAutoHeightAttr
(
this
.
autoHeight
,
true
);
if
(
this
.
layout
.
cells
.
length
){
this
.
scroller
.
updateRowCount
(
_28
);
}
this
.
_resize
();
if
(
this
.
layout
.
cells
.
length
){
this
.
setScrollTop
(
this
.
scrollTop
);
}
}
},
updateRowStyles
:
function
(
_29
){
this
.
views
.
updateRowStyles
(
_29
);
},
getRowNode
:
function
(
_2a
){
if
(
this
.
focus
.
focusView
&&!
(
this
.
focus
.
focusView
instanceof
dojox
.
grid
.
_RowSelector
)){
return
this
.
focus
.
focusView
.
rowNodes
[
_2a
];
}
else
{
for
(
var
i
=
0
,
_2b
;(
_2b
=
this
.
views
.
views
[
i
]);
i
++
){
if
(
!
(
_2b
instanceof
dojox
.
grid
.
_RowSelector
)){
return
_2b
.
rowNodes
[
_2a
];
}
}
}
return
null
;
},
rowHeightChanged
:
function
(
_2c
){
this
.
views
.
renormalizeRow
(
_2c
);
this
.
scroller
.
rowHeightChanged
(
_2c
);
},
fastScroll
:
true
,
delayScroll
:
false
,
scrollRedrawThreshold
:
(
dojo
.
isIE
?
100
:
50
),
scrollTo
:
function
(
_2d
){
if
(
!
this
.
fastScroll
){
this
.
setScrollTop
(
_2d
);
return
;
}
var
_2e
=
Math
.
abs
(
this
.
lastScrollTop
-
_2d
);
this
.
lastScrollTop
=
_2d
;
if
(
_2e
>
this
.
scrollRedrawThreshold
||
this
.
delayScroll
){
this
.
delayScroll
=
true
;
this
.
scrollTop
=
_2d
;
this
.
views
.
setScrollTop
(
_2d
);
if
(
this
.
_pendingScroll
){
window
.
clearTimeout
(
this
.
_pendingScroll
);
}
var
_2f
=
this
;
this
.
_pendingScroll
=
window
.
setTimeout
(
function
(){
delete
_2f
.
_pendingScroll
;
_2f
.
finishScrollJob
();
},
200
);
}
else
{
this
.
setScrollTop
(
_2d
);
}
},
finishScrollJob
:
function
(){
this
.
delayScroll
=
false
;
this
.
setScrollTop
(
this
.
scrollTop
);
},
setScrollTop
:
function
(
_30
){
this
.
scroller
.
scroll
(
this
.
views
.
setScrollTop
(
_30
));
},
scrollToRow
:
function
(
_31
){
this
.
setScrollTop
(
this
.
scroller
.
findScrollTop
(
_31
)
+
1
);
},
styleRowNode
:
function
(
_32
,
_33
){
if
(
_33
){
this
.
rows
.
styleRowNode
(
_32
,
_33
);
}
},
_mouseOut
:
function
(
e
){
this
.
rows
.
setOverRow
(
-
2
);
},
getCell
:
function
(
_34
){
return
this
.
layout
.
cells
[
_34
];
},
setCellWidth
:
function
(
_35
,
_36
){
this
.
getCell
(
_35
).
unitWidth
=
_36
;
},
getCellName
:
function
(
_37
){
return
"Cell "
+
_37
.
index
;
},
canSort
:
function
(
_38
){
},
sort
:
function
(){
},
getSortAsc
:
function
(
_39
){
_39
=
_39
==
undefined
?
this
.
sortInfo
:
_39
;
return
Boolean
(
_39
>
0
);
},
getSortIndex
:
function
(
_3a
){
_3a
=
_3a
==
undefined
?
this
.
sortInfo
:
_3a
;
return
Math
.
abs
(
_3a
)
-
1
;
},
setSortIndex
:
function
(
_3b
,
_3c
){
var
si
=
_3b
+
1
;
if
(
_3c
!=
undefined
){
si
*=
(
_3c
?
1
:-
1
);
}
else
{
if
(
this
.
getSortIndex
()
==
_3b
){
si
=-
this
.
sortInfo
;
}
}
this
.
setSortInfo
(
si
);
},
setSortInfo
:
function
(
_3d
){
if
(
this
.
canSort
(
_3d
)){
this
.
sortInfo
=
_3d
;
this
.
sort
();
this
.
update
();
}
},
doKeyEvent
:
function
(
e
){
e
.
dispatch
=
"do"
+
e
.
type
;
this
.
onKeyEvent
(
e
);
},
_dispatch
:
function
(
m
,
e
){
if
(
m
in
this
){
return
this
[
m
](
e
);
}
return
false
;
},
dispatchKeyEvent
:
function
(
e
){
this
.
_dispatch
(
e
.
dispatch
,
e
);
},
dispatchContentEvent
:
function
(
e
){
this
.
edit
.
dispatchEvent
(
e
)
||
e
.
sourceView
.
dispatchContentEvent
(
e
)
||
this
.
_dispatch
(
e
.
dispatch
,
e
);
},
dispatchHeaderEvent
:
function
(
e
){
e
.
sourceView
.
dispatchHeaderEvent
(
e
)
||
this
.
_dispatch
(
"doheader"
+
e
.
type
,
e
);
},
dokeydown
:
function
(
e
){
this
.
onKeyDown
(
e
);
},
doclick
:
function
(
e
){
if
(
e
.
cellNode
){
this
.
onCellClick
(
e
);
}
else
{
this
.
onRowClick
(
e
);
}
},
dodblclick
:
function
(
e
){
if
(
e
.
cellNode
){
this
.
onCellDblClick
(
e
);
}
else
{
this
.
onRowDblClick
(
e
);
}
},
docontextmenu
:
function
(
e
){
if
(
e
.
cellNode
){
this
.
onCellContextMenu
(
e
);
}
else
{
this
.
onRowContextMenu
(
e
);
}
},
doheaderclick
:
function
(
e
){
if
(
e
.
cellNode
){
this
.
onHeaderCellClick
(
e
);
}
else
{
this
.
onHeaderClick
(
e
);
}
},
doheaderdblclick
:
function
(
e
){
if
(
e
.
cellNode
){
this
.
onHeaderCellDblClick
(
e
);
}
else
{
this
.
onHeaderDblClick
(
e
);
}
},
doheadercontextmenu
:
function
(
e
){
if
(
e
.
cellNode
){
this
.
onHeaderCellContextMenu
(
e
);
}
else
{
this
.
onHeaderContextMenu
(
e
);
}
},
doStartEdit
:
function
(
_3e
,
_3f
){
this
.
onStartEdit
(
_3e
,
_3f
);
},
doApplyCellEdit
:
function
(
_40
,
_41
,
_42
){
this
.
onApplyCellEdit
(
_40
,
_41
,
_42
);
},
doCancelEdit
:
function
(
_43
){
this
.
onCancelEdit
(
_43
);
},
doApplyEdit
:
function
(
_44
){
this
.
onApplyEdit
(
_44
);
},
addRow
:
function
(){
this
.
updateRowCount
(
this
.
attr
(
"rowCount"
)
+
1
);
},
removeSelectedRows
:
function
(){
if
(
this
.
allItemsSelected
){
this
.
updateRowCount
(
0
);
}
else
{
this
.
updateRowCount
(
Math
.
max
(
0
,
this
.
attr
(
"rowCount"
)
-
this
.
selection
.
getSelected
().
length
));
}
this
.
selection
.
clear
();
}});
dojox
.
grid
.
_Grid
.
markupFactory
=
function
(
_45
,
_46
,
_47
,
_48
){
var
d
=
dojo
;
var
_49
=
function
(
n
){
var
w
=
d
.
attr
(
n
,
"width"
)
||
"auto"
;
if
((
w
!=
"auto"
)
&&
(
w
.
slice
(
-
2
)
!=
"em"
)
&&
(
w
.
slice
(
-
1
)
!=
"%"
)){
w
=
parseInt
(
w
,
10
)
+
"px"
;
}
return
w
;
};
if
(
!
_45
.
structure
&&
_46
.
nodeName
.
toLowerCase
()
==
"table"
){
_45
.
structure
=
d
.
query
(
"> colgroup"
,
_46
).
map
(
function
(
cg
){
var
sv
=
d
.
attr
(
cg
,
"span"
);
var
v
=
{
noscroll
:
(
d
.
attr
(
cg
,
"noscroll"
)
==
"true"
)
?
true
:
false
,
__span
:
(
!!
sv
?
parseInt
(
sv
,
10
)
:
1
),
cells
:
[]};
if
(
d
.
hasAttr
(
cg
,
"width"
)){
v
.
width
=
_49
(
cg
);
}
return
v
;
});
if
(
!
_45
.
structure
.
length
){
_45
.
structure
.
push
({
__span
:
Infinity
,
cells
:
[]});
}
d
.
query
(
"thead > tr"
,
_46
).
forEach
(
function
(
tr
,
_4a
){
var
_4b
=
0
;
var
_4c
=
0
;
var
_4d
;
var
_4e
=
null
;
d
.
query
(
"> th"
,
tr
).
map
(
function
(
th
){
if
(
!
_4e
){
_4d
=
0
;
_4e
=
_45
.
structure
[
0
];
}
else
{
if
(
_4b
>=
(
_4d
+
_4e
.
__span
)){
_4c
++
;
_4d
+=
_4e
.
__span
;
var
_4f
=
_4e
;
_4e
=
_45
.
structure
[
_4c
];
}
}
var
_50
=
{
name
:
d
.
trim
(
d
.
attr
(
th
,
"name"
)
||
th
.
innerHTML
),
colSpan
:
parseInt
(
d
.
attr
(
th
,
"colspan"
)
||
1
,
10
),
type
:
d
.
trim
(
d
.
attr
(
th
,
"cellType"
)
||
""
),
id
:
d
.
trim
(
d
.
attr
(
th
,
"id"
)
||
""
)};
_4b
+=
_50
.
colSpan
;
var
_51
=
d
.
attr
(
th
,
"rowspan"
);
if
(
_51
){
_50
.
rowSpan
=
_51
;
}
if
(
d
.
hasAttr
(
th
,
"width"
)){
_50
.
width
=
_49
(
th
);
}
if
(
d
.
hasAttr
(
th
,
"relWidth"
)){
_50
.
relWidth
=
window
.
parseInt
(
dojo
.
attr
(
th
,
"relWidth"
),
10
);
}
if
(
d
.
hasAttr
(
th
,
"hidden"
)){
_50
.
hidden
=
d
.
attr
(
th
,
"hidden"
)
==
"true"
;
}
if
(
_48
){
_48
(
th
,
_50
);
}
_50
.
type
=
_50
.
type
?
dojo
.
getObject
(
_50
.
type
)
:
dojox
.
grid
.
cells
.
Cell
;
if
(
_50
.
type
&&
_50
.
type
.
markupFactory
){
_50
.
type
.
markupFactory
(
th
,
_50
);
}
if
(
!
_4e
.
cells
[
_4a
]){
_4e
.
cells
[
_4a
]
=
[];
}
_4e
.
cells
[
_4a
].
push
(
_50
);
});
});
}
return
new
_47
(
_45
,
_46
);
};
})();
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Apr 26, 09:06 (1 d, 13 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26279
Default Alt Text
_Grid.js (19 KB)
Attached To
rZEDHG ZedLegacy
Event Timeline
Log In to Comment