< prev index next >
modules/graphics/src/test/java/test/javafx/scene/bounds/ResizablePerfNode.java
Print this page
@@ -23,23 +23,49 @@
* questions.
*/
package test.javafx.scene.bounds;
+import com.sun.javafx.scene.NodeHelper;
import javafx.beans.property.FloatProperty;
import javafx.geometry.BoundingBox;
import javafx.geometry.Bounds;
+import javafx.scene.Node;
+import test.com.sun.javafx.scene.bounds.ResizablePerfNodeHelper;
/**
* A resizable version of PerfNode. Note that in this case, layoutBounds is
* defined to only use width and height, so if x or y changes, it should cause
* the geom to be recomputed when necessary, but should not cause a new
* layout bounds to be created.
*/
public class ResizablePerfNode extends PerfNode {
+ static {
+ // This is used by classes in different packages to get access to
+ // private and package private methods.
+ ResizablePerfNodeHelper.setResizablePerfNodeAccessor(
+ new ResizablePerfNodeHelper.ResizablePerfNodeAccessor() {
+ @Override
+ public Bounds doComputeLayoutBounds(Node node) {
+ return ((ResizablePerfNode) node).doComputeLayoutBounds();
+ }
+
+ @Override
+ public void doNotifyLayoutBoundsChanged(Node node) {
+ ((ResizablePerfNode) node).doNotifyLayoutBoundsChanged();
+ }
+ });
+ }
- @Override protected Bounds impl_computeLayoutBounds() {
+ {
+ // To initialize the class helper at the begining each constructor of this class
+ ResizablePerfNodeHelper.initHelper(this);
+ }
+ ResizablePerfNode() {
+ }
+
+ private Bounds doComputeLayoutBounds() {
return new BoundingBox(0, 0, getWidth(), getHeight());
}
@Override public boolean isResizable() {
return true;
@@ -51,23 +77,22 @@
@Override public double prefHeight(double width) {
return getHeight();
}
- @Override
- public void impl_notifyLayoutBoundsChanged() { }
+ private void doNotifyLayoutBoundsChanged() { }
@Override
protected void impl_storeWidth(FloatProperty model, float value) {
super.impl_storeWidth(model, value);
- super.impl_notifyLayoutBoundsChanged();
+ ResizablePerfNodeHelper.superNotifyLayoutBoundsChanged(this);
}
@Override
protected void impl_storeHeight(FloatProperty model, float value) {
super.impl_storeHeight(model, value);
- super.impl_notifyLayoutBoundsChanged();
+ ResizablePerfNodeHelper.superNotifyLayoutBoundsChanged(this);
}
@Override public double minWidth(double height) {
return 0;
}
< prev index next >