43 lines
1.1 KiB
Lua
43 lines
1.1 KiB
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 = o or {}
|
|
|
|
o.link = o.link or nil
|
|
|
|
return Inherit(self, o, Field)
|
|
end
|
|
|
|
function LinkField:handleButtonInput(button)
|
|
if not self.link then
|
|
game.Log(tostring(self) .. " does not have a valid link", game.LOGGER_ERROR)
|
|
return false
|
|
end
|
|
|
|
if button == game.BUTTON_STA then
|
|
local parentPage = self:getParentPage()
|
|
if parentPage and parentPage.viewHandler then
|
|
game.Log(tostring(self) .. " viewHandler:navigate(" .. tostring(self.link) .. ") called", game.LOGGER_INFO)
|
|
parentPage.viewHandler:navigate(self.link)
|
|
return true
|
|
else
|
|
local target = (parentPage and parentPage.viewHandler or "PageView")
|
|
game.Log(tostring(self) .. " can't access " .. tostring(target) .. " instance", game.LOGGER_ERROR)
|
|
end
|
|
end
|
|
|
|
return false
|
|
end
|
|
|
|
return LinkField
|