Path: csiph.com!news.swapon.de!eternal-september.org!feeder.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: Jeff Higgins Newsgroups: comp.lang.c,comp.lang.java.programmer Subject: Re: Self-updating relationship Date: Thu, 03 Sep 2015 11:31:02 -0400 Organization: A noiseless patient Spider Lines: 56 Message-ID: References: <55E766BD.3060303@verizon.net> <55E77D04.6080200@verizon.net> <55E78636.5000908@verizon.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Thu, 3 Sep 2015 15:30:40 +0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="a78aad8b483612fbf45d18e918df0cca"; logging-data="9196"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX187cW9V0M/I7sr2GkMVCbwCGLAt7IJ45KI=" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.8.0 In-Reply-To: Cancel-Lock: sha1:YBBvSbRItKq5IDCF3BD4khQRhpc= Xref: csiph.com comp.lang.c:69141 comp.lang.java.programmer:32493 On 09/03/2015 10:53 AM, James Kuyper wrote: > On 09/03/2015 10:32 AM, Jeff Higgins wrote: >> On 09/02/2015 11:52 PM, Jeff Higgins wrote: >>> On 09/02/2015 07:28 PM, James Kuyper wrote: >> >>>> Your earlier version had: >>>>> final javafx.beans.binding.NumberBinding spaces = >>>>> height.subtract( number ); >>>> >>>> which causes spaces.getValue() to behave like the equivalent of a C++ >>>> member function whose return value is calculated using the specified >>>> formula freshly each time "spaces" is referred to. Is this a >>>> characteristic of binding.NumberBinding, or some more general Java >>>> feature? >>> >>> It's a characteristic of the >>> javafx.beans.binding.Binding interface. >>> >>> >> >> Sorry, this is incorrect. >> It's a characteristic of the >> javafx.beans.property.Property interface. >> > > According to Stefan Ram, using the following code: >> final javafx.beans.binding.NumberBinding spaces = >> height.subtract( number ); > > would cause the subtraction to be re-evaluated with the current values > of height and number, each time spaces.getValue() is called, while Correct. > > >> final javafx.beans.property.IntegerProperty spaces >> = new javafx.beans.property.SimpleIntegerProperty >> ( height.getValue() - number.getValue() ); > > would cause the subtraction to be performed only once, when spaces is > created. Are you saying he got those reversed? No. I don't know if you saw my example elsewhere in this thread. I think it is more clear than the example provided by Stefan. Bringing NumberBinding into the example was unfortunate IMHO. In it, the ability to bind/unbind becomes much easier. Despite its name, to get NumberBinding to provide bind/unbind capabilities you must do the work yourself. As recommended in the NumberBinding javadoc this is best done by extending a base class implementation such as DoubleBinding. See the DoubleBinding javadoc for example code.