diff src/luan/modules/swing/List.luan @ 1616:915cb538e2a3

start swing
author Franklin Schmidt <fschmidt@gmail.com>
date Sat, 05 Jun 2021 21:42:29 -0600
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/luan/modules/swing/List.luan	Sat Jun 05 21:42:29 2021 -0600
@@ -0,0 +1,37 @@
+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