<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Example 12: Setting Configuration Properties At Runtime</title>
<!-- Standard reset and fonts -->
<link rel="stylesheet" type="text/css" href="./build/reset/reset.css">
<link rel="stylesheet" type="text/css" href="./build/fonts/fonts.css">
<!-- Logger CSS -->
<link rel="stylesheet" type="text/css" href="./build/logger/assets/logger.css">
<!-- CSS for Menu -->
<link rel="stylesheet" type="text/css" href="./build/menu/assets/menu.css">
<!-- Page-specific styles -->
<style type="text/css">
body { margin:.5em; }
li.yuimenuitem a em {
font-style:italic;
}
li.yuimenuitem strong {
font-weight:bold;
}
p em {
text-decoration:underline;
}
#logs {
position:absolute;
bottom:0;
right:0;
}
.example12 {
background-color:#9c9;
}
</style>
<!-- Namespace source file -->
<script type="text/javascript" src="./build/yahoo/yahoo.js"></script>
<!-- Dependency source files -->
<script type="text/javascript" src="./build/event/event.js"></script>
<script type="text/javascript" src="./build/dom/dom.js"></script>
<!-- Logger source file -->
<script type="text/javascript" src="./build/logger/logger.js"></script>
<!-- Container source file -->
<script type="text/javascript" src="./build/container/container_core.js"></script>
<!-- Menu source file -->
<script type="text/javascript" src="./build/menu/menu.js"></script>
<!-- Page-specific script -->
<script type="text/javascript">
// "load" event handler for the window
YAHOO.example.onWindowLoad = function(p_oEvent) {
// "config change" event handler for each MenuItem instance
function onMenuItemConfigChange(p_sType, p_aArguments, p_oMenuItem) {
var sPropertyName = p_aArguments[0][0],
sPropertyValue = p_aArguments[0][1];
YAHOO.log(
(
"Index: " + this.index + ", " +
"Group Index: " + this.groupIndex + ", " +
"Custom Event Type: " + p_sType + ", " +
"\"" + sPropertyName + "\" Property Set To: \"" + sPropertyValue + "\""
),
"info",
"example12"
);
}
// Create a menu
var oMenu = new YAHOO.widget.Menu("basicmenu"),
// Add the MenuItem instance to the menu
aMenuItemData = [
"MenuItem 0",
"MenuItem 1",
"MenuItem 2",
"MenuItem 3",
"MenuItem 4",
"MenuItem 5"
],
nMenuItems = aMenuItemData.length,
oMenuItem;
for(var i=0; i<nMenuItems; i++) {
oMenuItem = oMenu.addItem(aMenuItemData[i]);
oMenuItem.cfg.configChangedEvent.subscribe(onMenuItemConfigChange, oMenuItem, true);
}
oMenu.render(document.body);
oMenu.show();
// Set the MenuItem configuration properties
oMenu.getItem(0).cfg.setProperty("selected", true);
oMenu.getItem(1).cfg.setProperty("disabled", true);
oMenu.getItem(2).cfg.setProperty("helptext", "Help Me!");
oMenu.getItem(3).cfg.setProperty("emphasis", true);
oMenu.getItem(4).cfg.setProperty("strongemphasis", true);
oMenu.getItem(5).cfg.setProperty("checked", true);
var oLogs = document.createElement("div");
oLogs.id = "logs";
document.body.appendChild(oLogs);
var oLogReader = new YAHOO.widget.LogReader("logs");
}
YAHOO.util.Event.addListener(window, "load", YAHOO.example.onWindowLoad);
</script>
</head>
<body>
<h1>Example 12: Setting Configuration Properties At Runtime</h1>
<p>This example demonstrates how to set MenuItem configuration properties at runtime and listen for the changes through the "configChangedEvent."</p>
</body>
</html>
|