Base class for views of objects that model domain-specific elements
#include <Unidraw/Components/compview.h>
ComponentView is an abstract base class for views of component subjects. Component views provide a specialized presentation of the information in the component subject to which they are attached. Usually there is at least one view subclass defined for each subclass of component subject.
virtual void Interpret(Command*)
virtual void Uninterpret(Command*)
These operations call the corresponding subject operations by default. They are included in the component view protocol for convenience, since other objects often deal with component views rather than their subjects.
virtual void Update()
Notify the view of a change in some state that it depends on, normally state in the subject. This operation does nothing by default.
virtual Component* GetParent()
Return the view's parent, if any. Like component subjects, component views may be structured hierarchically, and their structure may or may not reflect that of their subject.
Component* GetSubject()
Return the component view's subject.
virtual void First(Iterator&)
virtual void Last(Iterator&)
virtual void Next(Iterator&)
virtual void Prev(Iterator&)
virtual boolean Done(Iterator)
Operations for iterating over the component view's children, if any. First and Last initialize an iterator to point to the beginning and end of the list of children, respectively. Next increments the iterator to point to the following child, while Prev decrements the iterator to point to the preceding child. Done returns whether or not the iterator points beyond the first or last child in the list.
virtual ClassId GetClassId()
virtual boolean IsA(ClassId)
GetClassId returns the unique class identifier for the ComponentView subclass, while IsA returns whether the instance is of a class or subclass corresponding to the given identifier. IsA typically checks the given identifier against the instance's own (as defined by its GetClassId operation) and, failing that, calls its parent classes' IsA operation. All subclasses must redefine GetClassId and IsA to ensure that their identifiers are unique and that view category information is defined properly. See classes(3U) for more information on class identifiers and view categories.
ComponentView(Component* subject = nil)
The constructor initializes the component view's subject pointer to the given value. The view will also attach itself to the subject if the argument is non-nil.
virtual void SetSubject(Component*)
Set the component's subject pointer to the given value. By default, this operation does not call Attach or Detach on the subject(s).
virtual void SetParent(Component* child, Component* parent)
Notify a child component that it has a new or different parent. This operation does nothing by default. Composite components should call this function in their structure-modifying operations, and components that keep information about their parents should redefine it to update this information.
Command(3U), Component(3U), Iterator(3U), classes(3U)