<html><head></head><body><div style="font-family: Verdana;font-size: 12.0px;"><div>Yes, John made some good points about how the Behaviour API could look like, which I also agree on.</div>

<div>
<div>CSS will get performance improvements with the changes made by John in JDK-8322964, but I would agree that there is more in the CSS code which should/could be optimized.</div>

<div> </div>

<div>-- Marius</div>

<div> 
<div name="quote" style="margin:10px 5px 5px 10px; padding: 10px 0 10px 10px; border-left:2px solid #C3D9E5; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div style="margin:0 0 10px 0;"><b>Gesendet:</b> Freitag, 08. März 2024 um 07:37 Uhr<br/>
<b>Von:</b> "Robert Lichtenberger" <r.lichtenberger@gmail.com><br/>
<b>An:</b> openjfx-dev@openjdk.java.net<br/>
<b>Betreff:</b> Re: Validation Support</div>

<div name="quoted-content">
<p> </p>

<div class="moz-cite-prefix">Am 08.03.24 um 00:40 schrieb Marius Hanl:</div>

<blockquote>
<div style="font-family: Verdana;font-size: 12.0px;">
<div>One note here regarding that a lot of things are final in JavaFX:</div>

<div>
<div> </div>

<div>The problem is not that everything is final - this is intended and makes sense, since we speak mostly of properties here. Overriding those will not give you any benefit.</div>

<div>You mostly want to override e.g. Controls if you add something new to it (a new property) or may just want to set another default skin.</div>

<div>This design is mostly superior than e.g. Swing, where you can override things and easily break something if not too careful.</div>

<div>Pretty sure that this were some lessons learned from the development of Swing.</div>

<div> </div>

<div>The biggest problem is rather that a lot of methods are package private or 'Accessors' are used to call specific methods, which is not just a questionable design but also restrict the usage.</div>

<div> </div>

<div>It is often not possible to override even a minor feature inside the skin.</div>

<div>So you may rather want to recreate the skin then, and copy the existing skin and just change some stuff. But this will mostly not work either, as there is a lot of internal API usage, e.g. Accessors or some com.sun.javafx.scene.control.skin.Utils usage.</div>
</div>
</div>
</blockquote>

<p>Yes, I had such a problem yesterday. TableView uses <Ctrl>+<Space> as shortcut to toggle selection of current row. I want to use that key combination as a "global" shortcut however. I have a regular menu bar with a menu item that has <Ctrl>+<Space> as accelerator.</p>

<p>Now I need to remove that bit from the TableView's behavior. I've seen that there are efforts under way to make behavior public API. I would really welcome that :-).</p>

<p> </p>

<p>BTW, <a class="moz-txt-link-freetext" href="https://bugs.openjdk.org/browse/JDK-8088068" target="_blank">https://bugs.openjdk.org/browse/JDK-8088068</a> is also an issue concerning accelerators that I currently need a separate class as workaround.</p>

<p> </p>

<p>Other issues that I currently work around somehow (inconvenient, but no showstopper):</p>

<p>JDK-8092315, JDK-8087981, maybe also JDK-8123117, but I think that on is correctly closed as  "not an issue", will have to check.</p>

<p>To put this into perspective, we have a lot more references to JavaFX issues in our code, which have all been fixed :-).</p>

<p> </p>

<p>One major pain point that we have at the moment is CSS performance, I think (but did not investigate yet) that some kind of performance regression happened somewhere between 17 and 21.</p>

<p> </p>

<p>Overall speaking, with the ongoing efforts for a RichText-control and making behavior public API, I think JavaFX is definitely on the right track, at least from my perspective :-).</p>

<p> </p>

<p>--Robert</p>
</div>
</div>
</div>
</div></div></body></html>