<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Geometrie, Layer und JavaFX</title><link>https://sourceforge.net/p/manuela/wiki/Geometrie%252C%2520Layer%2520und%2520JavaFX/</link><description>Recent changes to Geometrie, Layer und JavaFX</description><atom:link href="https://sourceforge.net/p/manuela/wiki/Geometrie,%20Layer%20und%20JavaFX/feed" rel="self"/><language>en</language><lastBuildDate>Mon, 12 Jun 2017 09:38:10 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/manuela/wiki/Geometrie,%20Layer%20und%20JavaFX/feed" rel="self" type="application/rss+xml"/><item><title>Geometrie, Layer und JavaFX modified by Gismo</title><link>https://sourceforge.net/p/manuela/wiki/Geometrie%252C%2520Layer%2520und%2520JavaFX/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -12,9 +12,9 @@
 SwingUtilities.invokeLater(new Runnable() {
             @Override
             public void run() {
-                {…}Plugin […]plugin = new […]Plugin ();
+                {…}Plugin {…}plugin = new {…}Plugin ();
                 try {
-                    […]plugin.execute(getSwingToFxView().getContext());
+                    {…}plugin.execute(getSwingToFxView().getContext());
                 } catch (Exception ex) {
                     logger.error("An error occured: " + ex.toString());
                     ex.printStackTrace();
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Gismo</dc:creator><pubDate>Mon, 12 Jun 2017 09:38:10 -0000</pubDate><guid>https://sourceforge.net5b8007794fdb3d2d6a41ba7fa5a97716d46ef20e</guid></item><item><title>Geometrie, Layer und JavaFX modified by Gismo</title><link>https://sourceforge.net/p/manuela/wiki/Geometrie%252C%2520Layer%2520und%2520JavaFX/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -12,7 +12,7 @@
 SwingUtilities.invokeLater(new Runnable() {
             @Override
             public void run() {
-                […]Plugin […]plugin = new […]Plugin ();
+                {…}Plugin […]plugin = new […]Plugin ();
                 try {
                     […]plugin.execute(getSwingToFxView().getContext());
                 } catch (Exception ex) {
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Gismo</dc:creator><pubDate>Mon, 12 Jun 2017 09:37:41 -0000</pubDate><guid>https://sourceforge.netf9e5445c66db78861a38eecfaa156220730c8d4a</guid></item><item><title>Geometrie, Layer und JavaFX modified by Gismo</title><link>https://sourceforge.net/p/manuela/wiki/Geometrie%252C%2520Layer%2520und%2520JavaFX/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1 +1,25 @@
 #Geometrie, Layer und JavaFX#
+Zwar läuft JavaFX nur im FX-Thread, dennoch müssen Funktionalitäten, die mit der Darstellung zu tun haben, im AWT-Tread ausgeführt werden. Das betrifft z.B. das Hinzufügen von Layern oder das Einblenden von Ergebins-Layern.
+
+Der Grund ist, dass aus einem anderen Tread als aus dem AWT-Tread heraus aufgerufen, das Runnable in einer nicht vorhersehbaren Reihenfolge abgearbeitet wird. So passiert es unter anderem, dass ein leerer „ColorThemingStyle“ gefunden wird, obwohl dieser eine Liste von Label enthalten sollte. Dies passiert, da der Ergebnislayer gezeichnet wird, bevor der „ColorThemingStyle“ fertig gestellt wurde, obwohl dieser Befehl zuvor erteilt wurde. Im AWT-Tread aber ausgeführt, wird alles in der richtigen Reihenfolge abgearbeitet.
+
+Dies umzusetzen ist leicht. Das Aufrufende Programm, meist der Controller einer JavaFX-Maske, das im FX-Tread läuft muss die auszuführenden Befehle in einem neuen Runnable ausführen, das im AWT-Tread laufen soll.
+
+Muster:
+
+Java | 
+---------- | 
+SwingUtilities.invokeLater(new Runnable() {
+            @Override
+            public void run() {
+                […]Plugin […]plugin = new […]Plugin ();
+                try {
+                    […]plugin.execute(getSwingToFxView().getContext());
+                } catch (Exception ex) {
+                    logger.error("An error occured: " + ex.toString());
+                    ex.printStackTrace();
+                }
+            }
+        });
+
+Dabei hat es sich als günstig herausgestellt, wenn das Runnable „StandardManuelaUIPlugin“ erweitert, da es dann auch von Außen zur Aktualisierung von Daten angestoßen werden kann.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Gismo</dc:creator><pubDate>Mon, 12 Jun 2017 09:37:15 -0000</pubDate><guid>https://sourceforge.net9862bb238f13db82402225f57b370a034fd783f8</guid></item><item><title>Geometrie, Layer und JavaFX modified by Gismo</title><link>https://sourceforge.net/p/manuela/wiki/Geometrie%252C%2520Layer%2520und%2520JavaFX/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="geometrie-layer-und-javafx"&gt;Geometrie, Layer und JavaFX&lt;/h1&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Gismo</dc:creator><pubDate>Mon, 12 Jun 2017 09:34:32 -0000</pubDate><guid>https://sourceforge.netd451de51fab32b8046d4db7e6b47ffe837d23c87</guid></item></channel></rss>