📄 panel.js
字号:
function uiHtml_Panel(domDiv, optUseIFrame) { this._super(domDiv); this.__domDiv = domDiv; this.__contentDomElement = null; this.__focusSupportEnabled = false; this.__willFocus = false; this.__isFocused = false; this.__scrollSupporter = new uiHtml_ScrollSupporter(this.__domDiv); this.__iframe = null; if (uiUtil_Type.getBoolean(optUseIFrame, true) && uiHtml_Window.getInstance().isIe()) { this.__createIFrame(); }}uiHtml_Panel = uiUtil_Object.declareClass(uiHtml_Panel, uiHtml_Element);uiHtml_Panel.__focusEnabledPanels = new Array();uiHtml_Panel.prototype.showScrollBars = function(always) { this.__scrollSupporter.showScrollBars(always); this.__updateIFrameDimension();};uiHtml_Panel.prototype.hideScrollBars = function() { this.__scrollSupporter.hideScrollBars(); this.__updateIFrameDimension();};uiHtml_Panel.prototype.scrollToTop = function() { this.__scrollSupporter.scrollToTop();};uiHtml_Panel.prototype.scrollToBottom = function() { this.__scrollSupporter.scrollToBottom();};uiHtml_Panel.prototype.__createIFrame = function() { this.__iframe = new uiHtml_Element( uiHtml_Document.getInstance().createDomObject("iframe")); var domIFrame = this.__iframe.getDomObject(); domIFrame.frameBorder = "0"; domIFrame.scrolling = "no"; domIFrame.src = "javascript: false;"; domIFrame.style.filter = "progid:DXImageTransform.Microsoft.Alpha(style = 0, opacity = 0)"; this.__iframe.setDepth(this.getDepth() - 1); this.__iframe.setStyleAttribute("position", "absolute"); this.__updateIFrameDimension(); if (this.isAppearing()) { this.__iframe.appear(); } else { this.__iframe.disappear(); } if (this.isShowing()) { this.__iframe.show(); } else { this.__iframe.hide(); }};uiHtml_Panel.prototype.__updateIFrameDimension = function() { if (this.__iframe == null) { return; } this.__iframe.setDimensionObject(this.getRelativeDimension());};uiHtml_Panel.prototype.show = function() { this._callSuper("show"); if (this.__iframe != null) { this.__iframe.show(); }};uiHtml_Panel.prototype.hide = function() { this._callSuper("hide"); if (this.__iframe != null) { this.__iframe.hide(); }};uiHtml_Panel.prototype.appear = function() { this._callSuper("appear"); if (this.__iframe != null) { this.__iframe.appear(); }};uiHtml_Panel.prototype.disappear = function() { this._callSuper("disappear"); if (this.__iframe != null) { this.__iframe.disappear(); }};uiHtml_Panel.prototype.setStyleAttribute = function(name, value) { this._callSuper("setStyleAttribute", name, value); switch (name) { case "position" : this.__updateIFrameDimension(); break; }};uiHtml_Panel.prototype.setDimensionObject = function(dimension) { this._callSuper("setDimensionObject", dimension); this.__updateIFrameDimension();};uiHtml_Panel.prototype.setDimension = function(x, y, width, height) { this._callSuper("setDimension", x, y, width, height); this.__updateIFrameDimension();};uiHtml_Panel.prototype.setDepth = function(depth) { this._callSuper("setDepth", depth); if (this.__iframe != null) { this.__iframe.setDepth(depth - 1); }};uiHtml_Panel.prototype.__enableFocusSupport = function() { if (this.__focusSupportEnabled == true) { return; } this.__focusSupportEnabled = true; var panel = this; this.appendEventHandler("mouseover", function(e) { panel.__willFocus = true; }); this.appendEventHandler("mouseout", function(e) { panel.__willFocus = false; }); uiHtml_Document.getInstance().appendEventHandler("mousedown", function(e) { uiHtml_Panel.__executeFocusHandlers(e); }); uiHtml_Panel.__focusEnabledPanels.push(this);};uiHtml_Panel.prototype.prependEventHandler = function(event, handler) { if (event == "focus" || event == "blur") { this.__enableFocusSupport(); } return this._callSuper("prependEventHandler", event, handler);};uiHtml_Panel.prototype.appendEventHandler = function(event, handler) { if (event == "focus" || event == "blur") { this.__enableFocusSupport(); } return this._callSuper("appendEventHandler", event, handler);};uiHtml_Panel.prototype.focus = function() { this.__isFocused = true;};uiHtml_Panel.prototype.__executeFocusFunction = function( eventName, domEvent, focusRequired) { this.__logger.debug("isFocused: " + this.__isFocused); if (this.__isFocused == focusRequired) { this.executeAggregateEventHandler(eventName, domEvent); this.__isFocused = !this.__isFocused; }};uiHtml_Panel.prototype.setContent = function(domElement) { this.__contentDomElement = domElement; var domChild = this.__contentDomElement; var domParent = domChild.parentNode; var domThis = this.getDomObject(); if (domParent != domThis) { domParent.removeChild(domChild); domParent.appendChild(domThis); domThis.appendChild(domChild); }};uiHtml_Panel.prototype.getContent = function() { return this.__contentDomElement;};uiHtml_Panel.prototype.enableDragSupport = function(optTriggerElement) { this._callSuper("enableDragSupport", optTriggerElement); try { optTriggerElement.hideScrollBars(); } catch (e) { } this.hideScrollBars(); this.setStyleAttribute("position", "absolute");};uiHtml_Panel.__executeFocusHandlers = function(domEvent) { for (var i = 0; i < uiHtml_Panel.__focusEnabledPanels.length; ++i) { var panel = uiHtml_Panel.__focusEnabledPanels[i]; if (panel.__willFocus == true) { panel.__executeFocusFunction("focus", domEvent, false); } else { panel.__executeFocusFunction("blur", domEvent, true); } }};uiHtml_Panel.createByEither = function(id, name) { return uiHtml_Element.createByEither(id, name, uiHtml_Panel);};uiHtml_Panel.create = function(optUseIFrame, optAppear) { var domDiv = uiHtml_Document.getInstance().createDomObject("div", optAppear); return new uiHtml_Panel(domDiv, optUseIFrame);};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -