Ceylan::MVC::MultipleViewGenericModel< ActualView > Class Template Reference

Generic model template, for models specifically linked to multiple (i.e. More...

#include <CeylanGenericModel.h>

Inheritance diagram for Ceylan::MVC::MultipleViewGenericModel< ActualView >:
Inheritance graph
[legend]
Collaboration diagram for Ceylan::MVC::MultipleViewGenericModel< ActualView >:
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

 MultipleViewGenericModel (const ActualView &view)
 Creates a new generic model, which will be linked to specified view, whose ownership is taken, and to no controller.
 MultipleViewGenericModel (const std::list< const ActualView * > &views)
 Creates a new generic model, which will be linked to specified views, whose ownership is taken, and to no controller.
 MultipleViewGenericModel ()
 Creates a new generic model, which will be linked afterwards to views, and to no controller.
virtual ~MultipleViewGenericModel () throw ()
 Virtual destructor.
virtual void setViews (const std::list< const ActualView * > &views)
 Sets the list of views this model should be linked.
virtual void addView (const ActualView &view) const
 Adds specified view to the already registered views.
virtual const std::string toString (Ceylan::VerbosityLevels level=Ceylan::high) const
 Returns a user-friendly description of the state of this object.
virtual void addView (const BaseView &view) const =0
 Adds specified view to that model.

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.

Protected Member Functions

virtual void deleteViews ()
 Deletes all referenced views.

Protected Attributes

std::list< const ActualView * > _views
 The associated views.

Static Protected Attributes

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

Private Member Functions

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

Detailed Description

template<typename ActualView>
class Ceylan::MVC::MultipleViewGenericModel< ActualView >

Generic model template, for models specifically linked to multiple (i.e.

any number of) views, which the model owns, and with no known specific controller.

See also:
testCeylanGenericMVC.cc for examples.

Definition at line 808 of file CeylanGenericModel.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

template<typename ActualView >
Ceylan::MVC::MultipleViewGenericModel< ActualView >::MultipleViewGenericModel ( const ActualView &  view  )  [inline, explicit]

Creates a new generic model, which will be linked to specified view, whose ownership is taken, and to no controller.

Note:
Generally cannot be used because of the chicken-and-egg problem: on creation the view needs its model, and this model needs its view, both cannot be satisfied.

Definition at line 967 of file CeylanGenericModel.h.

References Ceylan::MVC::MultipleViewGenericModel< ActualView >::_views.

template<typename ActualView >
Ceylan::MVC::MultipleViewGenericModel< ActualView >::MultipleViewGenericModel ( const std::list< const ActualView * > &  views  )  [inline, explicit]

Creates a new generic model, which will be linked to specified views, whose ownership is taken, and to no controller.

Note:
Generally cannot be used because of the chicken-and-egg problem: on creation the views need their model, and this model needs its views, both cannot be satisfied.

Definition at line 977 of file CeylanGenericModel.h.

References Ceylan::MVC::MultipleViewGenericModel< ActualView >::_views.

template<typename ActualView >
Ceylan::MVC::MultipleViewGenericModel< ActualView >::MultipleViewGenericModel (  )  [inline]

Creates a new generic model, which will be linked afterwards to views, and to no controller.

Note:
Generally used because of the chicken-and-egg problem: on creation the views need their model, so these views cannot be specified directly when creating this model.

Definition at line 988 of file CeylanGenericModel.h.

template<typename ActualView >
Ceylan::MVC::MultipleViewGenericModel< ActualView >::~MultipleViewGenericModel (  )  throw () [inline, virtual]

Virtual destructor.

Note:
All associated views will be removed.

Definition at line 996 of file CeylanGenericModel.h.

References Ceylan::MVC::MultipleViewGenericModel< ActualView >::deleteViews().

template<typename ActualView >
Ceylan::MVC::MultipleViewGenericModel< ActualView >::MultipleViewGenericModel ( const MultipleViewGenericModel< ActualView > &  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

virtual void Ceylan::MVC::BaseModel::addView ( const BaseView view  )  const [pure virtual, inherited]

Adds specified view to that model.

Exceptions:
GenericMVCException if the operation failed.

Pure virtual method so that all model child classes have to choose how many views can be registered and whether they are owned by the model.

Note:
This is nevertheless a 'const' method, as adding a view is deemed not to change the state of the model itself; moreover if it was non-const, then views (which have const references to models) could not auto-register themselves to the models).

Implemented in Ceylan::MVC::NoViewModel, Ceylan::MVC::SingleViewModel, Ceylan::MVC::MultipleViewModel, and Ceylan::MVC::SingleControllerSingleViewGenericModel< ActualController >.

template<typename ActualView >
void Ceylan::MVC::MultipleViewGenericModel< ActualView >::addView ( const ActualView &  view  )  const [inline, virtual]

Adds specified view to the already registered views.

Parameters:
view the view, whose ownership is taken.
Exceptions:
GenericMVCException if the operation failed.
Note:
This is nevertheless a 'const' method, as adding a view is deemed not to change the state of the model itself; moreover if it was non-const, then views (which have const references to models) could not auto-register themselves to the models).

Definition at line 1023 of file CeylanGenericModel.h.

References Ceylan::MVC::MultipleViewGenericModel< ActualView >::_views.

template<typename ActualView >
void Ceylan::MVC::MultipleViewGenericModel< ActualView >::deleteViews (  )  [inline, protected, virtual]
TextDisplayable::TextOutputFormat TextDisplayable::GetOutputFormat (  )  [static, inherited]
template<typename ActualView >
MultipleViewGenericModel& Ceylan::MVC::MultipleViewGenericModel< ActualView >::operator= ( const MultipleViewGenericModel< ActualView > &  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.

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

template<typename ActualView >
void Ceylan::MVC::MultipleViewGenericModel< ActualView >::setViews ( const std::list< const ActualView * > &  views  )  [inline, virtual]

Sets the list of views this model should be linked.

Parameters:
views the list of views; the list is copied (ownership not taken), but the ownership of views is taken.
Exceptions:
GenericMVCException if at least one view was already registered.

Definition at line 1007 of file CeylanGenericModel.h.

References Ceylan::MVC::MultipleViewGenericModel< ActualView >::_views.

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

template<typename ActualView >
const std::string Ceylan::MVC::MultipleViewGenericModel< ActualView >::toString ( Ceylan::VerbosityLevels  level = Ceylan::high  )  const [inline, 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

Reimplemented from Ceylan::MVC::BaseModel.

Definition at line 1034 of file CeylanGenericModel.h.

References Ceylan::MVC::MultipleViewGenericModel< ActualView >::_views, Ceylan::formatStringList(), and Ceylan::low.


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

template<typename ActualView >
std::list<const ActualView *> Ceylan::MVC::MultipleViewGenericModel< ActualView >::_views [protected]

The documentation for this class was generated from the following file:
Generated on Mon Nov 29 13:41:37 2010 for Ceylan by  doxygen 1.6.3