ExperimentalGear/scripts/components/pager/linkfield.lua

37 lines
910 B
Lua

require("common.class")
local Field = require("components.pager.field")
---@class LinkField: Field
---@field link Page
local LinkField = {
__tostring = function () return "LinkField" end
}
---Create a new Field instance
---@param o table
---@return LinkField
function LinkField:new(o)
o = Inherit(self, Field, o)
o.link = o.link or nil
return o
end
function LinkField:handleButtonInput(button)
if button == game.BUTTON_STA then
if self.parent and self.parent.viewHandler then
game.Log(self .. " navigate(" .. self.link .. ") called", game.LOGGER_INFO)
self.parent.viewHandler:navigate(self.link)
else
game.Log(self .. " can't access " ..
(self.parent and self.parent.viewHandler or "PageView") ..
" instance to navigate", game.LOGGER_ERROR)
end
end
return false
end
return LinkField