Skip to content

Montage ♥ FRB

kriskowal edited this page Feb 27, 2013 · 20 revisions

FAQ for the FRB Transition

How do I observe a path from my object for changes after they've happened?

Before

myObject.addPropertyChangeListener("path", handler)

When the path changes myObject.handleChange(notification) will be called

After

myObject.addPathChangeListener("path", handler, opt_methodName)

When the value at the path changes (not the content of the value), the first function in this list gets called with the newValue, path, and myObject.

  • handler[methodName]
  • handler.handlePathChange
  • handler

How do I observe a path from my object for changes before they happen?

Before

myObject.addPropertyChangeListener("path", handler, true)

After

myObject.addPathChangeListener("path", handler, "handleMethodName", true)

How do I bind a property of my object to a property of another object such that they are always the same?

Before

Object.defineBinding(myObject, "myProperty", {
    boundObject: anotherObject,
    boundObjectPropertyPath: "foo.bar"
});

After

myObject.defineBinding("myProperty", {"<->": "foo.bar", source: anotherObject});

How do I bind a property of my object to a property of another object such that changes to myProperty do not affect the otherObject's property?

Before

Object.defineBinding(myObject, "myProperty", {
    boundObject: anotherObject,
    boundObjectPropertyPath: "foo.bar",
    oneway: true
});

After

myObject.defineBinding("myProperty", {"<-": "foo.bar", source: anotherObject});

How do I watch changes to an array at the end of a property path so I know what's added and removed?

myObject.addRangeAtPathChangeListener("array", handler, "handleArrayRangeChange");

Calls handler.handleArrayRangeChange with plus, minus, and index.