coreRuntime/src/sc/bind/ArrayElementBinding.java
public boolean arrayElementInvalidated(Object srcObject, Object srcProp, Object dims, boolean apply) {
      int last = boundProps.length - 1;
      // Only optimizing the case where it is the last property of a 1D array that has changed and we have valid dims
      if (!(dims instanceof Integer) || lastDim == null || lastDim.length != 1 ||
              srcProp != boundProps[last] || dstObj == srcObject) {
         return valueInvalidated(srcObject, srcProp, dims, apply);
      }
      else if (direction.doForward()) {
         Integer index = (Integer) dims;
         boolean changed = false;
         if (index == lastDim[0]) {
            Object newElement = recomputeArrayElement();
            if (!valid || !DynUtil.equalObjects(boundValue, newElement)) {
               changed = true;
            }
            if (changed) {
               bindingInvalidated(apply);
            }
            return changed;
         }
      }
      return false;
   }
/** For the array element changed case, only trigger a firing if the array element matches.  Optimizing 1D only now */
For the array element changed case, only trigger a firing if the array element matches.  Optimizing 1D only now
For the array element changed case only trigger a firing if the array element matches . Optimizing 1D only now
public boolean arrayElementInvalidated(Object srcObject, Object srcProp, Object dims, boolean apply) {
      int last = boundProps.length - 1;
      if (!(dims instanceof Integer) || lastDim == null || lastDim.length != 1 ||
              srcProp != boundProps[last] || dstObj == srcObject) {
         return valueInvalidated(srcObject, srcProp, dims, apply);
      }
      else if (direction.doForward()) {
         Integer index = (Integer) dims;
         boolean changed = false;
         if (index == lastDim[0]) {
            Object newElement = recomputeArrayElement();
            if (!valid || !DynUtil.equalObjects(boundValue, newElement)) {
               changed = true;
            }
            if (changed) {
               bindingInvalidated(apply);
            }
            return changed;
         }
      }
      return false;
   }
public boolean arrayElementInvalidated ( Object srcObject , Object srcProp , Object dims , boolean apply ) { int last = boundProps . length - 1 ; if ( ! ( dims instanceof Integer ) || lastDim == null || lastDim . length != 1 || srcProp != boundProps [ last ] || dstObj == srcObject ) { return valueInvalidated ( srcObject , srcProp , dims , apply ) ; } else if ( direction . doForward ( ) ) { Integer index = ( Integer ) dims ; boolean changed = false ; if ( index == lastDim [ 0 ] ) { Object newElement = recomputeArrayElement ( ) ; if ( ! valid || ! DynUtil . equalObjects ( boundValue , newElement ) ) { changed = true ; } if ( changed ) { bindingInvalidated ( apply ) ; } return changed ; } } return false ; }
For the array element changed case, only trigger a firing if the array element matches.
For the array element changed case only trigger a firing if the array element matches .
// Only optimizing the case where it is the last property of a 1D array that has changed and we have valid dims