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