From 9be8859d92e4bbec2462e82457d014f0a0d720db Mon Sep 17 00:00:00 2001 From: xue <> Date: Mon, 26 Dec 2005 15:54:54 +0000 Subject: --- .../protected/pages/chap2/KeyConcepts.page | 40 ++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) (limited to 'demos/quickstart/protected/pages/chap2') diff --git a/demos/quickstart/protected/pages/chap2/KeyConcepts.page b/demos/quickstart/protected/pages/chap2/KeyConcepts.page index 5352d1ff..701633c4 100644 --- a/demos/quickstart/protected/pages/chap2/KeyConcepts.page +++ b/demos/quickstart/protected/pages/chap2/KeyConcepts.page @@ -8,7 +8,7 @@ A component is an instance of TComponent or its child class. The ba

Component Properties

-A property can be viewed as a public variable describing a specific aspect of the component, such as the background color, the font size, etc. A property is defined by the existence of a getter and/or a setter method of a component class. For example, in TControl, we have +A component property can be viewed as a public variable describing a specific aspect of the component, such as the background color, the font size, etc. A property is defined by the existence of a getter and/or a setter method in the component class. For example, in TControl, we have

 class TControl extends TComponent {
     public function getID() {
@@ -22,16 +22,52 @@ class TControl extends TComponent {
 This defines a property named ID. Reading the property (e.g. echo $component->ID;) is equivalent to invoking the getter method (e.g. echo $component->getID();); and writing the property (e.g. $component->ID='Button';) is equivalent to invoking the setter method (e.g. $component->setID('Button');).
 

-A property is read-only if it only has a getter method and no setter method. Since PHP method names are case-insensitive, property names are also case-insensitive. +A property is read-only if it has a getter method but no setter method. Since PHP method names are case-insensitive, property names are also case-insensitive. A component class inherits all its ancestor classes' properties.

Component Events

+

+Component events are special properties that take method names as their values. Attaching (setting) a method to an event will hook up the method to the places at which the event is raised. Therefore, the behavior of a component can be modified in a way that may not be foreseen during the development of the component. +

+

+A component event is defined by the existence of an on-method. For example, in TButton, we have +

+class TButton extends TWebControl {
+    public function onClick($param) {
+        ...
+    }
+}
+
+This defines an event named Click, and a handler can be attached to the event using one of the following ways, +
+$button->Click=$callback;
+$button->Click->add($callback);
+$button->Click[]=$callback;
+$button->attachEventHandler('Click',$callback);
+
+where $callback refers to a valid PHP callback (e.g. a function name, a class method array($object,'method'), etc.) +

Controls

A control is an instance of class TControl or its subclass. A control is a component defined in addition with user interface. The base class TControl defines the parent-child relationship among controls which reflects the containment relationship among user interface elements.

+

Parent-Child Relationship

+

+A parent control is in charge of the state transition of its child controls. The rendering result of the child controls are usually used to compose the parent control's presentation. +

+

+The parent-child relationship is usually established by the framework via templates. In code, you may explicitly specify a control as a child of another using the following method, +

+$parent->Controls->add($child);
+
+where the property Controls refers to the child control collection of the parent. +

+

Pages

+

+Pages are top-most controls that have no parent (you may consider application as their container though). The presentation of pages are directly displayed to end-users. +

\ No newline at end of file -- cgit v1.2.3