Mercurial Hosting > luan
view src/luan/modules/swing/Text_area.luan @ 1885:d1708f8d4923
swing
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 08 Apr 2025 23:02:14 -0600 |
parents | 708e7f047c59 |
children | bea843af3422 |
line wrap: on
line source
local Luan = require "luan:Luan.luan" local error = Luan.error local set_metatable = Luan.set_metatable or error() local Utils = require "luan:swing/Utils.luan" local fail = Utils.fail or error() local make_metatable = Utils.make_metatable or error() local check_empty = Utils.check_empty or error() local Text_component = require("luan:swing/Text_component.luan") local super__index = Text_component.__index or error() local super__new_index = Text_component.__new_index or error() local super_construct = Text_component.construct or error() require "java" local TextAreaLuan = require "java:luan.modules.swing.TextAreaLuan" local Text_area = {} function Text_area.__index(text_area,key) local rtn = super__index(text_area,key) if rtn ~= fail then return rtn end 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 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 return fail end function Text_area.__new_index(text_area,key,value) local rtn = super__new_index(text_area,key,value) if rtn ~= fail then return end 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 == "rows" then text_area.java.setRows(value) return end if key == "columns" then text_area.java.setColumns(value) return end return fail end local mt = make_metatable(Text_area) function Text_area.new(props) local jtext_area = TextAreaLuan.new() local text_area = { java = jtext_area } super_construct(text_area,props) check_empty(props) text_area.show_whitespace = jtext_area.showWhitespace function text_area.get_line_from_position(pos) return jtext_area.getLineOfOffset(pos-1) + 1 end function text_area.get_line_start_position(line) return jtext_area.getLineStartOffset(line-1) + 1 end function text_area.get_line_end_position(line) return jtext_area.getLineEndOffset(line-1) + 1 end function text_area.insert(text,pos) return jtext_area.insert(text,pos-1) end function text_area.replace(start_pos,length,text) return jtext_area.getDocument().replace(start_pos-1,length,text) end set_metatable(text_area,mt) return text_area end return Text_area