From: handa Date: Sat, 20 Mar 2010 07:32:27 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: ALPHA~8 X-Git-Url: http://git.chise.org/gitweb/?a=commitdiff_plain;h=39ade7f8b19281d743552e5282dcefc691e35f8f;p=m17n%2Fm17n-lib-js.git *** empty log message *** --- diff --git a/xex.js b/xex.js index c0ba885..19683a1 100644 --- a/xex.js +++ b/xex.js @@ -1,41 +1,99 @@ -// -* coding: utf-8; -* +// xex.js -- Xex (XML Expression) interpreter +// Copyright (C) 2010 +// National Institute of Advanced Industrial Science and Technology (AIST) +// Registration Number H15PRO112 + +// This file is part of the m17n database; a sub-part of the m17n +// library. + +// The m17n library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public License +// as published by the Free Software Foundation; either version 2.1 of +// the License, or (at your option) any later version. + +// The m17n library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. + +// You should have received a copy of the GNU Lesser General Public +// License along with the m17n library; if not, write to the Free +// Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +// Boston, MA 02110-1301, USA. + +var Xex = {}; + +(function () { // Tracing + // The logging node containing tracing information. + var log = null; + // Number of lines. + var lines; + // Style properties of the logging node. + var styles = { border: '1px solid black', + font: 'normal normal normal small monospace', + width: '100%', + minHeight: '300px', + maxHeight: '300px', + overflow: 'auto' }; + + // Toggle logging on and off. PARENT if non-null specifies the + // parent of the log node. The log node is appended to the parent. + // If PARENT is null, 'body' node is assumed. + Xex.LogToggle = function (parent) + { + if (log) + { + log.parentNode.removeChild (log); + log = null; + return; + } + if (! parent) + parent = document.getElementsByTagName ('body')[0]; + log = document.createElement ('ol'); + for (var prop in styles) + log.style[prop] = styles[prop]; + parent.appendChild (log); + lines = 0; + return log; + } -var Xex = { - LogNode: null, - LogNodeLen: 0, - Log: function (arg, indent, cont) + // Log ARG + Xex.Log = function (arg, indent) { - if (! Xex.LogNode) + if (! log) return; if (! arg) { - while (Xex.LogNode.childNodes.length > 0) - Xex.LogNode.removeChild (Xex.LogNode.firstChild); - LogNodeLen = 0; + while (log.childNodes.length > 0) + log.removeChild (log.firstChild); + lines = 0; } else { var node; - if (cont) - Xex.LogNode.lastChild.innerText += arg; + if (indent == -1) + log.lastChild.innerText += arg; else { - LogNodeLen++; - if (LogNodeLen >= 1000) - node = Xex.LogNode.firstElement (); + lines++; + if (lines >= 60) + { + node = log.firstElement (); + log.start = lines - 58; + } else - node = document.createElement ('div'); + node = document.createElement ('li'); if (indent != undefined) node.style.textIndent = (indent + 1) + 'em'; else node.style.textIndent = '0px'; - node.innerText = LogNodeLen + ': ' + arg; - Xex.LogNode.appendChild (node); - Xex.LogNode.scrollTop = Xex.LogNode.scrollHeight; + node.innerText = arg; + log.appendChild (node); + log.scrollTop = log.scrollHeight; } } } -}; +}) (); Xex.Error = { UnknownError: "unknown-error", @@ -1302,7 +1360,6 @@ Xex.Load = function (server, file) { var obj = new XMLHttpRequest (); var url = server ? server + '/' + file : file; - //alert ('loading ' + url); obj.open ('GET', url, false); obj.overrideMimeType ('text/xml'); obj.send ('');