[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-openjfx-dev
Subject:    Re: CSS vs API modifications in *View classes
From:       Tom Schindl <tom.schindl () bestsolution ! at>
Date:       2014-05-29 13:22:44
Message-ID: 11FFC01F-614E-4622-AACF-DD5A96B7F5F0 () bestsolution ! at
[Download RAW message or body]

May statement could be read wrong setStyle for graphics generally works unless you \
generate the image on the fly using writableimage, so you don't have a URL!

Tom

Von meinem iPhone gesendet

> Am 29.05.2014 um 13:22 schrieb David Grieve <david.grieve@oracle.com>:
> 
> If setStyle doesn't work for graphic, then that is a bug.
> 
> I agree that css and user concurrency is black magic. Better documentation would \
> help, but I'm not yet convinced that there is an API solution to the problem unless \
> the API is up in *PropertyBase (e.g. init(T value), void reset()) 
> > On 5/28/14, 4:46 PM, Tom Schindl wrote:
> > setStyle works for most but often not for graphic - i went the styleproperty cast \
> > way but my gut tells me there's something we need improve the CSS vs User \
> > concurrency is something very few people know about and the bad thing is the API \
> > does not give you a clue about it. 
> > Tom
> > 
> > Von meinem iPhone gesendet
> > 
> > > Am 28.05.2014 um 21:19 schrieb David Grieve <david.grieve@oracle.com>:
> > > 
> > > Using styles is preferable to setting the property value. If styles are used, \
> > > then you don't have the problem you describe. 
> > > An alternative, if styles are not used, is to cast the property to \
> > > StyleableProperty and use applyStyle(null, value) instead of set. CSS then \
> > > thinks that the value has never been set. This pattern is used, for example, in \
> > > Labeled to initialize the focusTraversableProperty to false. So one option is \
> > > to use applyStyle in the updateItem method rather than set. Of course, this is \
> > > one of those tricks that you have to be in-the-know to make use of. But I would \
> > > argue that restoreInitialPropertyState() is also a trick that you have to be \
> > > in-the-know to make use of. 
> > > > On 5/28/14, 6:35 AM, Tom Schindl wrote:
> > > > Hi,
> > > > 
> > > > All views in JavaFX are virtual and the Cell instances are reused but
> > > > this brings with it the problem that if you once modified a CSS
> > > > styleable value (e.g. the textfill, font, ...) you are unable to return
> > > > to a state where a CSS could be applied.
> > > > 
> > > > I think Cell needs to provide reset methods for properties who are
> > > > styleable so that one can set back the cell into a css-styleable state,
> > > > or maybe we want this to be more general and we need to provide a method
> > > > for all properties who are styled so that we can reset them?
> > > > 
> > > > I could imagine Node having a method: restoreInitialPropertyState()
> > > > which subclasses need to implement to restore all its properties to be
> > > > css styleable.
> > > > 
> > > > For Cell i think there's no way around that because it is reused and
> > > > needs to have a way to get back to the original state.
> > > > 
> > > > Tom
> 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic