annotate src/luan/modules/swing/Scroll_pane.luan @ 1996:d5c21ca9703e default tip

move threads to admin
author Franklin Schmidt <fschmidt@gmail.com>
date Fri, 04 Jul 2025 11:39:41 -0600
parents a8bab2b60b67
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1616
915cb538e2a3 start swing
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
1 local Luan = require "luan:Luan.luan"
915cb538e2a3 start swing
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
2 local error = Luan.error
915cb538e2a3 start swing
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
3 local set_metatable = Luan.set_metatable or error()
1874
Franklin Schmidt <fschmidt@gmail.com>
parents: 1873
diff changeset
4 local Utils = require "luan:swing/Utils.luan"
Franklin Schmidt <fschmidt@gmail.com>
parents: 1873
diff changeset
5 local make_metatable = Utils.make_metatable or error()
1944
Franklin Schmidt <fschmidt@gmail.com>
parents: 1942
diff changeset
6 local remove = Utils.remove or error()
1885
Franklin Schmidt <fschmidt@gmail.com>
parents: 1884
diff changeset
7 local check_empty = Utils.check_empty or error()
1873
Franklin Schmidt <fschmidt@gmail.com>
parents: 1616
diff changeset
8 local Component = require "luan:swing/Component.luan"
1884
Franklin Schmidt <fschmidt@gmail.com>
parents: 1881
diff changeset
9 local super_construct = Component.construct or error()
1892
Franklin Schmidt <fschmidt@gmail.com>
parents: 1887
diff changeset
10 local super_mt = Component.mt or error()
1959
a8bab2b60b67 swing threading
Franklin Schmidt <fschmidt@gmail.com>
parents: 1944
diff changeset
11 local Swing_runner = require "luan:swing/Swing_runner.luan"
a8bab2b60b67 swing threading
Franklin Schmidt <fschmidt@gmail.com>
parents: 1944
diff changeset
12 local run_later = Swing_runner.run_later or error()
1616
915cb538e2a3 start swing
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
13 require "java"
915cb538e2a3 start swing
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
14 local JScrollPane = require "java:javax.swing.JScrollPane"
1942
Franklin Schmidt <fschmidt@gmail.com>
parents: 1939
diff changeset
15 local Logging = require "luan:logging/Logging.luan"
Franklin Schmidt <fschmidt@gmail.com>
parents: 1939
diff changeset
16 local logger = Logging.logger "swing/Scroll_pane"
1616
915cb538e2a3 start swing
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
17
915cb538e2a3 start swing
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
18
915cb538e2a3 start swing
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
19 local Scroll_pane = {}
915cb538e2a3 start swing
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
20
1885
Franklin Schmidt <fschmidt@gmail.com>
parents: 1884
diff changeset
21 function Scroll_pane.new(props)
1944
Franklin Schmidt <fschmidt@gmail.com>
parents: 1942
diff changeset
22 local view = remove(props,"view") or error "view property requied"
1616
915cb538e2a3 start swing
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
23 local jscroll_pane = JScrollPane.new(view.java)
915cb538e2a3 start swing
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
24 local scroll_pane = { java = jscroll_pane }
1885
Franklin Schmidt <fschmidt@gmail.com>
parents: 1884
diff changeset
25 super_construct(scroll_pane,props)
1944
Franklin Schmidt <fschmidt@gmail.com>
parents: 1942
diff changeset
26 local row_header_view = remove(props,"row_header_view")
1887
Franklin Schmidt <fschmidt@gmail.com>
parents: 1885
diff changeset
27 if row_header_view~=nil then jscroll_pane.setRowHeaderView(row_header_view.java) end
1885
Franklin Schmidt <fschmidt@gmail.com>
parents: 1884
diff changeset
28 check_empty(props)
1616
915cb538e2a3 start swing
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
29 function scroll_pane.set_row_header_view(view)
915cb538e2a3 start swing
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
30 jscroll_pane.setRowHeaderView(view.java)
915cb538e2a3 start swing
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
31 end
1939
Franklin Schmidt <fschmidt@gmail.com>
parents: 1892
diff changeset
32 function scroll_pane.scroll_to_right()
Franklin Schmidt <fschmidt@gmail.com>
parents: 1892
diff changeset
33 run_later( function()
Franklin Schmidt <fschmidt@gmail.com>
parents: 1892
diff changeset
34 local bar = jscroll_pane.getHorizontalScrollBar()
Franklin Schmidt <fschmidt@gmail.com>
parents: 1892
diff changeset
35 bar.setValue( bar.getMaximum() )
Franklin Schmidt <fschmidt@gmail.com>
parents: 1892
diff changeset
36 end )
Franklin Schmidt <fschmidt@gmail.com>
parents: 1892
diff changeset
37 end
1892
Franklin Schmidt <fschmidt@gmail.com>
parents: 1887
diff changeset
38 set_metatable(scroll_pane,super_mt)
1616
915cb538e2a3 start swing
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
39 return scroll_pane
915cb538e2a3 start swing
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
40 end
915cb538e2a3 start swing
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
41
915cb538e2a3 start swing
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
42 return Scroll_pane