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