1616
|
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
|