1616
|
1 local Luan = require "luan:Luan.luan"
|
|
2 local error = Luan.error
|
|
3 local set_metatable = Luan.set_metatable or error()
|
|
4 local type = Luan.type or error()
|
|
5 local Font = require "luan:swing/Font.luan"
|
|
6 require "java"
|
|
7 local JTextArea = require "java:javax.swing.JTextArea"
|
|
8
|
|
9
|
|
10 local Text_area = {}
|
|
11
|
|
12 local mt = {}
|
|
13
|
|
14 function mt.__index(text_area,key)
|
|
15 if key == "line_wrap" then
|
|
16 return text_area.java.getLineWrap()
|
|
17 end
|
|
18 if key == "wrap_style_word" then
|
|
19 return text_area.java.getWrapStyleWord()
|
|
20 end
|
|
21 if key == "tab_size" then
|
|
22 return text_area.java.getTabSize()
|
|
23 end
|
|
24 error("'"..key.."' not defined")
|
|
25 end
|
|
26
|
|
27 function mt.__new_index(text_area,key,value)
|
|
28 if key == "line_wrap" then
|
|
29 text_area.java.setLineWrap(value)
|
|
30 return
|
|
31 end
|
|
32 if key == "wrap_style_word" then
|
|
33 text_area.java.setWrapStyleWord(value)
|
|
34 return
|
|
35 end
|
|
36 if key == "tab_size" then
|
|
37 text_area.java.setTabSize(value)
|
|
38 return
|
|
39 end
|
|
40 if key == "font" then
|
|
41 if type(value) == "table" then
|
|
42 value = Font.get(value)
|
|
43 end
|
|
44 text_area.java.setFont(value)
|
|
45 return
|
|
46 end
|
|
47 error("'"..key.."' not defined")
|
|
48 end
|
|
49
|
|
50 function Text_area.new(rows,columns)
|
|
51 local jtext_area = JTextArea.new(rows,columns)
|
|
52 local text_area = { java = jtext_area }
|
|
53 set_metatable(text_area,mt)
|
|
54 return text_area
|
|
55 end
|
|
56
|
|
57 return Text_area
|