01: /*
02: * Copyright 2006 Ethan Nicholas. All rights reserved.
03: * Use is subject to license terms.
04: */
05: package jaxx.runtime;
06:
07: /** The <code>JAXXObject</code> interface is implemented by all classes produced by the JAXX compiler. */
08: public interface JAXXObject {
09: /** Retrieves an object defined in an XML tag by its ID.
10: *
11: *@param id the id of the component to retrieve
12: */
13: public Object getObjectById(String id);
14:
15: public void applyDataBinding(String id);
16:
17: public void removeDataBinding(String id);
18:
19: /** Processes a data binding by name. Data binding names are comprised of an object ID and a property name:
20: * for example, the data binding in the tag <code><JLabel id='label' text='{foo.getText()}'/></code> is
21: * named <code>"label.text"</code>. Processing a data binding causes it to reevaluate its expression, in this
22: * case <code>foo.getText()</code>.
23: *
24: *@param dest the name of the data binding to run
25: */
26: public void processDataBinding(String dest);
27:
28: /** All <code>JAXXObject</code> implements are capable of broadcasting <code>PropertyChangeEvent</code>, and
29: * furthermore (for technical reasons) must allow code in outside packages, specifically the JAXX runtime,
30: * to trigger these events.
31: *
32: *@param name the name of the property which changed
33: *@param oldValue the old value of the property
34: *@param newValue the new value of the property
35: */
36: public void firePropertyChange(String name, Object oldValue,
37: Object newValue);
38: }
|