This does the trick. Thank you very much!
This brought me farther on my way to test the complete flow. However I
got another error when running the AppFactory test.
The sequence I'm running in the test mimics the AppFactory test in JFX
Flow. I send parameters to a page, performs the transistion with
goTo(). This all evaluates ok. However, when I trigger a goBack() in
the navigation manager the javafx runtime cries:
Place placeDetailUser = new PlaceBuilder("detailUser")
.parameter("userId", 1L)
.parameter("isAdmin", Boolean.FALSE)
.build();
navigationManager.goTo(placeDetailUser);
// assertions go here
navigationManager.goBack(); /* exception happens here */
java.lang.IllegalArgumentException: Children: duplicate children added
parent=StackPane@888e6c[styleClass=child-area]
at javafx.scene.Parent$1.onProposedChange(Unknown Source)
at com.sun.javafx.collections.VetoableObservableList.add(Unknown
Source)
at com.sun.javafx.collections.ObservableListWrapper.add(Unknown
Source)
at
com.zenjava.jfxflow.transition.DefaultTransitionFactory.createTransition(DefaultTransitionFactory.java:
50)
at com.zenjava.jfxflow.actvity.ParentActivity
$CurrentActivityListener.changed(ParentActivity.java:167)
at com.zenjava.jfxflow.actvity.ParentActivity
$CurrentActivityListener.changed(ParentActivity.java:139)
at com.sun.javafx.binding.ExpressionHelper
$SingleChange.fireValueChangedEvent(Unknown Source)
at
com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(Unknown
Source)
at
javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(Unknown
Source)
at javafx.beans.property.ObjectPropertyBase.markInvalid(Unknown
Source)
at javafx.beans.property.ObjectPropertyBase.set(Unknown Source)
at com.zenjava.jfxflow.actvity.ParentActivity
$CurrentPlaceListener.changed(ParentActivity.java:126)
at com.zenjava.jfxflow.actvity.ParentActivity
$CurrentPlaceListener.changed(ParentActivity.java:114)
at com.sun.javafx.binding.ExpressionHelper
$SingleChange.fireValueChangedEvent(Unknown Source)
at
com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(Unknown
Source)
at
javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(Unknown
Source)
at javafx.beans.property.ObjectPropertyBase.markInvalid(Unknown
Source)
at javafx.beans.property.ObjectPropertyBase.access$100(Unknown
Source)
at javafx.beans.property.ObjectPropertyBase
$Listener.invalidated(Unknown Source)
at com.sun.javafx.binding.ExpressionHelper
$SingleInvalidation.fireValueChangedEvent(Unknown Source)
at
com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(Unknown
Source)
at
javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(Unknown
Source)
at javafx.beans.property.ObjectPropertyBase.markInvalid(Unknown
Source)
at javafx.beans.property.ObjectPropertyBase.set(Unknown Source)
at
com.zenjava.jfxflow.navigation.DefaultNavigationManager.goBack(DefaultNavigationManager.java:
48)
at TestMyAppFactory.testNavigation(TestMyAppFactory.java:90)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod
$1.runReflectiveCall(FrameworkMethod.java:45)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:
15)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:
42)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:
20)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:
28)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
68)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:
28)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:
62)
at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:
140)
at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:
127)
at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:
345)
at
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:
1009)
If I execute the vanilla JFX Flow TestDefaultNavigationManager, all is
nice and dandy.
Best Regards