Remove all special uses of xmlValue

This commit is contained in:
Sabine Lim
2023-05-16 22:13:14 +10:00
parent f2113417b0
commit b5051e4e93
8 changed files with 12 additions and 272 deletions

View File

@@ -7,16 +7,6 @@ local XMLNode = {
children = {},
addChild = function(self, child)
if self[child.tag] ~= nil then
if type(self[child.tag].tag) == "function" then
local tempTable = {}
table.insert(tempTable, self[child.tag])
self[child.tag] = tempTable
end
table.insert(self[child.tag], child)
else
self[child.tag] = child
end
table.insert(self.children, child)
end,
@@ -39,28 +29,6 @@ local parseAttributes = function(node, s)
end
local XMLParser = {
xmlValue = function(tag, tab)
local var
if(type(tab)~="table")then return end
if(tab[tag]~=nil)then
if(type(tab[tag])=="table")then
if(tab[tag].value~=nil)then
var = tab[tag].value
end
end
end
if(var==nil)then var = tab["@"..tag] end
if(var=="true")then
var = true
elseif(var=="false")then
var = false
elseif(tonumber(var)~=nil)then
var = tonumber(var)
end
return var
end,
parseText = function(xmlText)
local stack = {}
local top = XMLNode.new()

View File

@@ -28,12 +28,6 @@ return {
return bgSymbolColor
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,
draw = function(self)
base.draw(self)
self:addDraw("advanced-bg", function()
@@ -44,8 +38,8 @@ return {
self:addForegroundBox(1, 1, w, h, bgSymbolColor)
end
end
end, 2)
end,
end, 2)
end
}
return object

View File

@@ -336,24 +336,7 @@ return {
end
end
end
end,
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
if(animW~=nil and animH~=nil)then
self:animateSize(animW, animH, animateDuration, animeteTimeOffset, animateMode)
end
if(animXOffset~=nil and animYOffset~=nil)then
self:animateOffset(animXOffset, animYOffset, animateDuration, animeteTimeOffset, animateMode)
end
return self
end,
end
}
return object

View File

@@ -195,12 +195,6 @@ return {
end
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,
draw = function(self)
base.draw(self)
self:addDraw("bigfonts", function()
@@ -219,7 +213,7 @@ return {
end
end
end)
end,
end
}
return object
end

View File

@@ -79,23 +79,6 @@ return {
end
end
end)
end,
setValuesByXMLData = function(self, node, scripts)
base.setValuesByXMLData(self, node)
local borders = {}
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", 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
}

View File

@@ -200,22 +200,21 @@ return {
local _OBJECTS = basalt.getObjects()
for _, childNode in pairs(node.children) do
local tagName = childNode.tag
if (tagName ~= "animation") then
for _, child in pairs(node.children) do
local tagName = child.tag
if (tagName == "animation") then
addXMLObjectType(child, self.addAnimation, self, renderContext)
else
local layout = renderContext.env[tagName]
local objectKey = tagName:gsub("^%l", string.upper)
if (layout ~= nil) then
insertChildLayout(self, layout, childNode, renderContext)
insertChildLayout(self, layout, child, renderContext)
elseif (_OBJECTS[objectKey] ~= nil) then
local addFn = self["add" .. objectKey]
addXMLObjectType(childNode, addFn, self, renderContext)
addXMLObjectType(child, addFn, self, renderContext)
end
end
end
addXMLObjectType(node["animation"], self.addAnimation, self, renderContext)
return self
end,
loadLayout = function(self, path, props)
@@ -238,172 +237,5 @@ return {
end,
}
return object
end,
Textfield = function(base, basalt)
local object = {
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(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
local tab = {}
for a,b in pairs(entry)do
local keywordList = b["keyword"]
if(b["keyword"].attributes~=nil)then keywordList = {b["keyword"]} end
for c,d in pairs(keywordList)do
table.insert(tab, d.value)
end
end
self:addKeywords(colors[k], tab)
end
end
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
self:addRule(XMLParser.xmlValue("pattern", v), colors[XMLParser.xmlValue("fg", v)], colors[XMLParser.xmlValue("bg", v)])
end
end
end
end
return self
end,
}
return object
end,
Thread = function(base, basalt)
local object = {
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)
end
return self
end,
}
return object
end,
Timer = function(base, basalt)
local object = {
setValuesByXMLData = function(self, node, renderContext)
base.setValuesByXMLData(self, node, renderContext)
registerFunctionEvents(self, node, {
"onCall"
}, renderContext)
return self
end,
}
return object
end,
List = function(base, basalt)
local object = {
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
self:addItem(XMLParser.xmlValue("text", v), colors[XMLParser.xmlValue("bg", v)], colors[XMLParser.xmlValue("fg", v)])
end
end
end
return self
end,
}
return object
end,
Dropdown = function(base, basalt)
local object = {
setValuesByXMLData = function(self, node, renderContext)
base.setValuesByXMLData(self, node, renderContext)
return self
end,
}
return object
end,
Radio = function(base, basalt)
local object = {
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)])
end
end
return self
end,
}
return object
end,
Graph = function(base, basalt)
local object = {
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"))
end
end
return self
end,
}
return object
end,
Treeview = function(base, basalt)
local object = {
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)])
addNode(n, v)
end
end
end
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)])
addNode(n, v)
end
end
return self
end,
}
return object
end,
end
}

View File

@@ -28,12 +28,6 @@ return {
end
end
end)
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
}

View File

@@ -107,14 +107,6 @@ return {
end
end, 1)
self:setDrawState("texture-base", false)
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
}