igf_dialogwindow.js

来自「一个JSF的商业组件的DEMO,infragistics-netadvantag」· JavaScript 代码 · 共 65 行 · 第 1/2 页

JS
65
字号
// (c) 2007 Infragistics - Do NOT modify the content of this file
// Version 8.1.20081.1004

if(ig){if(!ig.dw){function IgWebDialogWindowPackage(){this.TYPE_DIALOG_WINDOW="DialogWindow";this.TYPE_DIALOG_WINDOW_RESIZER="DialogWindowResizer";this.STATE_NORMAL=0;this.STATE_MINIMIZED=1;this.STATE_MAXIMIZED=2;this.STATE_HIDDEN=3;this.EVENT_SS_MOVED="dwMoved";this.EVENT_SS_RESIZED="dwResized";this.EVENT_SS_STATE_CHANGED="dwStateChanged";this.IMG_STATE_NORMAL=0;this.IMG_STATE_HOVER=1;this.IMG_STATE_ACTIVE=2;this.mouseHandlerAdded=false;this.moveWindow=null;this.nextZIndex=0;this.nextZIndexModal=1000;this.dialogWindows=[];this.activeDialogWindow=null;this.moveOccured=false;this.moveStartX=0;this.moveStartY=0;this.moveDiffX=0;this.moveDiffY=0;this.resizeOccured=false;this.resizeStartW=0;this.resizeStartH=0;this.resizeStartX=0;this.resizeStartY=0;this.maintainLocX=ig.getScrollLeft();this.maintainLocY=ig.getScrollTop();this.maintainLocDialogs=[];this.init=function(){ig.factory.addClass(ig.dw.TYPE_DIALOG_WINDOW,IgDialogWindow);ig.factory.addClass(ig.dw.TYPE_DIALOG_WINDOW_RESIZER,IgDialogWindowResizer);};this.setStartZIndexes=function(forNonModal,forModal){this.nextZIndex=forNonModal;this.nextZIndexModal=forModal;}
this.initDialogWindow=function(id,modal,minimizedWidth,centered,initialState,movable,resizerEnabled,modalBackground,pinWhenMinimized,maintainLocationOnScroll,minW,minH,maxW,maxH,postBackOnMove,postBackOnResize,postBackOnStateChange,clientSideListeners){var igElm=ig.getTargetUIElement(id,ig.dw.TYPE_DIALOG_WINDOW);if(!ig.isNull(igElm)){igElm.init(modal,minimizedWidth,centered,initialState,movable,resizerEnabled,modalBackground,pinWhenMinimized,maintainLocationOnScroll,minW,minH,maxW,maxH,postBackOnMove,postBackOnResize,postBackOnStateChange,clientSideListeners);}};this.initDialogWindowResizer=function(id,parentDw){var igElm=ig.getTargetUIElement(id,ig.dw.TYPE_DIALOG_WINDOW_RESIZER);if(!ig.isNull(igElm)){igElm.init(parentDw);}};this.resizeInternals=function(jsNode){var resizerDiv=jsNode.elm.firstChild;var resizerDivJs=new IgDomNode(resizerDiv);var headerDiv=resizerDiv.nextSibling;var headerDivTable=headerDiv.firstChild;var contentDiv=headerDiv.nextSibling;var newContentHeight=ig.toFloat(jsNode.elm.style.height)-headerDiv.offsetHeight;headerDivTable.style.height=headerDiv.offsetHeight+"px";contentDiv.style.height=newContentHeight+"px";var tableRow1=contentDiv.firstChild.firstChild.firstChild;var tableRow2=tableRow1.nextSibling;var leftCell=tableRow1.firstChild;var contentCell=leftCell.nextSibling;var contentCellDiv=contentCell.firstChild;var rightCell=contentCell.nextSibling;var tableRow2Cell1=tableRow2.firstChild;var tableRow2Cell1Height=0;if(tableRow2Cell1.currentStyle){tableRow2Cell1Height=tableRow2Cell1.currentStyle.height;}else{tableRow2Cell1Height=tableRow2Cell1.offsetHeight;}
var contentCellHeight=newContentHeight-ig.toFloat(tableRow2Cell1Height);contentCell.style.height=contentCellHeight+"px";var contentCellDivAsJsNode=new IgUIElement(contentCellDiv);var totalVerToCut=0;totalVerToCut=totalVerToCut+contentCellDivAsJsNode.getMargin("top");totalVerToCut=totalVerToCut+contentCellDivAsJsNode.getMargin("bottom");totalVerToCut=totalVerToCut+contentCellDivAsJsNode.getBorder("top");totalVerToCut=totalVerToCut+contentCellDivAsJsNode.getBorder("bottom");totalVerToCut=totalVerToCut+contentCellDivAsJsNode.getPadding("top");totalVerToCut=totalVerToCut+contentCellDivAsJsNode.getPadding("bottom");contentCellDiv.style.height=(contentCellHeight-totalVerToCut)+"px";if(resizerDiv.firstChild){var resizerDivImgJs=new IgDomNode(resizerDiv.firstChild);var newResizerLeft=jsNode.getWidth()-jsNode.getBorder('left')-resizerDivImgJs.getWidth();var newResizerTop=jsNode.getHeight()-jsNode.getBorder('top')-resizerDivImgJs.getHeight();resizerDivJs.setPosition(newResizerLeft,newResizerTop);}};this.getDwJsNodeById=function(winId){var result=null;for(i=0;i<ig.dw.dialogWindows.length;i++){if(ig.dw.dialogWindows[i].elm.id==winId){return ig.dw.dialogWindows[i];}}
return null;};this.activate=function(winId){var newTopWindow=ig.dw.getDwJsNodeById(winId);if(newTopWindow!=null&&!newTopWindow.igModal){if(newTopWindow.elm.style.zIndex==ig.dw.nextZIndex-1)return;for(i=0;i<ig.dw.dialogWindows.length;i++){if(ig.dw.dialogWindows[i].elm.style.zIndex>newTopWindow.elm.style.zIndex){ig.dw.dialogWindows[i].elm.style.zIndex=ig.dw.dialogWindows[i].elm.style.zIndex-1;}}
newTopWindow.elm.style.zIndex=ig.dw.nextZIndex-1;ig.dw.activeDialogWindow=newTopWindow;}};this.headerMouseOver=function(winId,evt){var jsNode=ig.dw.getDwJsNodeById(winId);jsNode._raiseClientEvent("HeaderMouseOver","MouseOver",evt,null);};this.headerMouseOut=function(winId,evt){var jsNode=ig.dw.getDwJsNodeById(winId);jsNode._raiseClientEvent("HeaderMouseOut","MouseOut",evt,null);};this.resizerMouseOver=function(winId,evt){var jsNode=ig.dw.getDwJsNodeById(winId);jsNode._raiseClientEvent("ResizerMouseOver","MouseOver",evt,null);};this.resizerMouseOut=function(winId,evt){var jsNode=ig.dw.getDwJsNodeById(winId);jsNode._raiseClientEvent("ResizerMouseOut","MouseOut",evt,null);};this.beginMove=function(winId,evt){var jsNode=ig.dw.getDwJsNodeById(winId);if(jsNode!=null&&jsNode.igMovable&&jsNode.igState!=ig.dw.STATE_MAXIMIZED){if(jsNode.igState==ig.dw.STATE_MINIMIZED&&jsNode.igPinWhenMinimized)return;ig.dw.moveStartX=ig.toFloat(jsNode.elm.style.left);ig.dw.moveStartY=ig.toFloat(jsNode.elm.style.top);ig.dw.moveDiffX=ig.ui.x-ig.dw.moveStartX;ig.dw.moveDiffY=ig.ui.y-ig.dw.moveStartY;ig.dw.moveWindow=jsNode;jsNode._raiseClientEvent("HeaderMouseDown","MouseDown",evt,null);var ourEvent=ig.toEvent(evt);ourEvent.preventDefault();}};this.endMove=function(evt){if(ig.dw.moveWindow!=null){var oldX=ig.dw.moveStartX;var oldY=ig.dw.moveStartY;var newX=ig.ui.x-ig.dw.moveDiffX;var newY=ig.ui.y-ig.dw.moveDiffY;var args=null;if(ig.dw.moveOccured){args=ig.dw.moveWindow._raiseClientEvent("Moved","Move",evt,ig.dw.moveWindow.igPostBackOnMove?1:0,newX,newY,oldX,oldY);ig.dw.moveOccured=false;}
if(args!=null&&args.get_cancel()){ig.dw.moveWindow.elm.style.left=oldX+"px";ig.dw.moveWindow.elm.style.top=oldY+"px";}else{ig.dw.moveWindow.elm.style.left=newX+"px";ig.dw.moveWindow.elm.style.top=newY+"px";}
if((args==null&&ig.dw.moveWindow.igPostBackOnMove)||(args!=null&&args.get_postBack()==1)){var compId=ig.dw.moveWindow.elm.id;var evtName=ig.dw.EVENT_SS_MOVED;var evtArgs="ox:"+oldX+";oy:"+oldX+";x:"+newX+";y:"+newY;ig.smartSubmit(compId,evtName,evtArgs,null,null);}
ig.dw.moveWindow._raiseClientEvent("HeaderMouseUp","MouseUp",evt,null);ig.dw.moveWindow=null;var ourEvent=ig.toEvent(evt);ourEvent.preventDefault();}};this.handleMouseMove=function(evt){if(ig.dw.moveWindow!=null){var oldX=ig.toFloat(ig.dw.moveWindow.elm.style.left);var oldY=ig.toFloat(ig.dw.moveWindow.elm.style.top);var newX=evt.clientX-ig.dw.moveDiffX;var newY=evt.clientY-ig.dw.moveDiffY;var eventCanceled=false;var args=ig.dw.moveWindow._raiseClientEvent("Moving","Move",evt,null,newX,newY,oldX,oldY);if(args!=null&&args.get_cancel())eventCanceled=true;if(!eventCanceled){ig.dw.moveWindow.elm.style.left=newX+"px";ig.dw.moveWindow.elm.style.top=newY+"px";ig.dw.moveOccured=true;}
var ourEvent=ig.toEvent(evt);ourEvent.preventDefault();}};this.minWin=function(winId,event){var jsNode=ig.dw.getDwJsNodeById(winId);if(jsNode!=null){if(jsNode.igState==ig.dw.STATE_NORMAL||jsNode.igState==ig.dw.STATE_MAXIMIZED){jsNode.set_windowState(ig.dw.STATE_MINIMIZED);}else{jsNode.set_windowState(ig.dw.STATE_NORMAL);}}};this.maxWin=function(winId,event){var jsNode=ig.dw.getDwJsNodeById(winId);if(jsNode!=null){if(jsNode.igState==ig.dw.STATE_NORMAL||jsNode.igState==ig.dw.STATE_MINIMIZED){jsNode.set_windowState(ig.dw.STATE_MAXIMIZED);}else{jsNode.set_windowState(ig.dw.STATE_NORMAL);}}};this.closeWin=function(winId,event){var jsNode=ig.dw.getDwJsNodeById(winId);if(jsNode!=null){jsNode.set_windowState(ig.dw.STATE_HIDDEN);}};this.maintainLocationHandler=function(){var dX=ig.getScrollLeft()-ig.dw.maintainLocX;var dY=ig.getScrollTop()-ig.dw.maintainLocY;if(dX!=0||dY!=0){for(i=0;i<ig.dw.maintainLocDialogs.length;i++){var newX=ig.toFloat(ig.dw.maintainLocDialogs[i].elm.style.left)+dX;var newY=ig.toFloat(ig.dw.maintainLocDialogs[i].elm.style.top)+dY;ig.dw.maintainLocDialogs[i].elm.style.left=newX+"px";ig.dw.maintainLocDialogs[i].elm.style.top=newY+"px";}
ig.dw.maintainLocX=ig.getScrollLeft();ig.dw.maintainLocY=ig.getScrollTop();}};this.setImageSources=function(imgId,normal,hover,active,altNormal,altHover,altActive,text,altText){var el=ig.getElementById(imgId);if(el!=null){el.igImgAltMode=false;el.igImgNormal=normal;el.igImgHover=hover;el.igImgActive=active;el.igImgAltNormal=altNormal;el.igImgAltHover=altHover;el.igImgAltActive=altActive;el.igText=text;el.igAltText=altText;}};this.setImageAltMode=function(imgId,altMode){var el=ig.getElementById(imgId);if(el!=null){el.igImgAltMode=altMode;}};this.setImageState=function(imgId,newState){var el=ig.getElementById(imgId);if(el!=null){if(newState==ig.dw.IMG_STATE_NORMAL){if(el.igImgAltMode){el.src=el.igImgAltNormal;el.alt=el.igAltText;}else{el.src=el.igImgNormal;el.alt=el.igText;}}else
if(newState==ig.dw.IMG_STATE_HOVER){if(el.igImgAltMode){el.src=el.igImgAltHover;el.alt=el.igAltText;}else{el.src=el.igImgHover;el.alt=el.igText;}}else
if(newState==ig.dw.IMG_STATE_ACTIVE){if(el.igImgAltMode){el.src=el.igImgAltActive;el.alt=el.igAltText;}else{el.src=el.igImgActive;el.alt=el.igText;}}}};};ig.dw=new IgWebDialogWindowPackage();function IgDialogWindow(e){this.IgUIComponent(e);};IgDialogWindow.prototype.init=function(modal,minimizedWidth,centered,initialState,movable,resizerEnabled,modalBackground,pinWhenMinimized,maintainLocationOnScroll,minW,minH,maxW,maxH,postBackOnMove,postBackOnResize,postBackOnStateChange,clientSideListeners){if(!ig.dw.mouseHandlerAdded){if(ig.isBrowser("msie",null)){ig.addEventListener(document.body,ig.event.EVENT_MOUSEMOVE,ig.dw.handleMouseMove,false);}else{ig.addEventListener(window,ig.event.EVENT_MOUSEMOVE,ig.dw.handleMouseMove,false);}
ig.dw.mouseHandlerAdded=true;}
if(minW>0)this.igResizerMinWidth=minW;if(minH>0)this.igResizerMinHeight=minH;if(maxW>0)this.igResizerMaxWidth=maxW;if(maxH>0)this.igResizerMaxHeight=maxH;this.igPostBackOnMove=postBackOnMove;this.igPostBackOnResize=postBackOnResize;this.igPostBackOnStateChange=postBackOnStateChange;this.igModal=modal;if(modal){if(ig.isBrowser("msie",null)){this.igModalLayer=document.createElement("iframe");this.igModalLayer.frameBorder="no";this.igModalLayer.className=modalBackground;var theParent=this.elm.parentNode;theParent.insertBefore(this.igModalLayer,this.elm);var fogListener=this.igModalLayer.contentWindow.document;ig.addEventListener(fogListener,ig.event.EVENT_MOUSEMOVE,ig.dw.handleMouseMove,false);}else{this.igModalLayer=document.createElement("div");var theParent=this.elm.parentNode;theParent.appendChild(this.igModalLayer);this.igModalLayer.className=modalBackground;}
this.igModalLayer.style.zIndex=ig.dw.nextZIndexModal;ig.dw.nextZIndexModal++;this.elm.style.zIndex=ig.dw.nextZIndexModal;ig.dw.nextZIndexModal++;}else{this.elm.style.zIndex=ig.dw.nextZIndex;ig.dw.nextZIndex++;}
ig.dw.dialogWindows.push(this);ig.dw.activeDialogWindow=this;ig.dw.resizeInternals(this);this.igResizerEnabled=resizerEnabled;if(!this.igResizerMinWidth)this.igResizerMinWidth=100;if(!this.igResizerMinHeight)this.igResizerMinHeight=60;if(!this.igResizerMaxWidth)this.igResizerMaxWidth=0;if(!this.igResizerMaxHeight)this.igResizerMaxHeight=0;this.igRestoreLeft=0;this.igRestoreTop=0;this.igRestoreWidth=300;this.igRestoreHeight=200;this.igStateOld=ig.dw.STATE_NORMAL;this.igState=ig.dw.STATE_NORMAL;this.igMinimizedWidth=minimizedWidth+"px";this.igMovable=movable;this.igPinWhenMinimized=pinWhenMinimized;this.igMaintainLocationOnScroll=maintainLocationOnScroll;if(this.igMaintainLocationOnScroll){if(ig.dw.maintainLocDialogs.length==0){ig.addEventListener(window,ig.event.EVENT_SCROLL,ig.dw.maintainLocationHandler,false);}
ig.dw.maintainLocDialogs.push(this);}
if(centered){var screenWidth=ig.getClientWidth();var screenHeight=ig.getClientHeight();var dialogWidth=this.elm.offsetWidth;var dialogHeight=this.elm.offsetHeight;if(screenWidth&&screenHeight&&dialogWidth&&dialogHeight){var newLeft=(screenWidth-dialogWidth)/2;var newTop=(screenHeight-dialogHeight)/2;this.elm.style.left=newLeft+"px";this.elm.style.top=newTop+"px";}
this.igInitialPosition=1;}else{this.igInitialPosition=0;}
if(initialState==ig.dw.STATE_NORMAL){}else
if(initialState==ig.dw.STATE_MINIMIZED){this._toMin();this.igState=ig.dw.STATE_MINIMIZED;}else
if(initialState==ig.dw.STATE_MAXIMIZED){this._toMax();this.igState=ig.dw.STATE_MAXIMIZED;}else
if(initialState==ig.dw.STATE_HIDDEN){this.igState=ig.dw.STATE_HIDDEN;this._hide();}
this._initClientEventsForObject(this,clientSideListeners);var args=this.__raiseClientEvent("Initialize");};IgDialogWindow.prototype.__raiseClientEvent=function(clientEventName,evntArgs,eventArgsParams){var args=null;var clientEvent=this._clientEvents[clientEventName];if(clientEvent!=null){if(evntArgs==null){args=new $IG.EventArgs();}else{args=new evntArgs(eventArgsParams);}
args=this._raiseSenderClientEvent(this,clientEvent,args);}
return args;};IgDialogWindow.prototype._show=function(){if(this.igModal&&this.igModalLayer!=null){this.igModalLayer.style.visibility="visible";}
this.elm.style.visibility="visible";var elContent=ig.getElementById(this.elm.id+"_c");if(elContent!=null){elContent.style.display="block";elContent.style.visibility="visible";}
var elResizer=ig.getElementById(this.elm.id+"_r");if(elResizer!=null){elResizer.style.display="block";elResizer.style.visibility="visible";}};IgDialogWindow.prototype._hide=function(){if(this.igModal&&this.igModalLayer!=null){this.igModalLayer.style.visibility="hidden";if(this.igModalLayerDiv){}}
this.elm.style.visibility="hidden";var elContent=ig.getElementById(this.elm.id+"_c");if(elContent!=null){elContent.style.display="none";elContent.style.visibility="hidden";}
var elResizer=ig.getElementById(this.elm.id+"_r");if(elResizer!=null){elResizer.style.display="none";elResizer.style.visibility="hidden";}};IgDialogWindow.prototype.get_moveable=function(){return this.igMovable;};IgDialogWindow.prototype.get_maintainLocationOnScroll=function(){return this.igMaintainLocationOnScroll;};IgDialogWindow.prototype.get_initialLocation=function(){return this.igInitialPosition;};IgDialogWindow.prototype.set_initialLocation=function(initialPosition){this.igInitialPosition=initialPosition;};IgDialogWindow.prototype.get_windowState=function(){return this.igState;};IgDialogWindow.prototype.get_left=function(){return this.elm.style.left;};IgDialogWindow.prototype.set_left=function(value){this.elm.style.left=value;};IgDialogWindow.prototype.get_top=function(){return this.elm.style.top;};IgDialogWindow.prototype.set_top=function(value){this.elm.style.top=value;};IgDialogWindow.prototype.get_width=function(){return this.elm.style.width;};IgDialogWindow.prototype.set_width=function(value){this.elm.style.width=value;ig.dw.resizeInternals(this);};IgDialogWindow.prototype.get_height=function(){return this.elm.style.height;};IgDialogWindow.prototype.set_height=function(value){this.elm.style.height=value;ig.dw.resizeInternals(this);};IgDialogWindow.prototype.set_windowState=function(newState){if(newState==this.igState)return;if(newState==ig.dw.STATE_NORMAL){var normCanceled=false;var args=this._raiseClientEvent("StateChanging","WindowStateCancel",null,null,this.igState,ig.dw.STATE_NORMAL);normCanceled=args!=null&&args.get_cancel();if(!normCanceled){if(this.igState==ig.dw.STATE_HIDDEN){this._show();}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?