< prev index next >

modules/graphics/src/test/java/test/javafx/scene/bounds/PerfNode.java

Print this page

        

*** 23,40 **** --- 23,43 ---- * questions. */ package test.javafx.scene.bounds; + import com.sun.javafx.geom.BaseBounds; + import com.sun.javafx.geom.transform.BaseTransform; import com.sun.javafx.sg.prism.NGNode; import com.sun.javafx.sg.prism.NGRectangle; import javafx.beans.property.FloatProperty; import javafx.beans.property.SimpleFloatProperty; import javafx.scene.Node; import com.sun.javafx.jmx.MXNodeAlgorithm; import com.sun.javafx.jmx.MXNodeAlgorithmContext; + import com.sun.javafx.scene.NodeHelper; import test.com.sun.javafx.scene.bounds.PerfNodeHelper; /** * A special node used for performance tests to make sure that the minimum * amount of bounds computation work happens as possible.
*** 46,55 **** --- 49,74 ---- PerfNodeHelper.setPerfNodeAccessor(new PerfNodeHelper.PerfNodeAccessor() { @Override public NGNode doCreatePeer(Node node) { return ((PerfNode) node).doCreatePeer(); } + + @Override + public BaseBounds doComputeGeomBounds(Node node, + BaseBounds bounds, BaseTransform tx) { + return ((PerfNode) node).doComputeGeomBounds(bounds, tx); + } + + @Override + public boolean doComputeContains(Node node, double localX, double localY) { + return ((PerfNode) node).doComputeContains(localX, localY); + } + + @Override + public Object doProcessMXNode(Node node, MXNodeAlgorithm alg, MXNodeAlgorithmContext ctx) { + return ((PerfNode) node).doProcessMXNode(alg, ctx); + } }); } { // To initialize the class helper at the begining each constructor of this class
*** 78,88 **** if (x == null) { x = new SimpleFloatProperty() { @Override protected void invalidated() { ! impl_geomChanged(); } }; } return x; } --- 97,107 ---- if (x == null) { x = new SimpleFloatProperty() { @Override protected void invalidated() { ! NodeHelper.geomChanged(PerfNode.this); } }; } return x; }
*** 100,110 **** if (y == null) { y = new SimpleFloatProperty() { @Override protected void invalidated() { ! impl_geomChanged(); } }; } return y; } --- 119,129 ---- if (y == null) { y = new SimpleFloatProperty() { @Override protected void invalidated() { ! NodeHelper.geomChanged(PerfNode.this); } }; } return y; }
*** 130,140 **** } return width; } protected void impl_storeWidth(FloatProperty model, float value) { ! impl_geomChanged(); } private FloatProperty height; public final void setHeight(float value) { --- 149,159 ---- } return width; } protected void impl_storeWidth(FloatProperty model, float value) { ! NodeHelper.geomChanged(this); } private FloatProperty height; public final void setHeight(float value) {
*** 157,187 **** } return height; } protected void impl_storeHeight(FloatProperty model, float value) { ! impl_geomChanged(); } int geomComputeCount = 0; ! public com.sun.javafx.geom.BaseBounds impl_computeGeomBounds(com.sun.javafx.geom.BaseBounds bounds, com.sun.javafx.geom.transform.BaseTransform tx) { geomComputeCount++; bounds = bounds.deriveWithNewBounds(0, 0, 0, 100, 100, 0); return bounds; } ! @Override ! protected boolean impl_computeContains(double localX, double localY) { // Stub return false; } private NGNode doCreatePeer() { return new NGRectangle(); } ! @Override ! public Object impl_processMXNode(MXNodeAlgorithm alg, MXNodeAlgorithmContext ctx) { return null; } } --- 176,213 ---- } return height; } protected void impl_storeHeight(FloatProperty model, float value) { ! NodeHelper.geomChanged(this); } int geomComputeCount = 0; ! /* ! * Note: This method MUST only be called via its accessor method. ! */ ! private BaseBounds doComputeGeomBounds(com.sun.javafx.geom.BaseBounds bounds, com.sun.javafx.geom.transform.BaseTransform tx) { geomComputeCount++; bounds = bounds.deriveWithNewBounds(0, 0, 0, 100, 100, 0); return bounds; } ! /* ! * Note: This method MUST only be called via its accessor method. ! */ ! private boolean doComputeContains(double localX, double localY) { // Stub return false; } private NGNode doCreatePeer() { return new NGRectangle(); } ! /* ! * Note: This method MUST only be called via its accessor method. ! */ ! private Object doProcessMXNode(MXNodeAlgorithm alg, MXNodeAlgorithmContext ctx) { return null; } }
< prev index next >