From 6d2fef17a5483bea016ef380f0284f7b701b780e Mon Sep 17 00:00:00 2001 From: Stergios Date: Sat, 11 Mar 2017 13:09:15 +0100 Subject: [PATCH] Unwrap reload_value with get --- main.rb | 23 ++++++++++------------- main_item.rb | 1 + ruby_property_binding.rb | 4 +++- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/main.rb b/main.rb index 7c0b288..748626a 100644 --- a/main.rb +++ b/main.rb @@ -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 diff --git a/main_item.rb b/main_item.rb index f76caf2..baf934f 100644 --- a/main_item.rb +++ b/main_item.rb @@ -1,4 +1,5 @@ require "jrubyfx" +require "pry" java_import "javafx.scene.control.TreeItem" diff --git a/ruby_property_binding.rb b/ruby_property_binding.rb index 164c3e0..00b29b4 100644 --- a/ruby_property_binding.rb +++ b/ruby_property_binding.rb @@ -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. @@ -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