Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F391449
_SelectStackMixin.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Subscribers
None
_SelectStackMixin.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.form._SelectStackMixin"
]){
dojo
.
_hasResource
[
"dojox.form._SelectStackMixin"
]
=
true
;
dojo
.
provide
(
"dojox.form._SelectStackMixin"
);
dojo
.
declare
(
"dojox.form._SelectStackMixin"
,
null
,{
stackId
:
""
,
stackPrefix
:
""
,
_paneIdFromOption
:
function
(
_1
){
return
(
this
.
stackPrefix
||
""
)
+
_1
;
},
_optionValFromPane
:
function
(
id
){
var
sp
=
this
.
stackPrefix
;
if
(
sp
&&
id
.
indexOf
(
sp
)
===
0
){
return
id
.
substring
(
sp
.
length
);
}
return
id
;
},
_togglePane
:
function
(
_2
,
_3
){
if
(
_2
.
_shown
!=
undefined
&&
_2
.
_shown
==
_3
){
return
;
}
var
_4
=
dojo
.
filter
(
_2
.
getDescendants
(),
"return item.name;"
);
if
(
!
_3
){
_5
=
{};
dojo
.
forEach
(
_4
,
function
(
w
){
_5
[
w
.
id
]
=
w
.
disabled
;
w
.
attr
(
"disabled"
,
true
);
});
_2
.
_savedStates
=
_5
;
}
else
{
var
_5
=
_2
.
_savedStates
||
{};
dojo
.
forEach
(
_4
,
function
(
w
){
var
_6
=
_5
[
w
.
id
];
if
(
_6
==
undefined
){
_6
=
false
;
}
w
.
attr
(
"disabled"
,
_6
);
});
delete
_2
.
_savedStates
;
}
_2
.
_shown
=
_3
;
},
_connectTitle
:
function
(
_7
,
_8
){
var
fx
=
dojo
.
hitch
(
this
,
function
(
_9
){
this
.
updateOption
({
value
:
_8
,
label
:
_9
});
});
if
(
_7
.
_setTitleAttr
){
this
.
connect
(
_7
,
"_setTitleAttr"
,
fx
);
}
else
{
this
.
connect
(
_7
,
"attr"
,
function
(
_a
,
_b
){
if
(
_a
==
"title"
&&
arguments
.
length
>
1
){
fx
(
_b
);
}
});
}
},
onAddChild
:
function
(
_c
,
_d
){
if
(
!
this
.
_panes
[
_c
.
id
]){
this
.
_panes
[
_c
.
id
]
=
_c
;
var
v
=
this
.
_optionValFromPane
(
_c
.
id
);
this
.
addOption
({
value
:
v
,
label
:
_c
.
title
});
this
.
_connectTitle
(
_c
,
v
);
}
if
(
!
_c
.
onShow
||!
_c
.
onHide
||
_c
.
_shown
==
undefined
){
_c
.
onShow
=
dojo
.
hitch
(
this
,
"_togglePane"
,
_c
,
true
);
_c
.
onHide
=
dojo
.
hitch
(
this
,
"_togglePane"
,
_c
,
false
);
_c
.
onHide
();
}
},
_setValueAttr
:
function
(
v
){
if
(
"_savedValue"
in
this
){
return
;
}
this
.
inherited
(
arguments
);
},
attr
:
function
(
_e
,
_f
){
if
(
_e
==
"value"
&&
arguments
.
length
==
2
&&
"_savedValue"
in
this
){
this
.
_savedValue
=
_f
;
}
return
this
.
inherited
(
arguments
);
},
onRemoveChild
:
function
(
_10
){
if
(
this
.
_panes
[
_10
.
id
]){
delete
this
.
_panes
[
_10
.
id
];
this
.
removeOption
(
this
.
_optionValFromPane
(
_10
.
id
));
}
},
onSelectChild
:
function
(
_11
){
this
.
_setValueAttr
(
this
.
_optionValFromPane
(
_11
.
id
));
},
onStartup
:
function
(
_12
){
var
_13
=
_12
.
selected
;
this
.
addOption
(
dojo
.
filter
(
dojo
.
map
(
_12
.
children
,
function
(
c
){
var
v
=
this
.
_optionValFromPane
(
c
.
id
);
this
.
_connectTitle
(
c
,
v
);
var
_14
=
null
;
if
(
!
this
.
_panes
[
c
.
id
]){
this
.
_panes
[
c
.
id
]
=
c
;
_14
=
{
value
:
v
,
label
:
c
.
title
};
}
if
(
!
c
.
onShow
||!
c
.
onHide
||
c
.
_shown
==
undefined
){
c
.
onShow
=
dojo
.
hitch
(
this
,
"_togglePane"
,
c
,
true
);
c
.
onHide
=
dojo
.
hitch
(
this
,
"_togglePane"
,
c
,
false
);
c
.
onHide
();
}
if
(
"_savedValue"
in
this
&&
v
===
this
.
_savedValue
){
_13
=
c
;
}
return
_14
;
},
this
),
function
(
i
){
return
i
;
}));
var
_15
=
this
;
var
fx
=
function
(){
delete
_15
.
_savedValue
;
_15
.
onSelectChild
(
_13
);
if
(
!
_13
.
_shown
){
_15
.
_togglePane
(
_13
,
true
);
}
};
if
(
_13
!==
_12
.
selected
){
var
_16
=
dijit
.
byId
(
this
.
stackId
);
var
c
=
this
.
connect
(
_16
,
"_showChild"
,
function
(
sel
){
this
.
disconnect
(
c
);
fx
();
});
}
else
{
fx
();
}
},
postMixInProperties
:
function
(){
this
.
_savedValue
=
this
.
value
;
this
.
inherited
(
arguments
);
this
.
connect
(
this
,
"onChange"
,
"_handleSelfOnChange"
);
},
postCreate
:
function
(){
this
.
inherited
(
arguments
);
this
.
_panes
=
{};
this
.
_subscriptions
=
[
dojo
.
subscribe
(
this
.
stackId
+
"-startup"
,
this
,
"onStartup"
),
dojo
.
subscribe
(
this
.
stackId
+
"-addChild"
,
this
,
"onAddChild"
),
dojo
.
subscribe
(
this
.
stackId
+
"-removeChild"
,
this
,
"onRemoveChild"
),
dojo
.
subscribe
(
this
.
stackId
+
"-selectChild"
,
this
,
"onSelectChild"
)];
var
_17
=
dijit
.
byId
(
this
.
stackId
);
if
(
_17
&&
_17
.
_started
){
this
.
onStartup
({
children
:
_17
.
getChildren
(),
selected
:
_17
.
selectedChildWidget
});
}
},
destroy
:
function
(){
dojo
.
forEach
(
this
.
_subscriptions
,
dojo
.
unsubscribe
);
delete
this
.
_panes
;
this
.
inherited
(
"destroy"
,
arguments
);
},
_handleSelfOnChange
:
function
(
val
){
var
_18
=
this
.
_panes
[
this
.
_paneIdFromOption
(
val
)];
if
(
_18
){
var
s
=
dijit
.
byId
(
this
.
stackId
);
if
(
_18
==
s
.
selectedChildWidget
){
s
.
_transition
(
_18
);
}
else
{
s
.
selectChild
(
_18
);
}
}
}});
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Feb 22, 20:24 (1 d, 2 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25037
Default Alt Text
_SelectStackMixin.js (3 KB)
Attached To
rZED Zed
Event Timeline
Log In to Comment