📄 serial.js
字号:
};EchoSerial.addPropertyTranslator("s", EchoSerial.PropertyTranslator.String);/** * Date PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.Date = { _expr: /(\d{4})\.(\d{2}).(\d{2})/, toProperty: function(client, propertyElement) { var value = EchoSerial.PropertyTranslator.String.toProperty(client, propertyElement); var result = this._expr.exec(value); if (!result) { return null; } return new Date(result[1], parseInt(result[2]) - 1, result[3]); }, toXml: function(client, propertyElement, propertyValue) { propertyElement.appendChild(propertyElement.ownerDocument.createTextNode( propertyValue.getFullYear() + "." + (propertyValue.getMonth() + 1) + "." + propertyValue.getDate())); }};EchoSerial.addPropertyTranslator("d", EchoSerial.PropertyTranslator.Date);EchoSerial.addPropertyTranslatorByType(Date, EchoSerial.PropertyTranslator.Date);/** * Map (Associative Array) PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.Map = { toProperty: function(client, propertyElement) { var mapObject = {}; var element = propertyElement.firstChild; while (element) { if (element.nodeType != 1) { continue; } EchoSerial.loadProperty(client, element, null, mapObject, null); element = element.nextSibling; } return mapObject; }};EchoSerial.addPropertyTranslator("m", EchoSerial.PropertyTranslator.Map);/** * Alignment PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.Alignment = { _HORIZONTAL_MAP: { "leading": "leading", "trailing": "trailing", "left": "left", "center": "center", "right": "right" }, _VERTICAL_MAP: { "top": "top", "center": "middle", "bottom": "bottom" }, toProperty: function(client, propertyElement) { var element = WebCore.DOM.getChildElementByTagName(propertyElement, "a"); var h = this._HORIZONTAL_MAP[element.getAttribute("h")]; var v = this._VERTICAL_MAP[element.getAttribute("v")]; if (h) { if (v) { return { horizontal: h, vertical: v }; } return h; } if (v) { return v; } return null; }};EchoSerial.addPropertyTranslator("Alignment", EchoSerial.PropertyTranslator.Alignment);EchoSerial.addPropertyTranslator("AL", EchoSerial.PropertyTranslator.Alignment);/** * Border PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.Border = { toProperty: function(client, propertyElement) { var value = propertyElement.getAttribute("v"); if (value) { return value; } else { var element = WebCore.DOM.getChildElementByTagName(propertyElement, "b"); var border = {}; value = element.getAttribute("t"); if (value) { border.top = value; value = element.getAttribute("r"); if (value) { border.right = value; value = element.getAttribute("b"); if (value) { border.bottom = value; value = element.getAttribute("l"); if (value) { border.left = value; } } } } else { throw new Error("Invalid multi-sided border: no sides set."); } return border; } }};EchoSerial.addPropertyTranslator("Border", EchoSerial.PropertyTranslator.Border);EchoSerial.addPropertyTranslator("BO", EchoSerial.PropertyTranslator.Border);//FIXME delete/** * Extent PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.Extent = { toProperty: function(client, propertyElement) { return propertyElement.firstChild.data; }, toXml: function(client, propertyElement, propertyValue) { propertyElement.appendChild(propertyElement.ownerDocument.createTextNode(propertyValue.toString())); }};EchoSerial.addPropertyTranslator("Extent", EchoSerial.PropertyTranslator.Extent);EchoSerial.addPropertyTranslator("X", EchoSerial.PropertyTranslator.Extent);/** * FillImage PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.FillImage = { toProperty: function(client, propertyElement) { var element = WebCore.DOM.getChildElementByTagName(propertyElement, "fi"); return this._parseElement(client, element); }, _parseElement: function(client, fiElement) { var url = fiElement.getAttribute("u"); if (client.decompressUrl) { url = client.decompressUrl(url); } repeat = fiElement.getAttribute("r"); var x = fiElement.getAttribute("x"); var y = fiElement.getAttribute("y"); if (repeat || x || y) { return { url: url, repeat: repeat, x: x, y: y }; } else { return url; } }};EchoSerial.addPropertyTranslator("FillImage", EchoSerial.PropertyTranslator.FillImage);EchoSerial.addPropertyTranslator("FI", EchoSerial.PropertyTranslator.FillImage);/** * FillImageBorder PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.FillImageBorder = { _NAMES: [ "topLeft", "top", "topRight", "left", "right", "bottomLeft", "bottom", "bottomRight" ], toProperty: function(client, propertyElement) { var element = WebCore.DOM.getChildElementByTagName(propertyElement, "fib"); return EchoSerial.PropertyTranslator.FillImageBorder._parseElement(client, element); }, _parseElement: function(client, fibElement) { var fillImageBorder = { contentInsets: fibElement.getAttribute("ci") == "" ? null : fibElement.getAttribute("ci"), borderInsets: fibElement.getAttribute("bi") == "" ? null : fibElement.getAttribute("bi"), color: fibElement.getAttribute("bc") }; var element = fibElement.firstChild; var i = 0; while(element) { if (element.nodeType == 1) { if (element.nodeName == "fi") { fillImageBorder[this._NAMES[i]] = EchoSerial.PropertyTranslator.FillImage._parseElement(client, element); ++i; } else if (element.nodeName == "null-fi") { ++i; } } element = element.nextSibling; } if (!(i == 0 || i == 8)) { throw new Error("Invalid FillImageBorder image count: " + i); } return fillImageBorder; }};EchoSerial.addPropertyTranslator("FillImageBorder", EchoSerial.PropertyTranslator.FillImageBorder);EchoSerial.addPropertyTranslator("FIB", EchoSerial.PropertyTranslator.FillImageBorder);/** * Font PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.Font = { toProperty: function(client, propertyElement) { var element = WebCore.DOM.getChildElementByTagName(propertyElement, "f"); var tfElements = WebCore.DOM.getChildElementsByTagName(element, "tf"); var font = { }; if (tfElements.length > 1) { font.typeface = new Array(tfElements.length); for (var i = 0; i < tfElements.length; ++i) { font.typeface[i] = tfElements[i].getAttribute("n"); } } else if (tfElements.length == 1) { font.typeface = tfElements[0].getAttribute("n"); } var size = element.getAttribute("sz"); if (size) { font.size = size; } if (element.getAttribute("bo")) { font.bold = true; } if (element.getAttribute("it")) { font.italic = true; } if (element.getAttribute("un")) { font.underline = true; } if (element.getAttribute("ov")) { font.overline = true; } if (element.getAttribute("lt")) { font.lineThrough = true; } return font; }};EchoSerial.addPropertyTranslator("Font", EchoSerial.PropertyTranslator.Font);EchoSerial.addPropertyTranslator("F", EchoSerial.PropertyTranslator.Font);/** * ImageReference PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.ImageReference = { toProperty: function(client, propertyElement) { var url = propertyElement.firstChild.data; if (client.decompressUrl) { url = client.decompressUrl(url); } var width = propertyElement.getAttribute("w"); width = width ? width : null; var height = propertyElement.getAttribute("h"); height = height ? height : null; if (width || height) { return { url: url, width: width, height: height }; } else { return url; } }};EchoSerial.addPropertyTranslator("ImageReference", EchoSerial.PropertyTranslator.ImageReference);EchoSerial.addPropertyTranslator("I", EchoSerial.PropertyTranslator.ImageReference);/** * Insets PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.Insets = { toProperty: function(client, propertyElement) { return propertyElement.firstChild.data; }};EchoSerial.addPropertyTranslator("Insets", EchoSerial.PropertyTranslator.Insets);EchoSerial.addPropertyTranslator("N", EchoSerial.PropertyTranslator.Insets);/** * LayoutData PropertyTranslator Singleton. */EchoSerial.PropertyTranslator.LayoutData = { toProperty: function(client, propertyElement) { var layoutData = {}; var element = propertyElement.firstChild; while (element) { if (element.nodeType == 1) { switch (element.nodeName) { case "p": EchoSerial.loadProperty(client, element, null, layoutData); break; } } element = element.nextSibling; } return layoutData; }};EchoSerial.addPropertyTranslator("LayoutData", EchoSerial.PropertyTranslator.LayoutData);EchoSerial.addPropertyTranslator("L", EchoSerial.PropertyTranslator.LayoutData);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -