Files
opus-apps/milo/plugins/importView.lua
2018-10-23 22:32:25 -04:00

57 lines
1.1 KiB
Lua

local UI = require('ui')
local Util = require('util')
local device = _G.device
local importView = UI.Window {
mtype = 'machine',
title = 'Import item from machine',
index = 4,
grid = UI.ScrollingGrid {
y = 2, ey = -2,
columns = {
{ heading = 'Slot', key = 'slot', width = 4 },
{ heading = 'Import', key = 'import' },
},
sortColumn = 'slot',
help = 'Double-click to toggle'
},
}
function importView:setMachine(machine)
local m = device[machine.name]
local t = { }
for k = 1, m.size() do
t[k] = { slot = k }
end
if machine.imports then
for k,v in pairs(machine.imports) do
t[k] = { slot = k, import = v }
end
end
self.grid:setValues(t)
end
function importView:save(machine)
local t = { }
for k,v in pairs(self.grid.values) do
if v.import then
t[k] = true
end
end
machine.imports = not Util.empty(t) and t or nil
return true
end
function importView:eventHandler(event)
if event.type == 'grid_select' then
event.selected.import = not event.selected.import
self.grid:draw()
end
end
UI:getPage('machineWizard').wizard:add({ import = importView })