📄 consoleappender.js
字号:
/* * JavaScript Software Development Kit - what JavaScript should be and can be - js-sdk.sourceforge.net * Copyright (C) 2006-2007 Mathew Sheets * * == BEGIN LICENSE == * * Licensed under the terms of any of the following licenses at your * choice: * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html * * == END LICENSE == */package jsx.logging;import jsx.lang.StringBuffer;import jsx.logging.DefaultAppender;import jsx.logging.DefaultLayout;import jsx.logging.Level;import jsx.event.*;import jsx.dom.Element;import jsx.dom.behavior.draggable.Draggable;class ConsoleAppender extends DefaultAppender mixin Draggable{ ConsoleAppender(_name) { if(!_name) { var _name = "Default"; } super(_name); var me = this; this.name = _name; this.suffix = "logging_console"; this.scrollIndex = 200; this.scrollIndexLocked = 0; this.container = document.createElement("div"); this.container.id = this.name +"."+ this.suffix; var containerStyle = this.container.style; containerStyle.backgroundColor = "#b5c9c6"; containerStyle.border = "1px solid #000000"; containerStyle.position = "absolute"; containerStyle.zIndex = ConsoleAppender.Z_INDEX++ + ""; this.containerLeft = "10px"; containerStyle.left = this.containerLeft; this.containerTop = "400px"; containerStyle.top = this.containerTop; this.containerWidth = (screen.width-50)+"px"; containerStyle.width = this.containerWidth;//********************************************// Controls//******************************************** var controls = document.createElement("div"); var controlsStyle = controls.style; controlsStyle.width = "100%"; controlsStyle.height = "20px";//********************************************// Appender Name//******************************************** var title = document.createElement("div"); var titleStyle = title.style; titleStyle.display = "inline"; titleStyle.color = "#000000"; titleStyle.fontWeight = "bold"; titleStyle.paddingLeft = "5px"; titleStyle.paddingRight = "5px"; title.appendChild(document.createTextNode(this.name + " Console Appender"));//********************************************//********************************************//********************************************// level filters//******************************************** var filters = document.createElement("div"); var filtersStyle = filters.style; filtersStyle.display = "inline"; filtersStyle.paddingLeft = "5px"; filtersStyle.paddingRight = "5px"; var filterTitle = document.createElement("span"); filterTitleStyle = filterTitle.style; filterTitleStyle.color = "#000000"; filterTitleStyle.fontWeight = "bold"; filterTitle.appendChild(document.createTextNode("Filters:")); var trace = document.createElement("input"); var debug = document.createElement("input"); var info = document.createElement("input"); var warn = document.createElement("input"); var error = document.createElement("input"); var fatal = document.createElement("input"); trace.type = "checkbox"; debug.type = "checkbox"; info.type = "checkbox"; warn.type = "checkbox"; error.type = "checkbox"; fatal.type = "checkbox"; trace.id = this.container.id + ".trace_chk"; debug.id = this.container.id + ".debug_chk"; info.id = this.container.id + ".info_chk"; warn.id = this.container.id + ".warn_chk"; error.id = this.container.id + ".error_chk"; fatal.id = this.container.id + ".fatal_chk"; var traceSpan = document.createElement("span"); var debugSpan = document.createElement("span"); var infoSpan = document.createElement("span"); var warnSpan = document.createElement("span"); var errorSpan = document.createElement("span"); var fatalSpan = document.createElement("span"); var traceSpanStyle = traceSpan.style; var debugSpanStyle = debugSpan.style; var infoSpanStyle = infoSpan.style; var warnSpanStyle = warnSpan.style; var errorSpanStyle = errorSpan.style; var fatalSpanStyle = fatalSpan.style; traceSpanStyle.color = ConsoleAppender.TRACE_COLOR; debugSpanStyle.color = ConsoleAppender.DEBUG_COLOR; infoSpanStyle.color = ConsoleAppender.INFO_COLOR; warnSpanStyle.color = ConsoleAppender.WARN_COLOR; errorSpanStyle.color = ConsoleAppender.ERROR_COLOR; fatalSpanStyle.color = ConsoleAppender.FATAL_COLOR; traceSpanStyle.fontWeight = "bold"; debugSpanStyle.fontWeight = "bold"; infoSpanStyle.fontWeight = "bold"; warnSpanStyle.fontWeight = "bold"; errorSpanStyle.fontWeight = "bold"; fatalSpanStyle.fontWeight = "bold"; traceSpan.appendChild(document.createTextNode("trace ")); debugSpan.appendChild(document.createTextNode("debug ")); infoSpan.appendChild(document.createTextNode("info ")); warnSpan.appendChild(document.createTextNode("warn ")); errorSpan.appendChild(document.createTextNode("error ")); fatalSpan.appendChild(document.createTextNode("fatal")); filters.appendChild(filterTitle); filters.appendChild(trace); filters.appendChild(traceSpan); filters.appendChild(debug); filters.appendChild(debugSpan); filters.appendChild(info); filters.appendChild(infoSpan); filters.appendChild(warn); filters.appendChild(warnSpan); filters.appendChild(error); filters.appendChild(errorSpan); filters.appendChild(fatal); filters.appendChild(fatalSpan);//********************************************//********************************************//********************************************// Display//******************************************** var display = document.createElement("div"); var displayStyle = display.style; displayStyle.display = "inline"; displayStyle.paddingLeft = "5px"; displayStyle.paddingRight = "5px"; var scrollLockChk = document.createElement("input"); scrollLockChk.type = "checkbox"; scrollLockChk.id = this.container.id + ".scroll_lock_chk"; var scrollLockSpan = document.createElement("span"); var scrollLockSpanStyle = scrollLockSpan.style; scrollLockSpanStyle.color = "#000000"; scrollLockSpanStyle.fontWeight = "bold"; scrollLockSpan.appendChild(document.createTextNode("Scroll Lock ")); var clearLogsBtn = document.createElement("input"); clearLogsBtn.type = "button"; clearLogsBtn.id = this.container.id + ".clear_btn"; clearLogsBtn.value = "Clear"; var minBtn = document.createElement("input"); var maxBtn = document.createElement("input"); maxBtn.style.display = "none"; var closeBtn = document.createElement("input"); minBtn.type = "button"; maxBtn.type = "button"; closeBtn.type = "button"; minBtn.id = this.container.id + ".min_btn"; maxBtn.id = this.container.id + ".max_btn"; closeBtn.id = this.container.id + ".close_btn"; minBtn.value = "_"; maxBtn.value = "+"; closeBtn.value = "X"; display.appendChild(scrollLockChk); display.appendChild(scrollLockSpan); display.appendChild(clearLogsBtn); display.appendChild(minBtn); display.appendChild(maxBtn); display.appendChild(closeBtn);//********************************************//******************************************** // add all containers controls.appendChild(title); controls.appendChild(filters); controls.appendChild(display); this.container.appendChild(controls);//********************************************// iframe console//******************************************** var consoleContainer = document.createElement("iframe"); consoleContainer.id = this.container.id + ".iframe_console"; consoleContainer.name = consoleContainer.id; consoleContainer.frameBorder = "0"; consoleContainer.scrolling = "auto"; this.consoleWidth = "99%"; consoleContainer.width = this.consoleWidth; this.consoleHeight = "100%"; consoleContainer.height = this.consoleHeight; this.container.appendChild(consoleContainer); document.getElementsByTagName("body")[0].appendChild(this.container); // IE hack, for some reason you need to try to reference the element so it is // recognized in the dom if(!frames[consoleContainer.name].document) { try{document.getElementById(consoleContainer.id)}catch(_exception){} } this.loggingConsole = frames[consoleContainer.name]; var consoleDoc = this.loggingConsole.document; consoleDoc.open(); consoleDoc.write("<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>\n"); consoleDoc.write("<html><head><title>JavaScript SDK Logging</title></head><body></body></html>"); consoleDoc.close(); consoleDoc.body.style.backgroundColor = "#ffffff";//********************************************//******************************************** // these statements need to be below appending to the body trace.checked = "checked"; debug.checked = "checked"; info.checked = "checked"; warn.checked = "checked"; error.checked = "checked"; fatal.checked = "checked";//********************************************// Events after the appending to the body//******************************************** new EventDispatcher(controls, "onmouseover", true).addListener(function(_eventMouseOver) { var _eventMouseOver = new Event(_eventMouseOver || $GLOBAL_OBJECT.event); _eventMouseOver.getObject().style.cursor = "move"; });
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -