diff --git a/richtextfx/src/integrationTest/java/org/fxmisc/richtext/api/FxmlTester.java b/richtextfx/src/integrationTest/java/org/fxmisc/richtext/api/FxmlTester.java
new file mode 100644
index 000000000..f5889128c
--- /dev/null
+++ b/richtextfx/src/integrationTest/java/org/fxmisc/richtext/api/FxmlTester.java
@@ -0,0 +1,28 @@
+package org.fxmisc.richtext.api;
+
+import java.io.IOException;
+import javafx.stage.Stage;
+import javafx.fxml.FXMLLoader;
+import javafx.fxml.LoadException;
+import org.fxmisc.richtext.RichTextFXTestBase;
+import org.junit.Test;
+
+public class FxmlTester extends RichTextFXTestBase {
+
+ @Override
+ public void start(Stage stage) throws Exception {
+ // Nothing needed here
+ }
+
+ @Test
+ public void test_fxml_construction_of_area() throws IOException, LoadException
+ {
+ // FxmlTest.fxml is located in resources folder:
+ // src/integrationTest/resources/org/fxmisc/richtext/api/
+ Object obj = FXMLLoader.load( getClass().getResource( "FxmlTest.fxml" ) );
+ // FXMLLoader will throw a LoadException if any properties failed to be set,
+ // so if obj is not null then all properties are guaranteed to have been set.
+ org.junit.Assert.assertNotNull( obj );
+ }
+
+}
diff --git a/richtextfx/src/integrationTest/resources/org/fxmisc/richtext/api/FxmlTest.fxml b/richtextfx/src/integrationTest/resources/org/fxmisc/richtext/api/FxmlTest.fxml
new file mode 100644
index 000000000..35b549123
--- /dev/null
+++ b/richtextfx/src/integrationTest/resources/org/fxmisc/richtext/api/FxmlTest.fxml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/richtextfx/src/main/java/org/fxmisc/richtext/GenericStyledArea.java b/richtextfx/src/main/java/org/fxmisc/richtext/GenericStyledArea.java
index f9eacb297..ca9cbef41 100644
--- a/richtextfx/src/main/java/org/fxmisc/richtext/GenericStyledArea.java
+++ b/richtextfx/src/main/java/org/fxmisc/richtext/GenericStyledArea.java
@@ -338,11 +338,17 @@ protected void invalidated() {
}
};
@Override public final BooleanProperty editableProperty() { return editable; }
+ // Don't remove as FXMLLoader doesn't recognise default methods !
+ @Override public void setEditable(boolean value) { editable.set(value); }
+ @Override public boolean isEditable() { return editable.get(); }
// wrapText property
private final BooleanProperty wrapText = new SimpleBooleanProperty(this, "wrapText");
@Override public final BooleanProperty wrapTextProperty() { return wrapText; }
-
+ // Don't remove as FXMLLoader doesn't recognise default methods !
+ @Override public void setWrapText(boolean value) { wrapText.set(value); }
+ @Override public boolean isWrapText() { return wrapText.get(); }
+
// undo manager
private UndoManager undoManager;
@Override public UndoManager getUndoManager() { return undoManager; }
@@ -359,14 +365,23 @@ protected void invalidated() {
private ObjectProperty contextMenu = new SimpleObjectProperty<>(null);
@Override public final ObjectProperty contextMenuObjectProperty() { return contextMenu; }
+ // Don't remove as FXMLLoader doesn't recognise default methods !
+ @Override public void setContextMenu(ContextMenu menu) { contextMenu.set(menu); }
+ @Override public ContextMenu getContextMenu() { return contextMenu.get(); }
protected final boolean isContextMenuPresent() { return contextMenu.get() != null; }
private DoubleProperty contextMenuXOffset = new SimpleDoubleProperty(2);
@Override public final DoubleProperty contextMenuXOffsetProperty() { return contextMenuXOffset; }
+ // Don't remove as FXMLLoader doesn't recognise default methods !
+ @Override public void setContextMenuXOffset(double offset) { contextMenuXOffset.set(offset); }
+ @Override public double getContextMenuXOffset() { return contextMenuXOffset.get(); }
private DoubleProperty contextMenuYOffset = new SimpleDoubleProperty(2);
@Override public final DoubleProperty contextMenuYOffsetProperty() { return contextMenuYOffset; }
+ // Don't remove as FXMLLoader doesn't recognise default methods !
+ @Override public void setContextMenuYOffset(double offset) { contextMenuYOffset.set(offset); }
+ @Override public double getContextMenuYOffset() { return contextMenuYOffset.get(); }
private final BooleanProperty useInitialStyleForInsertion = new SimpleBooleanProperty();
@Override public BooleanProperty useInitialStyleForInsertionProperty() { return useInitialStyleForInsertion; }
@@ -430,6 +445,9 @@ protected void invalidated() {
// not a hook, but still plays a part in the default mouse behavior
private final BooleanProperty autoScrollOnDragDesired = new SimpleBooleanProperty(true);
@Override public final BooleanProperty autoScrollOnDragDesiredProperty() { return autoScrollOnDragDesired; }
+ // Don't remove as FXMLLoader doesn't recognise default methods !
+ @Override public void setAutoScrollOnDragDesired(boolean val) { autoScrollOnDragDesired.set(val); }
+ @Override public boolean isAutoScrollOnDragDesired() { return autoScrollOnDragDesired.get(); }
/* ********************************************************************** *
* *