Mercurial Hosting > luan
view src/luan/modules/swing/Dialog.luan @ 1944:bb12d502b72e default tip
minor
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 20 May 2025 11:18:26 -0600 |
parents | a25b7963a792 |
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 fail = Utils.fail or error() local make_metatable = Utils.make_metatable or error() local remove = Utils.remove or error() local check_empty = Utils.check_empty or error() local check_not_nil = Utils.check_not_nil or error() local new_component = require("luan:swing/Component.luan").new_component or error() local Awt_window = require "luan:swing/Awt_window.luan" local super__index = Awt_window.__index or error() local super__new_index = Awt_window.__new_index or error() local super_construct = Awt_window.construct or error() require "java" local JDialog = require "java:javax.swing.JDialog" local Logging = require "luan:logging/Logging.luan" local logger = Logging.logger "swing/Dialog" local Dialog = {} function Dialog.__index(dialog,key) local rtn = super__index(dialog,key) if rtn ~= fail then return rtn end local jdialog = dialog.java --[[ if key == "component" then local jcomponent = jdialog.getContentPane() local component = jcomponent.getClientProperty("luan") if component == nil then component = new_component(jcomponent) end return component end ]] return fail end function Dialog.__new_index(dialog,key,value) local rtn = super__new_index(dialog,key,value) if rtn ~= fail then return end local jdialog = dialog.java return fail end local mt = make_metatable(Dialog) function Dialog.new(props) check_not_nil(props) local owner_frame = remove(props,"owner_frame") local jdialog = JDialog.new( owner_frame and owner_frame.java ) local dialog = { java = jdialog } super_construct(dialog,props) local content_pane = remove(props,"content_pane") if content_pane~=nil then jdialog.setContentPane(content_pane.java) end check_empty(props) function dialog.move_into_owner() jdialog.setLocationRelativeTo(jdialog.getOwner()) end set_metatable(dialog,mt) return dialog end return Dialog