Mercurial Hosting > luan
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