/** * @provides javelin-behavior-phui-dropdown-menu * @requires javelin-behavior * javelin-stratcom * javelin-dom * phuix-dropdown-menu */ JX.behavior('phui-dropdown-menu', function() { JX.Stratcom.listen('click', 'phui-dropdown-menu', function(e) { var data = e.getNodeData('phui-dropdown-menu'); if (data.menu) { return; } e.kill(); var list; var placeholder; if (data.items) { list = JX.$H(data.items).getFragment().firstChild; } else { list = JX.$(data.menuID); placeholder = JX.$N('span'); } var icon = e.getNode('phui-dropdown-menu'); data.menu = new JX.PHUIXDropdownMenu(icon); data.menu.listen('open', function() { if (placeholder) { JX.DOM.replace(list, placeholder); } data.menu.setContent(list); }); data.menu.listen('close', function() { if (placeholder) { JX.DOM.replace(placeholder, list); } }); data.menu.open(); }); });