From ee800d47df0a69d1470ef2db40c4ed6ccf93a72c Mon Sep 17 00:00:00 2001 From: Alexander Lobas Date: Mon, 3 Feb 2014 13:49:27 +0400 Subject: [PATCH] JavaFX Scene Builder integration --- .../javaFX/FxBuilderEmbedder/lib/embedder.jar | Bin 6496 -> 6608 bytes .../javaFX/sceneBuilder/SceneBuilderImpl.java | 10 +++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/plugins/javaFX/FxBuilderEmbedder/lib/embedder.jar b/plugins/javaFX/FxBuilderEmbedder/lib/embedder.jar index 1ddf9204cf68e922e3a4bc2705c45391a107b99b..9400a2955c5b8b65c08eb093e1f493856573d031 100644 GIT binary patch delta 4390 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 delta 4278 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 diff --git a/plugins/javaFX/FxBuilderEmbedder/src/org/jetbrains/plugins/javaFX/sceneBuilder/SceneBuilderImpl.java b/plugins/javaFX/FxBuilderEmbedder/src/org/jetbrains/plugins/javaFX/sceneBuilder/SceneBuilderImpl.java index 025da2f708f0..fba7e4de778a 100644 --- a/plugins/javaFX/FxBuilderEmbedder/src/org/jetbrains/plugins/javaFX/sceneBuilder/SceneBuilderImpl.java +++ b/plugins/javaFX/FxBuilderEmbedder/src/org/jetbrains/plugins/javaFX/sceneBuilder/SceneBuilderImpl.java @@ -27,6 +27,7 @@ public class SceneBuilderImpl implements SceneBuilder { private final JFXPanel myPanel = new JFXPanel(); private EditorController myEditorController; private ChangeListener myListener; + private volatile boolean mySkipChanges; public SceneBuilderImpl(URL url, EditorCallback editorCallback) { myFileURL = url; @@ -88,7 +89,9 @@ public class SceneBuilderImpl implements SceneBuilder { myListener = new ChangeListener() { @Override public void changed(ObservableValue observable, Number oldValue, Number newValue) { - myEditorCallback.saveChanges(myEditorController.getFxmlText()); + if (!mySkipChanges) { + myEditorCallback.saveChanges(myEditorController.getFxmlText()); + } } }; @@ -103,6 +106,8 @@ public class SceneBuilderImpl implements SceneBuilder { } private void loadFile() { + mySkipChanges = true; + try { String fxmlText = FXOMDocument.readContentFromURL(myFileURL); myEditorController.setFxmlTextAndLocation(fxmlText, myFileURL); @@ -110,5 +115,8 @@ public class SceneBuilderImpl implements SceneBuilder { catch (Throwable e) { myEditorCallback.handleError(e); } + finally { + mySkipChanges = false; + } } } \ No newline at end of file