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 com-
ponent 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 sub-
ject.
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 hierar-
chically, 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 pre-
ceding child. Done returns whether or not the
iterator points beyond the first or last child in
the list.
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 cor-
responding 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 opera-
tion. 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 iden-
tifiers 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* par-
ent)
Notify a child component that it has a new or dif-
ferent 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 informa-
tion.
SEE ALSO
Command(3U), Component(3U), Iterator(3U), classes(3U)
Man(1) output converted with
man2html