ComponentView - 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)