view src/luan/modules/swing/Scroll_pane.luan @ 1992:ac02e07f09de default tip

add config
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 01 Jul 2025 15:14:26 -0600
parents a8bab2b60b67
children
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 make_metatable = Utils.make_metatable or error()
local remove = Utils.remove or error()
local check_empty = Utils.check_empty or error()
local Component = require "luan:swing/Component.luan"
local super_construct = Component.construct or error()
local super_mt = Component.mt or error()
local Swing_runner = require "luan:swing/Swing_runner.luan"
local run_later = Swing_runner.run_later or error()
require "java"
local JScrollPane = require "java:javax.swing.JScrollPane"
local Logging = require "luan:logging/Logging.luan"
local logger = Logging.logger "swing/Scroll_pane"


local Scroll_pane = {}

function Scroll_pane.new(props)
	local view = remove(props,"view") or error "view property requied"
	local jscroll_pane = JScrollPane.new(view.java)
	local scroll_pane = { java = jscroll_pane }
	super_construct(scroll_pane,props)
	local row_header_view = remove(props,"row_header_view")
	if row_header_view~=nil then jscroll_pane.setRowHeaderView(row_header_view.java) end
	check_empty(props)
	function scroll_pane.set_row_header_view(view)
		jscroll_pane.setRowHeaderView(view.java)
	end
	function scroll_pane.scroll_to_right()
		run_later( function()
			local bar = jscroll_pane.getHorizontalScrollBar()
			bar.setValue( bar.getMaximum() )
		end )
	end
	set_metatable(scroll_pane,super_mt)
	return scroll_pane
end

return Scroll_pane