comparison 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
comparison
equal deleted inserted replaced
1615:38894708bade 1616:915cb538e2a3
1 local Luan = require "luan:Luan.luan"
2 local error = Luan.error
3 local set_metatable = Luan.set_metatable or error()
4 require "java"
5 local JList = require "java:javax.swing.JList"
6 local DefaultListModel = require "java:javax.swing.DefaultListModel"
7
8
9 local List = {}
10
11 local mt = {}
12
13 function mt.__index(list,key)
14 if key == "size" then
15 return list.model.getSize()
16 end
17 error("'"..key.."' not defined")
18 end
19
20 function mt.__new_index(list,key,value)
21 if key == "size" then
22 list.model.setSize(value)
23 return
24 end
25 error("'"..key.."' not defined")
26 end
27
28 function List.new()
29 local model = DefaultListModel.new()
30 local jlist = JList.new(model)
31 local list = { java=jlist, model=model }
32 list.add_element = model.addElement
33 set_metatable(list,mt)
34 return list
35 end
36
37 return List