summaryrefslogtreecommitdiff
path: root/project2/common/rowView.h
diff options
context:
space:
mode:
authorrandomdan <randomdan@localhost>2011-08-31 21:48:04 +0000
committerrandomdan <randomdan@localhost>2011-08-31 21:48:04 +0000
commit05b8bed896e5fe8c1841869e5d6e8e837e72c10a (patch)
tree77abf662b898321a61058fb0a0da603e336bcad9 /project2/common/rowView.h
parentAdds RDBMS table caching solution (diff)
downloadproject2-05b8bed896e5fe8c1841869e5d6e8e837e72c10a.tar.bz2
project2-05b8bed896e5fe8c1841869e5d6e8e837e72c10a.tar.xz
project2-05b8bed896e5fe8c1841869e5d6e8e837e72c10a.zip
The big reshuffle
Diffstat (limited to 'project2/common/rowView.h')
-rw-r--r--project2/common/rowView.h33
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
+