diff options
Diffstat (limited to 'project2/common/rowView.h')
-rw-r--r-- | project2/common/rowView.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/project2/common/rowView.h b/project2/common/rowView.h new file mode 100644 index 0000000..c065414 --- /dev/null +++ b/project2/common/rowView.h @@ -0,0 +1,33 @@ +#ifndef ROWVIEW_H +#define ROWVIEW_H + +#include <libxml++/nodes/element.h> +#include <boost/intrusive_ptr.hpp> +#include "rowProcessor.h" +#include "view.h" + +/// Project2 component to create output based on a records in a row set +class RowView : public View, public RowProcessor { + public: + RowView(const xmlpp::Element *); + virtual ~RowView(); + + void loadComplete(const CommonObjects *); + void execute(const Presenter *) const; + void rowReady(const RowState *) const; + + const Glib::ustring rootName; + const Glib::ustring recordName; + + protected: + typedef std::map<Glib::ustring, Variable> Columns; + Columns viewColumns; + + void executeChildren() const; + typedef ANONSTORAGEOF(View) SubViews; + SubViews subViews; + mutable const Presenter * presenter; +}; + +#endif + |