view src/luan/modules/swing/List.luan @ 1801:32e77b071e09 default tip

webserver logging
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 12 Mar 2024 09:28:39 -0600
parents 915cb538e2a3
children
line wrap: on
line source

local Luan = require "luan:Luan.luan"
local error = Luan.error
local set_metatable = Luan.set_metatable or error()
require "java"
local JList = require "java:javax.swing.JList"
local DefaultListModel = require "java:javax.swing.DefaultListModel"


local List = {}

local mt = {}

function mt.__index(list,key)
	if key == "size" then
		return list.model.getSize()
	end
	error("'"..key.."' not defined")
end

function mt.__new_index(list,key,value)
	if key == "size" then
		list.model.setSize(value)
		return
	end
	error("'"..key.."' not defined")
end

function List.new()
	local model = DefaultListModel.new()
	local jlist = JList.new(model)
	local list = { java=jlist, model=model }
	list.add_element = model.addElement
	set_metatable(list,mt)
	return list
end

return List