Ceylan::MVC::BaseView Class Reference

Interface class for all views of the lightweight generic Model-View-Controller (MVC) design pattern. More...

#include <CeylanGenericView.h>

Inheritance diagram for Ceylan::MVC::BaseView:

Inheritance graph
[legend]
Collaboration diagram for Ceylan::MVC::BaseView:

Collaboration graph
[legend]

List of all members.

Public Types

enum  TextOutputFormat { rawText, html }
 Defines what text output formats for TextDisplayable instances are available. More...

Public Member Functions

 BaseView ()
 Constructs a view, not linked to any model.
virtual ~BaseView () throw ()
 Basic virtual destructor.
virtual void render ()=0
 Requests that view to generate its interpretation of the model(s) it is linked to.
virtual const std::string toString (Ceylan::VerbosityLevels level=Ceylan::high) const
 Returns a user-friendly description of the state of this object.

Static Public Member Functions

static const std::string ToString (std::list< TextDisplayable * > displayables, Ceylan::VerbosityLevels level=Ceylan::high)
 Returns a user-friendly description of this list of pointers to text displayable instances.
static TextOutputFormat GetOutputFormat ()
 Returns the current overall text format to be used by TextDisplayable instances.
static void SetOutputFormat (TextOutputFormat newOutputFormat)
 Sets the current overall text format to be used by TextDisplayable instances.

Static Protected Attributes

static TextOutputFormat _OutputFormat = rawText
 The text format to be used currently by TextDisplayable instances.

Private Member Functions

 BaseView (const BaseView &source)
 Copy constructor made private to ensure that it will never be called.
BaseViewoperator= (const BaseView &source)
 Assignment operator made private to ensure that it will never be called.


Detailed Description

Interface class for all views of the lightweight generic Model-View-Controller (MVC) design pattern.

The view of an object reflects the state of its model(s).

A view needs to know its model(s), as it will have to obtain directly informations from them, rather than relying on models to send regular (potentially useless) updates: we are in a context where models, views and controllers might be scheduled independently, therefore the most efficient scheme is to have each scheduled component requesting synchronously fresh informations from the components it depends on whenever (if and when) they are needed.

Note:
The classical MVC framework (with Ceylan::Model, Ceylan::View and Ceylan::Controller) is an entirely separated framework. It is event-based, it uses more resources and is generally deemed less flexible than this generic one. Choose the one you prefer.
See also:
testCeylanGenericMVC.cc for examples.

Definition at line 90 of file CeylanGenericView.h.


Member Enumeration Documentation

Defines what text output formats for TextDisplayable instances are available.

Enumerator:
rawText 
html 

Definition at line 124 of file CeylanTextDisplayable.h.


Constructor & Destructor Documentation

BaseView::BaseView (  ) 

Constructs a view, not linked to any model.

Definition at line 48 of file CeylanGenericView.cc.

BaseView::~BaseView (  )  throw () [virtual]

Basic virtual destructor.

Definition at line 55 of file CeylanGenericView.cc.

Ceylan::MVC::BaseView::BaseView ( const BaseView source  )  [private]

Copy constructor made private to ensure that it will never be called.

The compiler should complain whenever this undefined constructor is called, implicitly or not.


Member Function Documentation

TextDisplayable::TextOutputFormat TextDisplayable::GetOutputFormat (  )  [static, inherited]

BaseView& Ceylan::MVC::BaseView::operator= ( const BaseView source  )  [private]

Assignment operator made private to ensure that it will never be called.

The compiler should complain whenever this undefined operator is called, implicitly or not.

virtual void Ceylan::MVC::BaseView::render (  )  [pure virtual]

Requests that view to generate its interpretation of the model(s) it is linked to.

Note:
There is intentionally no throw specification.

void TextDisplayable::SetOutputFormat ( TextOutputFormat  newOutputFormat  )  [static, inherited]

Sets the current overall text format to be used by TextDisplayable instances.

Parameters:
newOutputFormat the new output format.

Definition at line 72 of file CeylanTextDisplayable.cc.

References Ceylan::TextDisplayable::_OutputFormat.

Referenced by Ceylan::Log::LogHolder::LogHolder().

const std::string TextDisplayable::ToString ( std::list< TextDisplayable * >  displayables,
Ceylan::VerbosityLevels  level = Ceylan::high 
) [static, inherited]

Returns a user-friendly description of this list of pointers to text displayable instances.

Parameters:
displayables a list of pointers to TextDisplayable instances/
level the requested verbosity level.
Note:
Text output format is determined from overall settings.
See also:
toString, Ceylan::VerbosityLevels

Definition at line 45 of file CeylanTextDisplayable.cc.

References Ceylan::formatStringList().

const string BaseView::toString ( Ceylan::VerbosityLevels  level = Ceylan::high  )  const [virtual]

Returns a user-friendly description of the state of this object.

Parameters:
level the requested verbosity level.
Note:
Text output format is determined from overall settings.
See also:
TextDisplayable

Implements Ceylan::TextDisplayable.

Reimplemented in Ceylan::MVC::SingleModelGenericView< ActualModel >.

Definition at line 62 of file CeylanGenericView.cc.

Referenced by Ceylan::MVC::SingleViewModel::toString().


Member Data Documentation

TextDisplayable::TextOutputFormat TextDisplayable::_OutputFormat = rawText [static, protected, inherited]

The text format to be used currently by TextDisplayable instances.

Note:
Defaults to raw text.

Definition at line 158 of file CeylanTextDisplayable.h.

Referenced by Ceylan::TextDisplayable::GetOutputFormat(), and Ceylan::TextDisplayable::SetOutputFormat().


The documentation for this class was generated from the following files:

Generated on Thu Jun 4 20:40:39 2009 for Ceylan by  doxygen 1.5.8