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