Files
2019-08-30 09:13:39 -07:00

1 line
13 KiB
JavaScript

Type.registerNamespace("Sys.Extended.UI");Sys.Extended.UI.ResizableControlBehavior=function(n){Sys.Extended.UI.ResizableControlBehavior.initializeBase(this,[n]);this._handleCssClass="";this._resizableCssClass="";this._handleOffsetX=0;this._handleOffsetY=0;this._minimumWidth=0;this._minimumHeight=0;this._maximumWidth=1e5;this._maximumHeight=1e5;this._frame=null;this._handle=null;this._handleHolder=null;this._lining=null;this._tracking=!1;this._lastClientX=0;this._lastClientY=0;this._onmouseoverDelegate=null;this._onmouseoutDelegate=null;this._onmousedownDelegate=null;this._onmousemoveDelegate=null;this._onmouseupDelegate=null;this._onselectstartDelegate=null};Sys.Extended.UI.ResizableControlBehavior.prototype={initialize:function(){var n,t;Sys.Extended.UI.ResizableControlBehavior.callBaseMethod(this,"initialize");this._frame=this.get_element();n=Sys.Extended.UI.ResizableControlBehavior.callBaseMethod(this,"get_ClientState");n&&-1!=n.indexOf(",")&&(t=n.split(","),this._frame.style.width=t[0]+"px",this._frame.style.height=t[1]+"px");this._lining=document.createElement("DIV");this._lining.style.width=$common.getCurrentStyle(this._frame,"width");this._lining.style.height=$common.getCurrentStyle(this._frame,"height");this._lining.style.position="absolute";this._lining.style.backgroundColor="black";this._lining.style.opacity="0";this._lining.style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity=0)";this._lining.style.visibility="hidden";this._frame.insertBefore(this._lining,this._frame.firstChild);this._handleHolder=document.createElement("DIV");this._handleHolder.style.width="0px";this._handleHolder.style.height="0px";this._handleHolder.style.position=Sys.Browser.agent===Sys.Browser.Opera?"relative":"absolute";this._frame.insertBefore(this._handleHolder,this._frame.firstChild);this._handle=document.createElement("DIV");this._handle.className=this._handleCssClass;this._handle.style.position="absolute";this._handleHolder.appendChild(this._handle);this._onmouseoverDelegate=Function.createDelegate(this,this._onmouseover);$addHandler(this._handle,"mouseover",this._onmouseoverDelegate);this._onmouseoutDelegate=Function.createDelegate(this,this._onmouseout);$addHandler(this._handle,"mouseout",this._onmouseoutDelegate);this._onmousedownDelegate=Function.createDelegate(this,this._onmousedown);$addHandler(this._handle,"mousedown",this._onmousedownDelegate);this._onmousemoveDelegate=Function.createDelegate(this,this._onmousemove);this._onmouseupDelegate=Function.createDelegate(this,this._onmouseup);this._onselectstartDelegate=Function.createDelegate(this,this._onselectstart);this._resizeControl(0,0,0,0);this._rememberSize()},dispose:function(){this._onmouseoverDelegate&&($removeHandler(this._handle,"mouseover",this._onmouseoverDelegate),this._onmouseoverDelegate=null);this._onmouseoutDelegate&&($removeHandler(this._handle,"mouseout",this._onmouseoutDelegate),this._onmouseoutDelegate=null);this._onmousedownDelegate&&($removeHandler(this._handle,"mousedown",this._onmousedownDelegate),this._onmousedownDelegate=null);this._onmousemoveDelegate&&(this.tracking&&$removeHandler(document,"mousemove",this._onmousemoveDelegate),this._onmousemoveDelegate=null);this._onmouseupDelegate&&(this.tracking&&$removeHandler(document,"mouseup",this._onmouseupDelegate),this._onmouseupDelegate=null);this._onselectstartDelegate&&(this.tracking&&($removeHandler(document,"selectstart",this._onselectstartDelegate),Sys.Browser.agent===Sys.Browser.Opera&&$removeHandler(document,"mousedown",this._onselectstartDelegate)),this._onselectstartDelegate=null);Sys.Extended.UI.ResizableControlBehavior.callBaseMethod(this,"dispose")},_onmouseover:function(){Sys.UI.DomElement.addCssClass(this._frame,this._resizableCssClass)},_onmouseout:function(){this._tracking||Sys.UI.DomElement.removeCssClass(this._frame,this._resizableCssClass)},_onmousedown:function(n){n||(n=event);this._onmousedownImplementation(n.clientX,n.clientY)},_onmousedownImplementation:function(n,t){this._tracking=!0;this._resizeControl(n,t,0,0);this._lining.style.visibility="visible";$addHandler(document,"mousemove",this._onmousemoveDelegate);$addHandler(document,"mouseup",this._onmouseupDelegate);$addHandler(document,"selectstart",this._onselectstartDelegate);Sys.Browser.agent===Sys.Browser.Opera&&$addHandler(document,"mousedown",this._onselectstartDelegate);this.raise_resizeBegin()},_onmousemove:function(n){n||(n=event);this._onmousemoveImplementation(n.clientX,n.clientY)},_onmousemoveImplementation:function(n,t){if(this._tracking){var i=n-this._lastClientX,r=t-this._lastClientY;this._resizeControl(n,t,i,r)}},_onmouseup:function(){this._tracking=!1;this._rememberSize();this._lining.style.visibility="hidden";$removeHandler(document,"mousemove",this._onmousemoveDelegate);$removeHandler(document,"mouseup",this._onmouseupDelegate);$removeHandler(document,"selectstart",this._onselectstartDelegate);Sys.Browser.agent===Sys.Browser.Opera&&$removeHandler(document,"mousedown",this._onselectstartDelegate);Sys.UI.DomElement.removeCssClass(this._frame,this._resizableCssClass)},_onselectstart:function(n){return n.preventDefault(),!1},_resizeControl:function(n,t,i,r){var u,f,e,o;this._lastClientX=n;this._lastClientY=t;u=Math.min(Math.max(this._lining.offsetWidth+i,Math.max(this._minimumWidth,this._handle.offsetWidth)),this._maximumWidth);f=Math.min(Math.max(this._lining.offsetHeight+r,Math.max(this._minimumHeight,this._handle.offsetHeight)),this._maximumHeight);this._lining.style.width=u+"px";this._lining.style.height=f+"px";this._frame.style.width=u+"px";this._frame.style.height=f+"px";e=this._lining.offsetWidth-this._handle.offsetWidth+this._handleOffsetX;o=this._lining.offsetHeight-this._handle.offsetHeight+this._handleOffsetY;this._handle.style.left=e+"px";this._handle.style.top=o+"px";this.raise_resizing()},_rememberSize:function(){var n=this.get_size();Sys.Extended.UI.ResizableControlBehavior.callBaseMethod(this,"set_ClientState",[n.width+","+n.height]);this.raise_resize()},_measurementToNumber:function(n){return n.replace("px","")},get_handleCssClass:function(){return this._handleCssClass},set_handleCssClass:function(n){if(this._handleCssClass)throw String.format(Sys.Extended.UI.Resources.ResizableControlBehavior_CannotChangeProperty,"handleCssClass");this._handleCssClass=n;this.raisePropertyChanged("handleCssClass")},get_HandleCssClass:function(){return Sys.Extended.Deprecated("get_HandleCssClass()","get_handleCssClass()"),this.get_handleCssClass()},set_HandleCssClass:function(n){Sys.Extended.Deprecated("set_HandleCssClass(value)","set_handleCssClass(value)");this.set_handleCssClass(n)},get_resizableCssClass:function(){return this._resizableCssClass},set_resizableCssClass:function(n){if(this._resizableCssClass)throw String.format(Sys.Extended.UI.Resources.ResizableControlBehavior_CannotChangeProperty,"resizableCssClass");this._resizableCssClass=n;this.raisePropertyChanged("resizableCssClass")},get_ResizableCssClass:function(){return Sys.Extended.Deprecated("get_ResizableCssClass()","get_resizableCssClass()"),this.get_resizableCssClass()},set_ResizableCssClass:function(n){Sys.Extended.Deprecated("set_ResizableCssClass(value)","set_resizableCssClass(value)");this.set_resizableCssClass(n)},get_handleOffsetX:function(){return this._handleOffsetX},set_handleOffsetX:function(n){this._handleOffsetX!=n&&(this._handleOffsetX=n,this.raisePropertyChanged("handleOffsetX"))},get_HandleOffsetX:function(){return Sys.Extended.Deprecated("get_HandleOffsetX()","get_handleOffsetX()"),this.get_handleOffsetX()},set_HandleOffsetX:function(n){Sys.Extended.Deprecated("set_HandleOffsetX(value)","set_handleOffsetX(value)");this.set_handleOffsetX(n)},get_handleOffsetY:function(){return this._handleOffsetY},set_handleOffsetY:function(n){this._handleOffsetY!=n&&(this._handleOffsetY=n,this.raisePropertyChanged("handleOffsetY"))},get_HandleOffsetY:function(){return Sys.Extended.Deprecated("get_HandleOffsetY()","get_handleOffsetY()"),this.get_handleOffsetY()},set_HandleOffsetY:function(n){Sys.Extended.Deprecated("set_HandleOffsetY(value)","set_handleOffsetY(value)");this.set_handleOffsetY(n)},get_minimumWidth:function(){return this._minimumWidth},set_minimumWidth:function(n){this._minimumWidth!=n&&(this._minimumWidth=n,this.raisePropertyChanged("minimumWidth"))},get_MinimumWidth:function(){return Sys.Extended.Deprecated("get_MinimumWidth()","get_minimumWidth()"),this.get_minimumWidth()},set_MinimumWidth:function(n){Sys.Extended.Deprecated("set_MinimumWidth(value)","set_minimumWidth(value)");this.set_minimumWidth(n)},get_minimumHeight:function(){return this._minimumHeight},set_minimumHeight:function(n){this._minimumHeight!=n&&(this._minimumHeight=n,this.raisePropertyChanged("minimumHeight"))},get_MinimumHeight:function(){return Sys.Extended.Deprecated("get_MinimumHeight()","get_minimumHeight()"),this.get_minimumHeight()},set_MinimumHeight:function(n){Sys.Extended.Deprecated("set_MinimumHeight(value)","set_minimumHeight(value)");this.set_minimumHeight(n)},get_maximumWidth:function(){return this._maximumWidth},set_maximumWidth:function(n){this._maximumWidth!=n&&(this._maximumWidth=n,this.raisePropertyChanged("maximumWidth"))},get_MaximumWidth:function(){return Sys.Extended.Deprecated("get_MaximumWidth()","get_maximumWidth()"),this.get_maximumWidth()},set_MaximumWidth:function(n){Sys.Extended.Deprecated("set_MaximumWidth(value)","set_maximumWidth(value)");this.set_maximumWidth(n)},get_maximumHeight:function(){return this._maximumHeight},set_maximumHeight:function(n){this._maximumHeight!=n&&(this._maximumHeight=n,this.raisePropertyChanged("maximumHeight"))},get_MaximumHeight:function(){return Sys.Extended.Deprecated("get_MaximumHeight()","get_maximumHeight()"),this.get_maximumHeight()},set_MaximumHeight:function(n){Sys.Extended.Deprecated("set_MaximumHeight(value)","set_maximumHeight(value)");this.set_maximumHeight(n)},add_resizing:function(n){this.get_events().addHandler("resizing",n)},remove_resizing:function(n){this.get_events().removeHandler("resizing",n)},raise_resizing:function(){var n=this.get_events().getHandler("resizing");n&&n(this,Sys.EventArgs.Empty)},raiseResizing:function(){Sys.Extended.Deprecated("raiseResizing()","raise_resizing()");this.raise_resizing()},get_resizing:function(){return this.get_events().getHandler("resizing")},set_resizing:function(n){if(n&&0<n.length){var t=$common.resolveFunction(n);if(t)this.add_resizing(t);else throw Error.argumentType("value",typeof n,"Function",String.format(Sys.Extended.UI.Resources.ResizableControlBehavior_InvalidHandler,"resizing"));}},add_resize:function(n){this.get_events().addHandler("resize",n)},remove_resize:function(n){this.get_events().removeHandler("resize",n)},raise_resize:function(){var n=this.get_events().getHandler("resize");n&&n(this,Sys.EventArgs.Empty)},raiseResize:function(){Sys.Extended.Deprecated("raiseResize()","raise_resize()");this.raise_resize()},get_resize:function(){return this.get_events().getHandler("resize")},set_resize:function(n){if(n&&0<n.length){var t=$common.resolveFunction(n);if(t)this.add_resize(t);else throw Error.argumentType("value",typeof n,"Function",String.format(Sys.Extended.UI.Resources.ResizableControlBehavior_InvalidHandler,"resize"));}},add_resizeBegin:function(n){this.get_events().addHandler("resizeBegin",n)},remove_resizeBegin:function(n){this.get_events().removeHandler("resizeBegin",n)},raise_resizeBegin:function(){var n=this.get_events().getHandler("resizeBegin");n&&n(this,Sys.EventArgs.Empty)},add_resizebegin:function(n){Sys.Extended.Deprecated("add_resizebegin(handler)","add_resizeBegin(handler)");this.add_resizeBegin(n)},remove_resizebegin:function(n){Sys.Extended.Deprecated("remove_resizebegin(handler)","remove_resizeBegin(handler)");this.remove_resizeBegin(n)},raiseResizeBegin:function(){Sys.Extended.Deprecated("raiseResizeBegin()","raise_resizeBegin()");this.raise_resizeBegin()},get_resizeBegin:function(){return this.get_events().getHandler("resizeBegin")},set_resizeBegin:function(n){if(n&&0<n.length){var t=$common.resolveFunction(n);if(t)this.add_resizeBegin(t);else throw Error.argumentType("value",typeof n,"Function",String.format(Sys.Extended.UI.Resources.ResizableControlBehavior_InvalidHandler,"resizeBegin"));}},get_resizebegin:function(){return Sys.Extended.Deprecated("get_resizebegin()","get_resizeBegin()"),this.get_resizeBegin()},set_resizebegin:function(n){Sys.Extended.Deprecated("set_resizebegin(value)","set_resizeBegin(value)");this.set_resizeBegin(n)},get_size:function(){return{width:this._measurementToNumber($common.getCurrentStyle(this._lining,"width")),height:this._measurementToNumber($common.getCurrentStyle(this._lining,"height"))}},set_size:function(n){var t=n.width-this._measurementToNumber($common.getCurrentStyle(this._lining,"width")),i=n.height-this._measurementToNumber($common.getCurrentStyle(this._lining,"height"));this._resizeControl(0,0,t,i);this._rememberSize();this.raisePropertyChanged("size")},get_Size:function(){return Sys.Extended.Deprecated("get_Size()","get_size()"),this.get_size()},set_Size:function(n){Sys.Extended.Deprecated("set_Size(value)","set_size(value)");this.set_size(n)}};Sys.Extended.UI.ResizableControlBehavior.registerClass("Sys.Extended.UI.ResizableControlBehavior",Sys.Extended.UI.BehaviorBase);