Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 10 additions & 13 deletions main.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,22 +35,19 @@ def start(stage)
## -
# some_label.text_property.bind(Bindings.select_string(all_items.get_selection_model.selected_item_property, "blurp"))

# - This works..
# # - This works..
# # -
# all_items.get_selection_model.selected_item_property.add_listener(
# ->(_, _, nw) { some_label.text = "heading: #{nw.heading} (value: #{nw.value})" }
# )

# - Trying with Enebo's RubyPropertyBinding suggestion, a level seems to be missing at the reload_value method
# - https://gist.github.com/enebo/e991ee9d54fd24f69127443388b440ee
# -
all_items.get_selection_model.selected_item_property.add_listener(
->(_, _, nw) { some_label.text = "heading: #{nw.heading} (value: #{nw.value})" }
some_label.text_property.bind(
RubyPropertyBinding.new(property: all_items.get_selection_model.selected_item_property, method: "blurp")
)

## - Trying with Enebo's RubyPropertyBinding suggestion, a level seems to be missing at the reload_value method
## - https://gist.github.com/enebo/e991ee9d54fd24f69127443388b440ee
## -
# some_label.text_property.bind(
# RubyPropertyBinding.new(
# property: all_items.get_selection_model.selected_item_property,
# method: "blurp"
# )
# )

stage.scene = Scene.new(root)
stage.title = "Hello Universe"
stage.show
Expand Down
1 change: 1 addition & 0 deletions main_item.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
require "jrubyfx"
require "pry"

java_import "javafx.scene.control.TreeItem"

Expand Down
4 changes: 3 additions & 1 deletion ruby_property_binding.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
require 'set'
require "pry"

# Note: I added @valid as explcit boolean because method may return nil as
# valid value so I cannot overload @value.
Expand Down Expand Up @@ -44,6 +45,7 @@ def getValue
end

def reload_value
@value = @property.__send__ @method
return unless @property.get
@value = @property.get.__send__ @method
end
end