📄 igf_menu.js
字号:
// (c) 2007 Infragistics - Do NOT modify the content of this file
// Version 8.1.20081.1004
if(ig){if(!ig.menu){function IgWebMenuPackage(){this.MENU_ITEM_APPEARANCE="MenuItem";this.ORIENTATION_HORIZONTAL="horizontal";this.PROP_ORIENTATION="oo";this.PROP_POPUP_MENU="opum";this.MENU_BAR_ITEM="MenuBarItem";this.TYPE_MENU="Menu";this.TYPE_MENU_ITEM="MenuItem";this.currentItem=null;this.getPopupMenu=function(forElmId){var mnu=null;var mnus=ig.getComponentsByType(this.TYPE_MENU);if(!ig.isNull(mnus)){for(var i=0;i<mnus.length;i++){var tmp=ig.getUIElementById(mnus[i]);if(!ig.isNull(tmp)&&tmp.isPopup()){mnu=tmp;break;}}}
return mnu;};this.init=function(){ig.addEventListener(document,ig.event.EVENT_CLICK,ig.menu.onClickOutside,false);ig.addEventListener(document,ig.event.EVENT_CONTEXTMENU,ig.menu.onContextMenu,false);ig.factory.addClass(ig.menu.TYPE_MENU,IgMenu);ig.factory.addClass(ig.menu.TYPE_MENU_ITEM,IgMenuItem);};this.onClickOutside=function(evt){var xEvt=ig.toEvent(evt);if(ig.isNull(xEvt)){return;}
var targetItem=ig.getTargetUIElement(xEvt.target,ig.menu.TYPE_MENU_ITEM);if(ig.isNull(targetItem)){ig.menu.setCurrentItem(null);ig.menu.setCurrentMenu(null);}};this.onContextMenu=function(evt){var xEvt=ig.toEvent(evt);if(ig.isNull(xEvt)){return;}
var targetItem=ig.getTargetUIElement(xEvt.target);var itemId=(!ig.isNull(targetItem))?targetItem.elm.id:null;var popup=ig.menu.getPopupMenu(itemId);if(!ig.isNull(popup)){ig.menu.setCurrentMenu(null);ig.menu.setCurrentItem(null);ig.menu.setCurrentMenu(popup);popup.show(xEvt.pageX,xEvt.pageY);xEvt.preventDefault();xEvt.stopPropagation();return false;}};this.onSelect=function(evt){return false;};this.getCurrentItem=function(){var t=ig.menu.currentItem;return ig.isOfType(t,ig.menu.TYPE_MENU_ITEM)?t:null;};this.setCurrentItem=function(e){var pci=ig.menu.getCurrentItem();ig.menu.currentItem=e;if(!ig.isNull(pci)){pci.repaint();}
if(!ig.isNull(e)){e.repaint();}};this.setCurrentMenu=function(m){var pm=ig.getUIElementById(ig.menu.currentMenu);if(!ig.isNull(pm)&&pm.isPopup()){pm.hide();}
ig.menu.currentMenu=(!ig.isNull(m))?m.elm.id:null;};};ig.menu=new IgWebMenuPackage();function IgMenu(e){this.IgUIComponent(e);};IgMenu.prototype.getOrientation=function(){return this.getAttribute(ig.menu.PROP_ORIENTATION);};IgMenu.prototype.getOnItemClick=function(){return this.getAttribute("ooicl");};IgMenu.prototype.hideAllItems=function(){var tmp=ig.menu.currentItem;if(!ig.isNull(tmp)){ig.menu.currentItem=null;tmp.unselect();}};IgMenu.prototype.isHorizontal=function(){return ig.isEqualsIgnoreCase(this.getOrientation(),ig.menu.ORIENTATION_HORIZONTAL);};IgMenu.prototype.isPopup=function(){return ig.NaES(this.getAttribute(ig.menu.PROP_POPUP_MENU));};IgMenu.prototype.onFocus=function(){var fc=this.getFirstChild(true);if(!ig.isNull(fc)){fc.focus();}};IgMenu.prototype.repaint=function(){};ig.augment(IgMenu,IgUIComponent);function IgMenuItem(e){this.IgUIElement(e);};IgMenuItem.prototype.applyClass=function(){var css=this.getClass();if(this.isHorizontal()){if(this.elm.className!=css){this.elm.className=css;}}
else{if(this.elm.cells[0].className!=(css+" owmxpc owmc")){this.elm.cells[0].className=css+" owmxpc owmc";this.elm.cells[1].className=css+" owmxpc owmi";this.elm.cells[2].className=css+" owml";this.elm.cells[3].className=css+" owmm";}}};IgMenuItem.prototype.click=function(){};IgMenuItem.prototype.expand=function(){this.showSubmenu();};IgMenuItem.prototype.focus=function(){this.onMouseEnter();var links=this.elm.getElementsByTagName("a");if(links.length>0){links[0].focus();}};IgMenuItem.prototype.focusFirstChild=function(){var r=this.getFirstChild(true);if(!ig.isNull(r)){r.focus();}};IgMenuItem.prototype.focusNextSibling=function(){var r=this.getNextSibling(true);if(ig.isNull(r)){r=this.getFirstSibling(true);}
if(!ig.isNull(r)){r.focus();}};IgMenuItem.prototype.focusPreviousSibling=function(){var r=this.getPreviousSibling(true);if(ig.isNull(r)){r=this.getLastSibling(true);}
if(!ig.isNull(r)){r.focus();}};IgMenuItem.prototype.getChildContainer=function(){return ig.getUIElementById(this.getId()+"_cc","Popup");};IgMenuItem.prototype.getDefaultClass=function(){var s=this.getAttribute(ig.PROP_DEFAULT_CLASS);if((!ig.NaES(s))&&this.isRootNode()&&this.isHorizontal()){s=this.getAttribute(ig.PROP_DEFAULT_CLASS,true,ig.menu.MENU_BAR_ITEM);}
if(!ig.NaES(s)){s=this.getAttribute(ig.PROP_DEFAULT_CLASS,true,ig.menu.MENU_ITEM_APPEARANCE);}
return s;};IgMenuItem.prototype.getHoverClass=function(){var s=this.getAttribute(ig.PROP_HOVER_CLASS);if((!ig.NaES(s))&&this.isRootNode()&&this.isHorizontal()){s=this.getAttribute(ig.PROP_HOVER_CLASS,true,ig.menu.MENU_BAR_ITEM);}
if(!ig.NaES(s)){s=this.getAttribute(ig.PROP_HOVER_CLASS,true,ig.menu.MENU_ITEM_APPEARANCE);}
return s;};IgMenuItem.prototype.getHoverIcon=function(){return this.getAttribute("ohi");};IgMenuItem.prototype.getIcon=function(){return this.getAttribute("oi");};IgMenuItem.prototype.getItemIcon=function(){var icon="";if(this.isHovered()){icon=this.getHoverIcon();}
else{icon=this.getIcon();}
return icon;};IgMenuItem.prototype.getParentMenu=function(){var result=null;var p=this.getParentSibling();if(!ig.isNull(p)){result=p.getChildContainer();}
else{result=this.getMenu();}
return result;};IgMenuItem.prototype.getSelectedClass=function(){var s=this.getAttribute(ig.PROP_SELECTED_CLASS);if((!ig.NaES(s))&&this.isRootNode()&&this.isHorizontal()){s=this.getAttribute(ig.PROP_SELECTED_CLASS,true,ig.menu.MENU_BAR_ITEM);}
if(!ig.NaES(s)){s=this.getAttribute(ig.PROP_SELECTED_CLASS,true,ig.menu.MENU_ITEM_APPEARANCE);}
return s;};IgMenuItem.prototype.getMenu=function(){var r=this.getParentComponent();if(!ig.isOfType(r,ig.menu.TYPE_MENU)){r=null;}
return r;};IgMenuItem.prototype.hideSubmenu=function(){var he=ig.menu.getCurrentItem();if(!this.isAncestor(he)){this.collapse();var pn=this.getParentSibling();if(!ig.isNull(pn)){pn.repaint();}}};IgMenuItem.prototype.isHorizontal=function(){return(this.getMenu().isHorizontal()&&this.isRootNode());};IgMenuItem.prototype.isHovered=function(){return this.isAncestor(ig.menu.getCurrentItem());};IgMenuItem.prototype.isRootNode=function(){return ig.isNull(this.getParentSibling());};IgMenuItem.prototype.onKeyDown=function(evt){if(this.isEnabled()){var bIsRootNode=this.isRootNode();if(this.isHorizontal()){switch(evt.keyCode){case evt.KEY_LEFT:this.focusPreviousSibling();evt.preventDefault();break;case evt.KEY_RIGHT:this.focusNextSibling();evt.preventDefault();break;case evt.KEY_UP:this.expand();this.focusFirstChild();evt.preventDefault();break;case evt.KEY_DOWN:this.expand();this.focusFirstChild();evt.preventDefault();break;case evt.KEY_ESCAPE:if(this.isExpanded()){this.collapse();}
else{ig.menu.setCurrentItem(null);}
evt.preventDefault();break;}}
else{switch(evt.keyCode){case evt.KEY_LEFT:var tmpParent1=this.getParentSibling();if(!ig.isNull(tmpParent1)&&tmpParent1.isHorizontal()){tmpParent1.focusPreviousSibling();}
else{if(this.isExpanded()){this.collapse();}
else{this.selectParentItem();}}
evt.preventDefault();break;case evt.KEY_RIGHT:if(this.hasChild()){this.expand();this.focusFirstChild();}
else{var tmpParent2=this.getParentSibling();if(!ig.isNull(tmpParent2)&&tmpParent2.isHorizontal()){tmpParent2.focusNextSibling();}}
evt.preventDefault();break;case evt.KEY_UP:this.focusPreviousSibling();evt.preventDefault();break;case evt.KEY_DOWN:this.focusNextSibling();evt.preventDefault();break;case evt.KEY_ESCAPE:if(this.isExpanded()){this.collapse();}
else{if(!bIsRootNode){this.selectParentItem();}
else{ig.menu.setCurrentItem(null);}}
evt.preventDefault();break;}}}};IgMenuItem.prototype.onMouseEnter=function(evt){if(!this.isHovered()){ig.menu.setCurrentItem(this);this.expand();}};IgMenuItem.prototype.onMouseLeave=function(evt){};IgMenuItem.prototype.repaint=function(){this.callSuper("IgUIElement","repaint");this.updateIcon(this.getItemIcon());this.hideSubmenu();};IgMenuItem.prototype.selectParentItem=function(){var parent=this.getParentSibling();if(!ig.isNull(parent)){parent.collapse();parent.focus();}};IgMenuItem.prototype.showSubmenu=function(){var subMenu=this.getChildContainer();if(ig.isNull(subMenu)){return;}
var x,y,x2,y2;if(this.isHorizontal()){var pos=this.getPagePosition();x=pos.x;y=pos.y+this.getHeight();}
else{var parentMenu=this.getParentMenu();var ppos=parentMenu.getPagePosition();x=ppos.x+parentMenu.getWidth();x2=ppos.x-subMenu.getWidth();y=this.getPagePosition().y;}
subMenu.show(x,y,x2);};IgMenuItem.prototype.updateIcon=function(i){if(ig.NaES(i)){var icon=ig.getUIElementById(this.elm.id+"i");if(!ig.isNull(icon)&&icon.elm.src!=i){icon.elm.src=i;}}};ig.augment(IgMenuItem,IgUIElement);ig.menu.init();}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -