summaryrefslogtreecommitdiff
path: root/project2/common/rowView.h
diff options
context:
space:
mode:
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
+