#ifndef FILTER_WIDGET_HPP #define FILTER_WIDGET_HPP #include #include #include #include #include #include "database/SqlQuery.hpp" namespace UserInterface { class FilterWidget : public Wt::WContainerWidget { public: struct Constraint { WhereClause where; // WHERE SQL clause }; FilterWidget(Wt::WContainerWidget* parent = 0) : Wt::WContainerWidget(parent) {} virtual ~FilterWidget() {} // Refresh filter Widget using constraints created by parent filters virtual void refresh(const Constraint& constraint) = 0; // Update constraints for child filters virtual void getConstraint(Constraint& constraint) = 0; // Emitted when a constraint has changed Wt::Signal& update() { return _update; }; protected: void emitUpdate() { _update.emit(); } private: Wt::Signal _update; }; } // namespace UserInterface #endif