Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F883539
Menu.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
9 KB
Subscribers
None
Menu.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
[
"dijit.Menu"
]){
dojo
.
_hasResource
[
"dijit.Menu"
]
=
true
;
dojo
.
provide
(
"dijit.Menu"
);
dojo
.
require
(
"dijit._Widget"
);
dojo
.
require
(
"dijit._KeyNavContainer"
);
dojo
.
require
(
"dijit._Templated"
);
dojo
.
declare
(
"dijit._MenuBase"
,[
dijit
.
_Widget
,
dijit
.
_Templated
,
dijit
.
_KeyNavContainer
],{
parentMenu
:
null
,
popupDelay
:
500
,
startup
:
function
(){
if
(
this
.
_started
){
return
;
}
dojo
.
forEach
(
this
.
getChildren
(),
function
(
_1
){
_1
.
startup
();
});
this
.
startupKeyNavChildren
();
this
.
inherited
(
arguments
);
},
onExecute
:
function
(){
},
onCancel
:
function
(
_2
){
},
_moveToPopup
:
function
(
_3
){
if
(
this
.
focusedChild
&&
this
.
focusedChild
.
popup
&&!
this
.
focusedChild
.
disabled
){
this
.
focusedChild
.
_onClick
(
_3
);
}
else
{
var
_4
=
this
.
_getTopMenu
();
if
(
_4
&&
_4
.
_isMenuBar
){
_4
.
focusNext
();
}
}
},
_onPopupHover
:
function
(
_5
){
if
(
this
.
currentPopup
&&
this
.
currentPopup
.
_pendingClose_timer
){
var
_6
=
this
.
currentPopup
.
parentMenu
;
if
(
_6
.
focusedChild
){
_6
.
focusedChild
.
_setSelected
(
false
);
}
_6
.
focusedChild
=
this
.
currentPopup
.
from_item
;
_6
.
focusedChild
.
_setSelected
(
true
);
this
.
_stopPendingCloseTimer
(
this
.
currentPopup
);
}
},
onItemHover
:
function
(
_7
){
if
(
this
.
isActive
){
this
.
focusChild
(
_7
);
if
(
this
.
focusedChild
.
popup
&&!
this
.
focusedChild
.
disabled
&&!
this
.
hover_timer
){
this
.
hover_timer
=
setTimeout
(
dojo
.
hitch
(
this
,
"_openPopup"
),
this
.
popupDelay
);
}
}
if
(
this
.
focusedChild
){
this
.
focusChild
(
_7
);
}
this
.
_hoveredChild
=
_7
;
},
_onChildBlur
:
function
(
_8
){
this
.
_stopPopupTimer
();
_8
.
_setSelected
(
false
);
var
_9
=
_8
.
popup
;
if
(
_9
){
this
.
_stopPendingCloseTimer
(
_9
);
_9
.
_pendingClose_timer
=
setTimeout
(
function
(){
_9
.
_pendingClose_timer
=
null
;
if
(
_9
.
parentMenu
){
_9
.
parentMenu
.
currentPopup
=
null
;
}
dijit
.
popup
.
close
(
_9
);
},
this
.
popupDelay
);
}
},
onItemUnhover
:
function
(
_a
){
if
(
this
.
isActive
){
this
.
_stopPopupTimer
();
}
if
(
this
.
_hoveredChild
==
_a
){
this
.
_hoveredChild
=
null
;
}
},
_stopPopupTimer
:
function
(){
if
(
this
.
hover_timer
){
clearTimeout
(
this
.
hover_timer
);
this
.
hover_timer
=
null
;
}
},
_stopPendingCloseTimer
:
function
(
_b
){
if
(
_b
.
_pendingClose_timer
){
clearTimeout
(
_b
.
_pendingClose_timer
);
_b
.
_pendingClose_timer
=
null
;
}
},
_stopFocusTimer
:
function
(){
if
(
this
.
_focus_timer
){
clearTimeout
(
this
.
_focus_timer
);
this
.
_focus_timer
=
null
;
}
},
_getTopMenu
:
function
(){
for
(
var
_c
=
this
;
_c
.
parentMenu
;
_c
=
_c
.
parentMenu
){
}
return
_c
;
},
onItemClick
:
function
(
_d
,
_e
){
if
(
_d
.
disabled
){
return
false
;
}
if
(
typeof
this
.
isShowingNow
==
"undefined"
){
this
.
_markActive
();
}
this
.
focusChild
(
_d
);
if
(
_d
.
popup
){
this
.
_openPopup
();
}
else
{
this
.
onExecute
();
_d
.
onClick
(
_e
);
}
},
_openPopup
:
function
(){
this
.
_stopPopupTimer
();
var
_f
=
this
.
focusedChild
;
if
(
!
_f
){
return
;
}
var
_10
=
_f
.
popup
;
if
(
_10
.
isShowingNow
){
return
;
}
if
(
this
.
currentPopup
){
this
.
_stopPendingCloseTimer
(
this
.
currentPopup
);
dijit
.
popup
.
close
(
this
.
currentPopup
);
}
_10
.
parentMenu
=
this
;
_10
.
from_item
=
_f
;
var
_11
=
this
;
dijit
.
popup
.
open
({
parent
:
this
,
popup
:
_10
,
around
:
_f
.
domNode
,
orient
:
this
.
_orient
||
(
this
.
isLeftToRight
()
?
{
"TR"
:
"TL"
,
"TL"
:
"TR"
,
"BR"
:
"BL"
,
"BL"
:
"BR"
}
:
{
"TL"
:
"TR"
,
"TR"
:
"TL"
,
"BL"
:
"BR"
,
"BR"
:
"BL"
}),
onCancel
:
function
(){
_11
.
focusChild
(
_f
);
_11
.
_cleanUp
();
_f
.
_setSelected
(
true
);
_11
.
focusedChild
=
_f
;
},
onExecute
:
dojo
.
hitch
(
this
,
"_cleanUp"
)});
this
.
currentPopup
=
_10
;
_10
.
connect
(
_10
.
domNode
,
"onmouseenter"
,
dojo
.
hitch
(
_11
,
"_onPopupHover"
));
if
(
_10
.
focus
){
_10
.
_focus_timer
=
setTimeout
(
dojo
.
hitch
(
_10
,
function
(){
this
.
_focus_timer
=
null
;
this
.
focus
();
}),
0
);
}
},
_markActive
:
function
(){
this
.
isActive
=
true
;
dojo
.
addClass
(
this
.
domNode
,
"dijitMenuActive"
);
dojo
.
removeClass
(
this
.
domNode
,
"dijitMenuPassive"
);
},
onOpen
:
function
(
e
){
this
.
isShowingNow
=
true
;
this
.
_markActive
();
},
_markInactive
:
function
(){
this
.
isActive
=
false
;
dojo
.
removeClass
(
this
.
domNode
,
"dijitMenuActive"
);
dojo
.
addClass
(
this
.
domNode
,
"dijitMenuPassive"
);
},
onClose
:
function
(){
this
.
_stopFocusTimer
();
this
.
_markInactive
();
this
.
isShowingNow
=
false
;
this
.
parentMenu
=
null
;
},
_closeChild
:
function
(){
this
.
_stopPopupTimer
();
if
(
this
.
focusedChild
){
this
.
focusedChild
.
_setSelected
(
false
);
this
.
focusedChild
.
_onUnhover
();
this
.
focusedChild
=
null
;
}
if
(
this
.
currentPopup
){
dijit
.
popup
.
close
(
this
.
currentPopup
);
this
.
currentPopup
=
null
;
}
},
_onItemFocus
:
function
(
_12
){
if
(
this
.
_hoveredChild
&&
this
.
_hoveredChild
!=
_12
){
this
.
_hoveredChild
.
_onUnhover
();
}
},
_onBlur
:
function
(){
this
.
_cleanUp
();
this
.
inherited
(
arguments
);
},
_cleanUp
:
function
(){
this
.
_closeChild
();
if
(
typeof
this
.
isShowingNow
==
"undefined"
){
this
.
_markInactive
();
}
}});
dojo
.
declare
(
"dijit.Menu"
,
dijit
.
_MenuBase
,{
constructor
:
function
(){
this
.
_bindings
=
[];
},
templateString
:
dojo
.
cache
(
"dijit"
,
"templates/Menu.html"
,
"<table class=\"dijit dijitMenu dijitMenuPassive dijitReset dijitMenuTable\" waiRole=\"menu\" tabIndex=\"${tabIndex}\" dojoAttachEvent=\"onkeypress:_onKeyPress\">\n\t<tbody class=\"dijitReset\" dojoAttachPoint=\"containerNode\"></tbody>\n</table>\n"
),
targetNodeIds
:
[],
contextMenuForWindow
:
false
,
leftClickToOpen
:
false
,
refocus
:
true
,
_contextMenuWithMouse
:
false
,
postCreate
:
function
(){
if
(
this
.
contextMenuForWindow
){
this
.
bindDomNode
(
dojo
.
body
());
}
else
{
dojo
.
forEach
(
this
.
targetNodeIds
,
this
.
bindDomNode
,
this
);
}
var
k
=
dojo
.
keys
,
l
=
this
.
isLeftToRight
();
this
.
_openSubMenuKey
=
l
?
k
.
RIGHT_ARROW
:
k
.
LEFT_ARROW
;
this
.
_closeSubMenuKey
=
l
?
k
.
LEFT_ARROW
:
k
.
RIGHT_ARROW
;
this
.
connectKeyNavHandlers
([
k
.
UP_ARROW
],[
k
.
DOWN_ARROW
]);
},
_onKeyPress
:
function
(
evt
){
if
(
evt
.
ctrlKey
||
evt
.
altKey
){
return
;
}
switch
(
evt
.
charOrCode
){
case
this
.
_openSubMenuKey
:
this
.
_moveToPopup
(
evt
);
dojo
.
stopEvent
(
evt
);
break
;
case
this
.
_closeSubMenuKey
:
if
(
this
.
parentMenu
){
if
(
this
.
parentMenu
.
_isMenuBar
){
this
.
parentMenu
.
focusPrev
();
}
else
{
this
.
onCancel
(
false
);
}
}
else
{
dojo
.
stopEvent
(
evt
);
}
break
;
}
},
_iframeContentWindow
:
function
(
_13
){
var
win
=
dijit
.
getDocumentWindow
(
this
.
_iframeContentDocument
(
_13
))
||
this
.
_iframeContentDocument
(
_13
)[
"__parent__"
]
||
(
_13
.
name
&&
dojo
.
doc
.
frames
[
_13
.
name
])
||
null
;
return
win
;
},
_iframeContentDocument
:
function
(
_14
){
var
doc
=
_14
.
contentDocument
||
(
_14
.
contentWindow
&&
_14
.
contentWindow
.
document
)
||
(
_14
.
name
&&
dojo
.
doc
.
frames
[
_14
.
name
]
&&
dojo
.
doc
.
frames
[
_14
.
name
].
document
)
||
null
;
return
doc
;
},
bindDomNode
:
function
(
_15
){
_15
=
dojo
.
byId
(
_15
);
var
cn
;
if
(
_15
.
tagName
.
toLowerCase
()
==
"iframe"
){
var
_16
=
_15
,
win
=
this
.
_iframeContentWindow
(
_16
);
cn
=
dojo
.
withGlobal
(
win
,
dojo
.
body
);
}
else
{
cn
=
(
_15
==
dojo
.
body
()
?
dojo
.
doc
.
documentElement
:
_15
);
}
var
_17
=
{
node
:
_15
,
iframe
:
_16
};
dojo
.
attr
(
_15
,
"_dijitMenu"
+
this
.
id
,
this
.
_bindings
.
push
(
_17
));
var
_18
=
dojo
.
hitch
(
this
,
function
(
cn
){
return
[
dojo
.
connect
(
cn
,(
this
.
leftClickToOpen
)
?
"onclick"
:
"oncontextmenu"
,
this
,
function
(
evt
){
this
.
_openMyself
(
evt
,
cn
,
_16
);
}),
dojo
.
connect
(
cn
,
"onkeydown"
,
this
,
"_contextKey"
),
dojo
.
connect
(
cn
,
"onmousedown"
,
this
,
"_contextMouse"
)];
});
_17
.
connects
=
cn
?
_18
(
cn
)
:
[];
if
(
_16
){
_17
.
onloadHandler
=
dojo
.
hitch
(
this
,
function
(){
var
win
=
this
.
_iframeContentWindow
(
_16
);
cn
=
dojo
.
withGlobal
(
win
,
dojo
.
body
);
_17
.
connects
=
_18
(
cn
);
});
if
(
_16
.
addEventListener
){
_16
.
addEventListener
(
"load"
,
_17
.
onloadHandler
,
false
);
}
else
{
_16
.
attachEvent
(
"onload"
,
_17
.
onloadHandler
);
}
}
},
unBindDomNode
:
function
(
_19
){
var
_1a
;
try
{
_1a
=
dojo
.
byId
(
_19
);
}
catch
(
e
){
return
;
}
var
_1b
=
"_dijitMenu"
+
this
.
id
;
if
(
_1a
&&
dojo
.
hasAttr
(
_1a
,
_1b
)){
var
bid
=
dojo
.
attr
(
_1a
,
_1b
)
-
1
,
b
=
this
.
_bindings
[
bid
];
dojo
.
forEach
(
b
.
connects
,
dojo
.
disconnect
);
var
_1c
=
b
.
iframe
;
if
(
_1c
){
if
(
_1c
.
removeEventListener
){
_1c
.
removeEventListener
(
"load"
,
b
.
onloadHandler
,
false
);
}
else
{
_1c
.
detachEvent
(
"onload"
,
b
.
onloadHandler
);
}
}
dojo
.
removeAttr
(
_1a
,
_1b
);
delete
this
.
_bindings
[
bid
];
}
},
_contextKey
:
function
(
e
){
this
.
_contextMenuWithMouse
=
false
;
if
(
e
.
keyCode
==
dojo
.
keys
.
F10
){
dojo
.
stopEvent
(
e
);
if
(
e
.
shiftKey
&&
e
.
type
==
"keydown"
){
var
_1d
=
{
target
:
e
.
target
,
pageX
:
e
.
pageX
,
pageY
:
e
.
pageY
};
_1d
.
preventDefault
=
_1d
.
stopPropagation
=
function
(){
};
window
.
setTimeout
(
dojo
.
hitch
(
this
,
function
(){
this
.
_openMyself
(
_1d
);
}),
1
);
}
}
},
_contextMouse
:
function
(
e
){
this
.
_contextMenuWithMouse
=
true
;
},
_openMyself
:
function
(
e
,
_1e
,
_1f
){
if
(
this
.
leftClickToOpen
&&
e
.
button
>
0
){
return
;
}
dojo
.
stopEvent
(
e
);
var
x
,
y
;
if
(
dojo
.
isSafari
||
this
.
_contextMenuWithMouse
){
x
=
e
.
pageX
;
y
=
e
.
pageY
;
if
(
_1f
){
var
od
=
e
.
target
.
ownerDocument
,
ifc
=
dojo
.
position
(
_1f
,
true
),
win
=
this
.
_iframeContentWindow
(
_1f
),
_20
=
dojo
.
withGlobal
(
win
,
"_docScroll"
,
dojo
);
var
cs
=
dojo
.
getComputedStyle
(
_1f
),
tp
=
dojo
.
_toPixelValue
,
_21
=
(
dojo
.
isIE
&&
dojo
.
isQuirks
?
0
:
tp
(
_1f
,
cs
.
paddingLeft
))
+
(
dojo
.
isIE
&&
dojo
.
isQuirks
?
tp
(
_1f
,
cs
.
borderLeftWidth
)
:
0
),
top
=
(
dojo
.
isIE
&&
dojo
.
isQuirks
?
0
:
tp
(
_1f
,
cs
.
paddingTop
))
+
(
dojo
.
isIE
&&
dojo
.
isQuirks
?
tp
(
_1f
,
cs
.
borderTopWidth
)
:
0
);
x
+=
ifc
.
x
+
_21
-
_20
.
x
;
y
+=
ifc
.
y
+
top
-
_20
.
y
;
}
}
else
{
var
_22
=
dojo
.
position
(
e
.
target
,
true
);
x
=
_22
.
x
+
10
;
y
=
_22
.
y
+
10
;
}
var
_23
=
this
;
var
_24
=
dijit
.
getFocus
(
this
);
function
_25
(){
if
(
_23
.
refocus
){
dijit
.
focus
(
_24
);
}
dijit
.
popup
.
close
(
_23
);
};
dijit
.
popup
.
open
({
popup
:
this
,
x
:
x
,
y
:
y
,
onExecute
:
_25
,
onCancel
:
_25
,
orient
:
this
.
isLeftToRight
()
?
"L"
:
"R"
});
this
.
focus
();
this
.
_onBlur
=
function
(){
this
.
inherited
(
"_onBlur"
,
arguments
);
dijit
.
popup
.
close
(
this
);
};
},
uninitialize
:
function
(){
dojo
.
forEach
(
this
.
_bindings
,
function
(
b
){
if
(
b
){
this
.
unBindDomNode
(
b
.
node
);
}
},
this
);
this
.
inherited
(
arguments
);
}});
dojo
.
require
(
"dijit.MenuItem"
);
dojo
.
require
(
"dijit.PopupMenuItem"
);
dojo
.
require
(
"dijit.CheckedMenuItem"
);
dojo
.
require
(
"dijit.MenuSeparator"
);
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Apr 5, 15:40 (6 d, 1 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
24186
Default Alt Text
Menu.js (9 KB)
Attached To
rZEDHG ZedLegacy
Event Timeline
Log In to Comment