OGo WebUI Component Superclasses
Note that only the "final" subclass is supposed to have a template -
you cannot inherit templates in NGObjWeb.
Component Class Hierarchy
NSObject (Foundation)
WOElement (NGObjWeb)
WOComponent (NGObjWeb)
OGoComponent (OGoFoundation)
LSWComponent (OGoFoundation) *DEPRECATED*
OGoContentPage (OGoFoundation)
LSWContentPage (OGoFoundation) *DEPRECATED*
OGoViewerPage (OGoFoundation)
LSWViewerPage (OGoFoundation)
LSWEditorPage (OGoFoundation)
LSWObjectMailPage (OGoFoundation)
SkyEditorComponent (OGoFoundation) ???
SkyEditorPage (OGoFoundation) ???
The deprecated classes are still required for binary compatibility
until all categories and subclasses are moved to the new naming
scheme.
TODO: need to find out what SkyEditorComponent/SkyEditorPage
are good for - apparently those are for pages which are composed
from multiple subeditors.
WOComponent
WOComponent is the basic reusable component class defined in
NGObjWeb. Its difference to a WODynamicElement is that a component has session state on its own and that a component
usually has an associated template (.wox or .wo templates).
OGoComponent (formerly: LSWComponent)
Write much more ...
- support for "label handlers" (label.mylabel in .wod files)
- support for "config handlers" (more or less deprecated)
- syncAwake support
OGoContentPage (formerly: LSWContentPage)
You should use OGoContentPage as a superclass for any WebUI
class which is not embedded by another component and is to be
tracked by the OGo history navigation.
LSWEditorPage
Write much more ...
- activation
- constraint checks / input validation
- says YES to -isEditorPage which turns offs all navigation links
OGoViewerPage (formerly LSWViewerPage)
Write much more ...
- ivar for keeping the 'object' (from activation)
- clipping support (-placeInClipboard)
- identity (-isViewerForSameObject:)
- can activate editor
- hackish support for mailer and URL generation (-objectURL,-mailObject)
LSWObjectMailPage
This superclass is useful for writing MIME renders and is used by the
OGo web mailer to do exactly that - eg the component which
renders an appointment for delivery by mail is a subclass of LSWObjectMailPage.