diff src/luan/modules/swing/Text_area.luan @ 1862:d59d4ef5ca46

swing work
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 30 Mar 2025 13:17:27 -0600
parents 915cb538e2a3
children 928e73bfe7ea
line wrap: on
line diff
--- a/src/luan/modules/swing/Text_area.luan	Tue Mar 25 09:26:16 2025 -0600
+++ b/src/luan/modules/swing/Text_area.luan	Sun Mar 30 13:17:27 2025 -0600
@@ -2,7 +2,8 @@
 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"
+local get_font = require("luan:swing/Font.luan").get or error()
+local new_component = require("luan:swing/Component.luan").new or error()
 require "java"
 local JTextArea = require "java:javax.swing.JTextArea"
 
@@ -21,6 +22,15 @@
 	if key == "tab_size" then
 		return text_area.java.getTabSize()
 	end
+	if key == "rows" then
+		return text_area.java.getRows()
+	end
+	if key == "columns" then
+		return text_area.java.getColumns()
+	end
+	if key == "line_count" then
+		return text_area.java.getLineCount()
+	end
 	error("'"..key.."' not defined")
 end
 
@@ -37,19 +47,26 @@
 		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)
+	if key == "rows" then
+		text_area.java.setRows(value)
+		return
+	end
+	if key == "columns" then
+		text_area.java.setColumns(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 }
+function Text_area.new()
+	local jtext_area = JTextArea.new()
+	local text_area = new_component(jtext_area)
+	function text_area.set_font(font)
+		if type(font) == "table" then
+			font = get_font(font)
+		end
+		jtext_area.setFont(font)
+	end
 	set_metatable(text_area,mt)
 	return text_area
 end