diff src/luan/modules/swing/Text_area.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/Text_area.luan	Sat Jun 05 21:42:29 2021 -0600
@@ -0,0 +1,57 @@
+local Luan = require "luan:Luan.luan"
+local error = Luan.error
+local set_metatable = Luan.set_metatable or error()
+local type = Luan.type or error()
+local Font = require "luan:swing/Font.luan"
+require "java"
+local JTextArea = require "java:javax.swing.JTextArea"
+
+
+local Text_area = {}
+
+local mt = {}
+
+function mt.__index(text_area,key)
+	if key == "line_wrap" then
+		return text_area.java.getLineWrap()
+	end
+	if key == "wrap_style_word" then
+		return text_area.java.getWrapStyleWord()
+	end
+	if key == "tab_size" then
+		return text_area.java.getTabSize()
+	end
+	error("'"..key.."' not defined")
+end
+
+function mt.__new_index(text_area,key,value)
+	if key == "line_wrap" then
+		text_area.java.setLineWrap(value)
+		return
+	end
+	if key == "wrap_style_word" then
+		text_area.java.setWrapStyleWord(value)
+		return
+	end
+	if key == "tab_size" then
+		text_area.java.setTabSize(value)
+		return
+	end
+	if key == "font" then
+		if type(value) == "table" then
+			value = Font.get(value)
+		end
+		text_area.java.setFont(value)
+		return
+	end
+	error("'"..key.."' not defined")
+end
+
+function Text_area.new(rows,columns)
+	local jtext_area = JTextArea.new(rows,columns)
+	local text_area = { java = jtext_area }
+	set_metatable(text_area,mt)
+	return text_area
+end
+
+return Text_area