< 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 >