10201 mixingLog.fine("this = " + this + "; areBoundsValid = " + areBoundsValid());
10202 }
10203 return; // Because applyCompoundShape() ignores such components anyway
10204 }
10205 if (mixingLog.isLoggable(PlatformLogger.Level.FINE)) {
10206 mixingLog.fine("this = " + this);
10207 }
10208 applyCompoundShape(calculateCurrentShape());
10209 }
10210
10211 final void subtractAndApplyShape(Region s) {
10212 checkTreeLock();
10213
10214 if (mixingLog.isLoggable(PlatformLogger.Level.FINE)) {
10215 mixingLog.fine("this = " + this + "; s=" + s);
10216 }
10217
10218 applyCompoundShape(getAppliedShape().getDifference(s));
10219 }
10220
10221 private final void applyCurrentShapeBelowMe() {
10222 checkTreeLock();
10223 Container parent = getContainer();
10224 if (parent != null && parent.isShowing()) {
10225 // First, reapply shapes of my siblings
10226 parent.recursiveApplyCurrentShape(getSiblingIndexBelow());
10227
10228 // Second, if my container is non-opaque, reapply shapes of siblings of my container
10229 Container parent2 = parent.getContainer();
10230 while (!parent.isOpaque() && parent2 != null) {
10231 parent2.recursiveApplyCurrentShape(parent.getSiblingIndexBelow());
10232
10233 parent = parent2;
10234 parent2 = parent.getContainer();
10235 }
10236 }
10237 }
10238
10239 final void subtractAndApplyShapeBelowMe() {
10240 checkTreeLock();
10241 Container parent = getContainer();
|
10201 mixingLog.fine("this = " + this + "; areBoundsValid = " + areBoundsValid());
10202 }
10203 return; // Because applyCompoundShape() ignores such components anyway
10204 }
10205 if (mixingLog.isLoggable(PlatformLogger.Level.FINE)) {
10206 mixingLog.fine("this = " + this);
10207 }
10208 applyCompoundShape(calculateCurrentShape());
10209 }
10210
10211 final void subtractAndApplyShape(Region s) {
10212 checkTreeLock();
10213
10214 if (mixingLog.isLoggable(PlatformLogger.Level.FINE)) {
10215 mixingLog.fine("this = " + this + "; s=" + s);
10216 }
10217
10218 applyCompoundShape(getAppliedShape().getDifference(s));
10219 }
10220
10221 private void applyCurrentShapeBelowMe() {
10222 checkTreeLock();
10223 Container parent = getContainer();
10224 if (parent != null && parent.isShowing()) {
10225 // First, reapply shapes of my siblings
10226 parent.recursiveApplyCurrentShape(getSiblingIndexBelow());
10227
10228 // Second, if my container is non-opaque, reapply shapes of siblings of my container
10229 Container parent2 = parent.getContainer();
10230 while (!parent.isOpaque() && parent2 != null) {
10231 parent2.recursiveApplyCurrentShape(parent.getSiblingIndexBelow());
10232
10233 parent = parent2;
10234 parent2 = parent.getContainer();
10235 }
10236 }
10237 }
10238
10239 final void subtractAndApplyShapeBelowMe() {
10240 checkTreeLock();
10241 Container parent = getContainer();
|