Rename data to node
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
local XMLNode = {
|
||||
new = function(name)
|
||||
return {
|
||||
value = nil,
|
||||
name = name,
|
||||
value = nil,
|
||||
children = {},
|
||||
attributes = {},
|
||||
|
||||
|
||||
@@ -28,9 +28,9 @@ return {
|
||||
return bgSymbolColor
|
||||
end,
|
||||
|
||||
setValuesByXMLData = function(self, data, scripts)
|
||||
base.setValuesByXMLData(self, data, scripts)
|
||||
if(XMLParser.xmlValue("background-symbol", data)~=nil)then self:setBackgroundSymbol(XMLParser.xmlValue("background-symbol", data), XMLParser.xmlValue("background-symbol-color", data)) end
|
||||
setValuesByXMLData = function(self, node, scripts)
|
||||
base.setValuesByXMLData(self, node, scripts)
|
||||
if(XMLParser.xmlValue("background-symbol", node)~=nil)then self:setBackgroundSymbol(XMLParser.xmlValue("background-symbol", node), XMLParser.xmlValue("background-symbol-color", node)) end
|
||||
return self
|
||||
end,
|
||||
|
||||
|
||||
@@ -338,11 +338,11 @@ return {
|
||||
end
|
||||
end,
|
||||
|
||||
setValuesByXMLData = function(self, data, scripts)
|
||||
base.setValuesByXMLData(self, data, scripts)
|
||||
local animX, animY, animateDuration, animeteTimeOffset, animateMode = XMLParser.xmlValue("animateX", data), XMLParser.xmlValue("animateY", data), XMLParser.xmlValue("animateDuration", data), XMLParser.xmlValue("animateTimeOffset", data), XMLParser.xmlValue("animateMode", data)
|
||||
local animW, animH, animateDuration, animeteTimeOffset, animateMode = XMLParser.xmlValue("animateW", data), XMLParser.xmlValue("animateH", data), XMLParser.xmlValue("animateDuration", data), XMLParser.xmlValue("animateTimeOffset", data), XMLParser.xmlValue("animateMode", data)
|
||||
local animXOffset, animYOffset, animateDuration, animeteTimeOffset, animateMode = XMLParser.xmlValue("animateXOffset", data), XMLParser.xmlValue("animateYOffset", data), XMLParser.xmlValue("animateDuration", data), XMLParser.xmlValue("animateTimeOffset", data), XMLParser.xmlValue("animateMode", data)
|
||||
setValuesByXMLData = function(self, node, scripts)
|
||||
base.setValuesByXMLData(self, node, scripts)
|
||||
local animX, animY, animateDuration, animeteTimeOffset, animateMode = XMLParser.xmlValue("animateX", node), XMLParser.xmlValue("animateY", node), XMLParser.xmlValue("animateDuration", node), XMLParser.xmlValue("animateTimeOffset", node), XMLParser.xmlValue("animateMode", node)
|
||||
local animW, animH, animateDuration, animeteTimeOffset, animateMode = XMLParser.xmlValue("animateW", node), XMLParser.xmlValue("animateH", node), XMLParser.xmlValue("animateDuration", node), XMLParser.xmlValue("animateTimeOffset", node), XMLParser.xmlValue("animateMode", node)
|
||||
local animXOffset, animYOffset, animateDuration, animeteTimeOffset, animateMode = XMLParser.xmlValue("animateXOffset", node), XMLParser.xmlValue("animateYOffset", node), XMLParser.xmlValue("animateDuration", node), XMLParser.xmlValue("animateTimeOffset", node), XMLParser.xmlValue("animateMode", node)
|
||||
if(animX~=nil and animY~=nil)then
|
||||
self:animatePosition(animX, animY, animateDuration, animeteTimeOffset, animateMode)
|
||||
end
|
||||
|
||||
@@ -195,9 +195,9 @@ return {
|
||||
end
|
||||
end,
|
||||
|
||||
setValuesByXMLData = function(self, data, scripts)
|
||||
base.setValuesByXMLData(self, data, scripts)
|
||||
if(XMLParser.xmlValue("fontSize", data)~=nil)then self:setFontSize(XMLParser.xmlValue("fontSize", data)) end
|
||||
setValuesByXMLData = function(self, node, scripts)
|
||||
base.setValuesByXMLData(self, node, scripts)
|
||||
if(XMLParser.xmlValue("fontSize", node)~=nil)then self:setFontSize(XMLParser.xmlValue("fontSize", node)) end
|
||||
return self
|
||||
end,
|
||||
|
||||
|
||||
@@ -81,19 +81,19 @@ return {
|
||||
end)
|
||||
end,
|
||||
|
||||
setValuesByXMLData = function(self, data, scripts)
|
||||
base.setValuesByXMLData(self, data)
|
||||
setValuesByXMLData = function(self, node, scripts)
|
||||
base.setValuesByXMLData(self, node)
|
||||
local borders = {}
|
||||
if(XMLParser.xmlValue("border", data)~=nil)then
|
||||
borders["top"] = colors[XMLParser.xmlValue("border", data)]
|
||||
borders["bottom"] = colors[XMLParser.xmlValue("border", data)]
|
||||
borders["left"] = colors[XMLParser.xmlValue("border", data)]
|
||||
borders["right"] = colors[XMLParser.xmlValue("border", data)]
|
||||
if(XMLParser.xmlValue("border", node)~=nil)then
|
||||
borders["top"] = colors[XMLParser.xmlValue("border", node)]
|
||||
borders["bottom"] = colors[XMLParser.xmlValue("border", node)]
|
||||
borders["left"] = colors[XMLParser.xmlValue("border", node)]
|
||||
borders["right"] = colors[XMLParser.xmlValue("border", node)]
|
||||
end
|
||||
if(XMLParser.xmlValue("borderTop", data)~=nil)then borders["top"] = colors[XMLParser.xmlValue("borderTop", data)] end
|
||||
if(XMLParser.xmlValue("borderBottom", data)~=nil)then borders["bottom"] = colors[XMLParser.xmlValue("borderBottom", data)] end
|
||||
if(XMLParser.xmlValue("borderLeft", data)~=nil)then borders["left"] = colors[XMLParser.xmlValue("borderLeft", data)] end
|
||||
if(XMLParser.xmlValue("borderRight", data)~=nil)then borders["right"] = colors[XMLParser.xmlValue("borderRight", data)] end
|
||||
if(XMLParser.xmlValue("borderTop", node)~=nil)then borders["top"] = colors[XMLParser.xmlValue("borderTop", node)] end
|
||||
if(XMLParser.xmlValue("borderBottom", node)~=nil)then borders["bottom"] = colors[XMLParser.xmlValue("borderBottom", node)] end
|
||||
if(XMLParser.xmlValue("borderLeft", node)~=nil)then borders["left"] = colors[XMLParser.xmlValue("borderLeft", node)] end
|
||||
if(XMLParser.xmlValue("borderRight", node)~=nil)then borders["right"] = colors[XMLParser.xmlValue("borderRight", node)] end
|
||||
self:setBorder(borders["top"], borders["bottom"], borders["left"], borders["right"])
|
||||
return self
|
||||
end
|
||||
|
||||
@@ -2,34 +2,30 @@ local XMLParser = require("xmlParser")
|
||||
local utils = require("utils")
|
||||
local uuid = utils.uuid
|
||||
|
||||
local function maybeExecuteScript(data, renderContext)
|
||||
local script = XMLParser.xmlValue('script', data)
|
||||
if (script ~= nil) then
|
||||
load(script, nil, "t", renderContext.env)()
|
||||
local function maybeExecuteScript(nodeTree, renderContext)
|
||||
for _, node in ipairs(nodeTree.children) do
|
||||
if (node.name == "script") then
|
||||
return load(node.value, nil, "t", renderContext.env)()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function registerFunctionEvent(self, data, event, renderContext)
|
||||
local function registerFunctionEvent(self, event, script, renderContext)
|
||||
local eventEnv = renderContext.env
|
||||
if(data:sub(1,1)=="$")then
|
||||
local data = data:sub(2)
|
||||
event(self, self:getBasalt().getVariable(data))
|
||||
else
|
||||
event(self, function(...)
|
||||
eventEnv.event = {...}
|
||||
local success, msg = pcall(load(data, nil, "t", eventEnv))
|
||||
if not success then
|
||||
error("XML Error: "..msg)
|
||||
end
|
||||
end)
|
||||
end
|
||||
event(self, function(...)
|
||||
eventEnv.event = {...}
|
||||
local success, msg = pcall(load(script, nil, "t", eventEnv))
|
||||
if not success then
|
||||
error("XML Error: "..msg)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
local function registerFunctionEvents(self, data, events, renderContext)
|
||||
local function registerFunctionEvents(self, node, events, renderContext)
|
||||
for _, event in pairs(events) do
|
||||
local expression = data.attributes[event]
|
||||
local expression = node.attributes[event]
|
||||
if (expression ~= nil) then
|
||||
registerFunctionEvent(self, expression .. "()", self[event], renderContext)
|
||||
registerFunctionEvent(self, self[event], expression .. "()", renderContext)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -114,16 +110,16 @@ return {
|
||||
VisualObject = function(base, basalt)
|
||||
|
||||
local object = {
|
||||
setValuesByXMLData = function(self, data, renderContext)
|
||||
setValuesByXMLData = function(self, node, renderContext)
|
||||
renderContext.env[self:getName()] = self
|
||||
for attribute, expression in pairs(data.attributes) do
|
||||
for attribute, expression in pairs(node.attributes) do
|
||||
local update = function()
|
||||
local value = load("return " .. expression, nil, "t", renderContext.env)()
|
||||
self:setProperty(attribute, value)
|
||||
end
|
||||
basalt.effect(update)
|
||||
end
|
||||
registerFunctionEvents(self, data, {
|
||||
registerFunctionEvents(self, node, {
|
||||
"onClick",
|
||||
"onClickUp",
|
||||
"onHover",
|
||||
@@ -148,9 +144,9 @@ return {
|
||||
|
||||
ChangeableObject = function(base, basalt)
|
||||
local object = {
|
||||
setValuesByXMLData = function(self, data, renderContext)
|
||||
base.setValuesByXMLData(self, data, renderContext)
|
||||
registerFunctionEvent(self, data, {
|
||||
setValuesByXMLData = function(self, node, renderContext)
|
||||
base.setValuesByXMLData(self, node, renderContext)
|
||||
registerFunctionEvent(self, node, {
|
||||
"onChange"
|
||||
}, renderContext)
|
||||
return self
|
||||
@@ -162,9 +158,9 @@ return {
|
||||
Container = function(base, basalt)
|
||||
local lastXMLReferences = {}
|
||||
|
||||
local function xmlDefaultValues(data, obj, renderContext)
|
||||
local function xmlDefaultValues(node, obj, renderContext)
|
||||
if (obj~=nil) then
|
||||
obj:setValuesByXMLData(data, renderContext)
|
||||
obj:setValuesByXMLData(node, renderContext)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -198,13 +194,13 @@ return {
|
||||
end
|
||||
|
||||
local object = {
|
||||
setValuesByXMLData = function(self, data, renderContext)
|
||||
setValuesByXMLData = function(self, node, renderContext)
|
||||
lastXMLReferences = {}
|
||||
base.setValuesByXMLData(self, data, renderContext)
|
||||
base.setValuesByXMLData(self, node, renderContext)
|
||||
|
||||
local _OBJECTS = basalt.getObjects()
|
||||
|
||||
for _, childNode in pairs(data.children) do
|
||||
for _, childNode in pairs(node.children) do
|
||||
local tagName = childNode.name
|
||||
if (tagName ~= "animation") then
|
||||
local layout = renderContext.env[tagName]
|
||||
@@ -218,7 +214,7 @@ return {
|
||||
end
|
||||
end
|
||||
|
||||
addXMLObjectType(data["animation"], self.addAnimation, self, renderContext)
|
||||
addXMLObjectType(node["animation"], self.addAnimation, self, renderContext)
|
||||
return self
|
||||
end,
|
||||
|
||||
@@ -228,11 +224,11 @@ return {
|
||||
renderContext.env = _ENV
|
||||
renderContext.env.props = props
|
||||
local f = fs.open(path, "r")
|
||||
local data = XMLParser.parseText(f.readAll())
|
||||
local nodeTree = XMLParser.parseText(f.readAll())
|
||||
f.close()
|
||||
lastXMLReferences = {}
|
||||
maybeExecuteScript(data, renderContext)
|
||||
self:setValuesByXMLData(data, renderContext)
|
||||
maybeExecuteScript(nodeTree, renderContext)
|
||||
self:setValuesByXMLData(nodeTree, renderContext)
|
||||
end
|
||||
return self
|
||||
end,
|
||||
@@ -246,17 +242,17 @@ return {
|
||||
|
||||
Textfield = function(base, basalt)
|
||||
local object = {
|
||||
setValuesByXMLData = function(self, data, renderContext)
|
||||
base.setValuesByXMLData(self, data, renderContext)
|
||||
if(data["lines"]~=nil)then
|
||||
local l = data["lines"]["line"]
|
||||
setValuesByXMLData = function(self, node, renderContext)
|
||||
base.setValuesByXMLData(self, node, renderContext)
|
||||
if(node["lines"]~=nil)then
|
||||
local l = node["lines"]["line"]
|
||||
if(l.attributes~=nil)then l = {l} end
|
||||
for _,v in pairs(l)do
|
||||
self:addLine(v.value)
|
||||
end
|
||||
end
|
||||
if(data["keywords"]~=nil)then
|
||||
for k,v in pairs(data["keywords"])do
|
||||
if(node["keywords"]~=nil)then
|
||||
for k,v in pairs(node["keywords"])do
|
||||
if(colors[k]~=nil)then
|
||||
local entry = v
|
||||
if(entry.attributes~=nil)then entry = {entry} end
|
||||
@@ -272,10 +268,10 @@ return {
|
||||
end
|
||||
end
|
||||
end
|
||||
if(data["rules"]~=nil)then
|
||||
if(data["rules"]["rule"]~=nil)then
|
||||
local tab = data["rules"]["rule"]
|
||||
if(data["rules"]["rule"].attributes~=nil)then tab = {data["rules"]["rule"]} end
|
||||
if(node["rules"]~=nil)then
|
||||
if(node["rules"]["rule"]~=nil)then
|
||||
local tab = node["rules"]["rule"]
|
||||
if(node["rules"]["rule"].attributes~=nil)then tab = {node["rules"]["rule"]} end
|
||||
for k,v in pairs(tab)do
|
||||
|
||||
if(XMLParser.xmlValue("pattern", v)~=nil)then
|
||||
@@ -292,8 +288,8 @@ return {
|
||||
|
||||
Thread = function(base, basalt)
|
||||
local object = {
|
||||
setValuesByXMLData = function(self, data, renderContext)
|
||||
local script = XMLParser.xmlValue("start", data)~=nil
|
||||
setValuesByXMLData = function(self, node, renderContext)
|
||||
local script = XMLParser.xmlValue("start", node)~=nil
|
||||
if(script~=nil)then
|
||||
local f = load(script, nil, "t", renderContext.env)
|
||||
self:start(f)
|
||||
@@ -306,9 +302,9 @@ return {
|
||||
|
||||
Timer = function(base, basalt)
|
||||
local object = {
|
||||
setValuesByXMLData = function(self, data, renderContext)
|
||||
base.setValuesByXMLData(self, data, renderContext)
|
||||
registerFunctionEvents(self, data, {
|
||||
setValuesByXMLData = function(self, node, renderContext)
|
||||
base.setValuesByXMLData(self, node, renderContext)
|
||||
registerFunctionEvents(self, node, {
|
||||
"onCall"
|
||||
}, renderContext)
|
||||
return self
|
||||
@@ -319,10 +315,10 @@ return {
|
||||
|
||||
List = function(base, basalt)
|
||||
local object = {
|
||||
setValuesByXMLData = function(self, data, renderContext)
|
||||
base.setValuesByXMLData(self, data, renderContext)
|
||||
if(data["item"]~=nil)then
|
||||
local tab = data["item"]
|
||||
setValuesByXMLData = function(self, node, renderContext)
|
||||
base.setValuesByXMLData(self, node, renderContext)
|
||||
if(node["item"]~=nil)then
|
||||
local tab = node["item"]
|
||||
if(tab.attributes~=nil)then tab = {tab} end
|
||||
for _,v in pairs(tab)do
|
||||
if(self:getType()~="Radio")then
|
||||
@@ -338,8 +334,8 @@ return {
|
||||
|
||||
Dropdown = function(base, basalt)
|
||||
local object = {
|
||||
setValuesByXMLData = function(self, data, renderContext)
|
||||
base.setValuesByXMLData(self, data, renderContext)
|
||||
setValuesByXMLData = function(self, node, renderContext)
|
||||
base.setValuesByXMLData(self, node, renderContext)
|
||||
return self
|
||||
end,
|
||||
}
|
||||
@@ -348,10 +344,10 @@ return {
|
||||
|
||||
Radio = function(base, basalt)
|
||||
local object = {
|
||||
setValuesByXMLData = function(self, data, renderContext)
|
||||
base.setValuesByXMLData(self, data, renderContext)
|
||||
if(data["item"]~=nil)then
|
||||
local tab = data["item"]
|
||||
setValuesByXMLData = function(self, node, renderContext)
|
||||
base.setValuesByXMLData(self, node, renderContext)
|
||||
if(node["item"]~=nil)then
|
||||
local tab = node["item"]
|
||||
if(tab.attributes~=nil)then tab = {tab} end
|
||||
for _,v in pairs(tab)do
|
||||
self:addItem(XMLParser.xmlValue("text", v), XMLParser.xmlValue("x", v), XMLParser.xmlValue("y", v), colors[XMLParser.xmlValue("bg", v)], colors[XMLParser.xmlValue("fg", v)])
|
||||
@@ -365,10 +361,10 @@ return {
|
||||
|
||||
Graph = function(base, basalt)
|
||||
local object = {
|
||||
setValuesByXMLData = function(self, data, renderContext)
|
||||
base.setValuesByXMLData(self, data, renderContext)
|
||||
if(data["item"]~=nil)then
|
||||
local tab = data["item"]
|
||||
setValuesByXMLData = function(self, node, renderContext)
|
||||
base.setValuesByXMLData(self, node, renderContext)
|
||||
if(node["item"]~=nil)then
|
||||
local tab = node["item"]
|
||||
if(tab.attributes~=nil)then tab = {tab} end
|
||||
for _,_ in pairs(tab)do
|
||||
self:addDataPoint(XMLParser.xmlValue("value"))
|
||||
@@ -382,11 +378,11 @@ return {
|
||||
|
||||
Treeview = function(base, basalt)
|
||||
local object = {
|
||||
setValuesByXMLData = function(self, data, renderContext)
|
||||
base.setValuesByXMLData(self, data, renderContext)
|
||||
local function addNode(node, data)
|
||||
if(data["node"]~=nil)then
|
||||
local tab = data["node"]
|
||||
setValuesByXMLData = function(self, node, renderContext)
|
||||
base.setValuesByXMLData(self, node, renderContext)
|
||||
local function addNode(node, node)
|
||||
if(node["node"]~=nil)then
|
||||
local tab = node["node"]
|
||||
if(tab.attributes~=nil)then tab = {tab} end
|
||||
for _,v in pairs(tab)do
|
||||
local n = node:addNode(XMLParser.xmlValue("text", v), colors[XMLParser.xmlValue("bg", v)], colors[XMLParser.xmlValue("fg", v)])
|
||||
@@ -394,8 +390,8 @@ return {
|
||||
end
|
||||
end
|
||||
end
|
||||
if(data["node"]~=nil)then
|
||||
local tab = data["node"]
|
||||
if(node["node"]~=nil)then
|
||||
local tab = node["node"]
|
||||
if(tab.attributes~=nil)then tab = {tab} end
|
||||
for _,v in pairs(tab)do
|
||||
local n = self:addNode(XMLParser.xmlValue("text", v), colors[XMLParser.xmlValue("bg", v)], colors[XMLParser.xmlValue("fg", v)])
|
||||
|
||||
@@ -30,9 +30,9 @@ return {
|
||||
end)
|
||||
end,
|
||||
|
||||
setValuesByXMLData = function(self, data, scripts)
|
||||
base.setValuesByXMLData(self, data, scripts)
|
||||
if(XMLParser.xmlValue("shadow", data)~=nil)then self:setShadow(XMLParser.xmlValue("shadow", data)) end
|
||||
setValuesByXMLData = function(self, node, scripts)
|
||||
base.setValuesByXMLData(self, node, scripts)
|
||||
if(XMLParser.xmlValue("shadow", node)~=nil)then self:setShadow(XMLParser.xmlValue("shadow", node)) end
|
||||
return self
|
||||
end
|
||||
}
|
||||
|
||||
@@ -109,11 +109,11 @@ return {
|
||||
self:setDrawState("texture-base", false)
|
||||
end,
|
||||
|
||||
setValuesByXMLData = function(self, data, scripts)
|
||||
base.setValuesByXMLData(self, data, scripts)
|
||||
if(XMLParser.xmlValue("texture", data)~=nil)then self:addTexture(XMLParser.xmlValue("texture", data), XMLParser.xmlValue("animate", data)) end
|
||||
if(XMLParser.xmlValue("textureMode", data)~=nil)then self:setTextureMode(XMLParser.xmlValue("textureMode", data)) end
|
||||
if(XMLParser.xmlValue("infinitePlay", data)~=nil)then self:setInfinitePlay(XMLParser.xmlValue("infinitePlay", data)) end
|
||||
setValuesByXMLData = function(self, node, scripts)
|
||||
base.setValuesByXMLData(self, node, scripts)
|
||||
if(XMLParser.xmlValue("texture", node)~=nil)then self:addTexture(XMLParser.xmlValue("texture", node), XMLParser.xmlValue("animate", node)) end
|
||||
if(XMLParser.xmlValue("textureMode", node)~=nil)then self:setTextureMode(XMLParser.xmlValue("textureMode", node)) end
|
||||
if(XMLParser.xmlValue("infinitePlay", node)~=nil)then self:setInfinitePlay(XMLParser.xmlValue("infinitePlay", node)) end
|
||||
return self
|
||||
end
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user