57 lines
1.1 KiB
Lua
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 })
|