NAME¶
ComponentView - base class for views of objects that model domain-specific
elements
SYNOPSIS¶
#include <Unidraw/Components/compview.h>
DESCRIPTION¶
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.
PUBLIC OPERATIONS¶
- 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.
PROTECTED OPERATIONS¶
- 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.
SEE ALSO¶
Command(3U), Component(3U), Iterator(3U), classes(3U)