logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

ComponentView - base class for views of objects that model domain-specific elements

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.

Name

       ComponentView - base class for views of objects that model domain-specific elements

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.

       virtualvoidSetSubject(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).

       virtualvoidSetParent(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.

Public Operations

virtualvoidInterpret(Command*)virtualvoidUninterpret(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.

       virtualvoidUpdate()
              Notify the view of a change in some state that it depends on, normally state in the subject.  This
              operation does nothing by default.

       virtualComponent*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.

       virtualvoidFirst(Iterator&)virtualvoidLast(Iterator&)virtualvoidNext(Iterator&)virtualvoidPrev(Iterator&)virtualbooleanDone(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.

       virtualClassIdGetClassId()virtualbooleanIsA(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.

See Also

Command(3U), Component(3U), Iterator(3U), classes(3U)

Unidraw                                          20 August 1990                                ComponentView(3U)

Synopsis

#include<Unidraw/Components/compview.h>

See Also