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(); } /* ********************************************************************** * * *