📄 elementwrapper.js
字号:
function uiHtml_ElementWrapper() { this._super();}uiHtml_ElementWrapper = uiUtil_Object.declareClass( uiHtml_ElementWrapper, uiUtil_Object);uiHtml_ElementWrapper.__instance = null;uiHtml_ElementWrapper.__extendedElements = new Array();uiHtml_ElementWrapper.prototype.__normalizeStyleAttributeName = function(name) { var index; while ((index = name.indexOf("-")) >= 0) { var nextChar = name.charAt(index + 1); name = name.replace(new RegExp("-" + nextChar), nextChar.toUpperCase()); } return name;};uiHtml_ElementWrapper.prototype.getCascadedStyleAttribute = function(domElement, name) { if (domElement.currentStyle) { return domElement.currentStyle[this.__normalizeStyleAttributeName(name)]; } else if (document.defaultView) { var cascadedStyle = document.defaultView.getComputedStyle(domElement, ""); return cascadedStyle.getPropertyValue(name); } else { return null; }};uiHtml_ElementWrapper.prototype.setStyleAttribute = function( domElement, name, value) { domElement.style[this.__normalizeStyleAttributeName(name)] = value;};uiHtml_ElementWrapper.prototype.__getExtendedProperties = function( domElement) { if (domElement.uitagsProps == null) { domElement.uitagsProps = new uiHtml_ElementWrapper.DomExtProps(); uiHtml_ElementWrapper.__registerElementToFinalize(domElement); } else if (!(domElement.uitagsProps instanceof uiHtml_ElementWrapper.DomExtProps)) { throw new uiUtil_IllegalStateException( "domElement.uitagsProps is not a valid uitags properties object."); } return domElement.uitagsProps;};uiHtml_ElementWrapper.prototype.__setExtendedProperty = function( domElement, key, value) { var uitagsProps = this.__getExtendedProperties(domElement); uitagsProps[key] = value;};uiHtml_ElementWrapper.prototype.__getExtendedProperty = function( domElement, key) { var uitagsProps = this.__getExtendedProperties(domElement); return uitagsProps[key];};uiHtml_ElementWrapper.prototype._setClassProperty = function( domElement, ownerClass, value) { var uitagsProps = this.__getExtendedProperties(domElement); var className = uiUtil_Object.getClassName(ownerClass); uitagsProps.__classProperty[className] = value;};uiHtml_ElementWrapper.prototype._getClassProperty = function( domElement, ownerClass) { var uitagsProps = this.__getExtendedProperties(domElement); var className = uiUtil_Object.getClassName(ownerClass); return uitagsProps.__classProperty[className];};uiHtml_ElementWrapper.prototype.__getInherittedStyleAttribute = function( domElement, attrName, inheritValue, defaultValue) { var currentElement = domElement; while (currentElement != document.body.parentNode) { var styleValue = this.getCascadedStyleAttribute(currentElement, attrName); if (styleValue != inheritValue) { return styleValue; } currentElement = currentElement.parentNode; } return defaultValue;};uiHtml_ElementWrapper.prototype.__setShowing = function(domElement, showing) { domElement.style.visibility = (showing) ? "visible" : "hidden";};uiHtml_ElementWrapper.prototype.isShowing = function(domElement) { var styleValue = this.__getInherittedStyleAttribute( domElement, "visibility", "inherit", "visible"); return styleValue == "visible";};uiHtml_ElementWrapper.prototype.show = function(domElement) { this.__setShowing(domElement, true);};uiHtml_ElementWrapper.prototype.hide = function(domElement) { this.__setShowing(domElement, false);};uiHtml_ElementWrapper.prototype.isAppearing = function(domElement) { return this.getCascadedStyleAttribute(domElement, "display") != "none";};uiHtml_ElementWrapper.prototype.appear = function(domElement) { if (this.isAppearing(domElement)) { return; } var expectedValue = this.__getExtendedProperty(domElement, "__appearDisplay"); domElement.style.display = expectedValue;};uiHtml_ElementWrapper.prototype.disappear = function(domElement) { if (!this.isAppearing(domElement)) { return; } var appearValue = this.getCascadedStyleAttribute(domElement, "display"); this.__setExtendedProperty(domElement, "__appearDisplay", appearValue); if (appearValue == null) { this.__logger.warn("Display style property is null"); this.__setExtendedProperty(domElement, "__appearDisplay", "block"); } domElement.style.display = "none";};uiHtml_ElementWrapper.prototype.setDepth = function(domElement, depth) { if (!uiUtil_Type.isNumber(depth)) { throw new uiUtil_IllegalArgumentException("Not a number: " + depth); } domElement.style.zIndex = depth;};uiHtml_ElementWrapper.prototype.getDepth = function(domElement) { var origValue = this.__getInherittedStyleAttribute( domElement, "z-index", "auto", "0"); var value = parseInt(origValue); if (uiUtil_Type.isNumber(value)) { return value; } throw new uiUtil_IllegalStateException("Depth value is not a valid number");};uiHtml_ElementWrapper.prototype.setDimension = function( domElement, x, y, width, height) { if (x) { domElement.style.left = x + "px"; } if (y) { domElement.style.top = y + "px"; } if (width) { domElement.style.width = width + "px"; } if (height) { domElement.style.height = height + "px"; }};uiHtml_ElementWrapper.prototype.setDimensionObject = function(domElement, dimension) { this.setDimension(domElement, dimension.getLeft(), dimension.getTop(), dimension.getWidth(), dimension.getHeight());};uiHtml_ElementWrapper.prototype.__addAggregateEventHandler = function( domElement, eventName, extPropName, eventHandler) { var aggregateHandler = this.__getAggregateEventHandler( domElement, eventName, extPropName); aggregateHandler.push(eventHandler); if (!this.__isEventPropertyInitialized(domElement, eventName)) { this._initializeEventProperty(domElement, eventName, this._getActualHandler(domElement, eventName)); } return aggregateHandler.length;};uiHtml_ElementWrapper.prototype.__isEventPropertyInitialized = function( domElement, eventName) { var initializedHandlers = this.__getExtendedProperty( domElement, "__initializedEventHandlers"); return initializedHandlers[eventName] == true;};uiHtml_ElementWrapper.prototype._initializeEventProperty = function( domElement, eventName, actualHandler) { domElement["on" + eventName] = actualHandler; var initializedHandlers = this.__getExtendedProperty( domElement, "__initializedEventHandlers"); initializedHandlers[eventName] = true;};uiHtml_ElementWrapper.prototype._getActualHandler = function( domElement, eventName) { var wrapper = this; var origHandler = domElement["on" + eventName]; return function(e) { var backwardAggregateHandler = wrapper.__getAggregateEventHandler( domElement, eventName, "__backwardEventHandlers"); for (var i = backwardAggregateHandler.length - 1; i >= 0; --i) { backwardAggregateHandler[i].call(this, e); } var retValue = (origHandler == null) ? null : origHandler.call(this, e); var forwardAggregateHandler = wrapper.__getAggregateEventHandler( domElement, eventName, "__forwardEventHandlers"); for (var i = 0; i < forwardAggregateHandler.length; ++i) { forwardAggregateHandler[i].call(this, e); } return retValue; };};uiHtml_ElementWrapper.prototype.__getAggregateEventHandler = function( domElement, eventName, extPropName) { var allHandlers = this.__getExtendedProperty(domElement, extPropName); if (allHandlers[eventName] == null) { allHandlers[eventName] = new Array(); } return allHandlers[eventName];};uiHtml_ElementWrapper.prototype.prependEventHandler = function( domElement, eventName, eventHandler) { return -1 * this.__addAggregateEventHandler( domElement, eventName, "__backwardEventHandlers", eventHandler);};uiHtml_ElementWrapper.prototype.appendEventHandler = function( domElement, eventName, eventHandler) { return this.__addAggregateEventHandler( domElement, eventName, "__forwardEventHandlers", eventHandler);};uiHtml_ElementWrapper.prototype.removeEventHandler = function( domElement, eventName, handlerId) { var actualIndex; var extPropName; if (handlerId > 0) { actualIndex = handlerId - 1; extPropName = "__forwardEventHandlers"; } else if (handlerId < 0) { actualIndex = handlerId + 1; extPropName = "__backwardEventHandlers"; } else { throw new uiUtil_IllegalArgumentException( "Handler start index should not be 0"); } var aggregateHandler = this.__getAggregateEventHandler( domElement, eventName, extPropName); uiUtil_ArrayUtils.removeAt(aggregateHandler, actualIndex);};uiHtml_ElementWrapper.prototype.clearEventHandlerExtension = function( domElement, eventName) { var backwardAggregateHandler = this.__getAggregateEventHandler( domElement, eventName, "__backwardEventHandlers"); uiUtil_ArrayUtils.clear(backwardAggregateHandler); var forwardAggregateHandler = this.__getAggregateEventHandler( domElement, eventName, "__forwardEventHandlers"); uiUtil_ArrayUtils.clear(forwardAggregateHandler);};uiHtml_ElementWrapper.prototype.executeAggregateEventHandler = function( domElement, eventName, optDomEvent) { if (domElement["on" + eventName] != null) { domElement["on" + eventName].call(domElement, optDomEvent); }};uiHtml_ElementWrapper.prototype.appendMousePressHandler = function( domElement, eventHandler) { var supporters = this.__getExtendedProperty( domElement, "__mousePressHandlingSupporters"); supporters.push(new uiHtml_ElementWrapper.MousePressHandlingSupporter( domElement, eventHandler));};uiHtml_ElementWrapper.prototype.enableDragSupport = function( domElement, optTrigger, optSetCoordinate) { var supporter = this.__getExtendedProperty(domElement, "__dragSupporter"); if (supporter == null) { var wrapper = this; setCoordinate = uiUtil_Type.getValue(optSetCoordinate, function(x, y) { wrapper.setDimension(domElement, x, y, null, null); }); supporter = new uiHtml_ElementWrapper.DragSupporter(domElement, setCoordinate); supporter.__setDragTrigger(uiUtil_Type.getValue(optTrigger, domElement)); this.__setExtendedProperty(domElement, "__dragSupporter", supporter) }};uiHtml_ElementWrapper.prototype.restrictDragging = function( domElement, optLeft, optTop, optWidth, optHeight) { var supporter = this.__getExtendedProperty(domElement, "__dragSupporter"); if (supporter == null) { throw new uiUtil_IllegalStateException( "Drag support has not been enabled"); } supporter.__restrictDragging(optLeft, optTop, optWidth, optHeight);};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -