Wt examples  3.2.1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Form Class Reference

A simple Form. More...

#include <Form.h>

Inheritance diagram for Form:
Inheritance graph
[legend]

Public Member Functions

 Form (WContainerWidget *parent=0)
 Instantiate a new form.
- Public Member Functions inherited from Wt::WTable
 WTable (WContainerWidget *parent=0)
 ~WTable ()
WTableCellelementAt (int row, int column)
WTableRowrowAt (int row)
WTableColumncolumnAt (int column)
void removeCell (WTableCell *item)
void removeCell (int row, int column)
WTableRowinsertRow (int row)
void deleteRow (int row)
WTableColumninsertColumn (int column)
void deleteColumn (int column)
void clear ()
int rowCount () const
int columnCount () const
void setHeaderCount (int count, Orientation orientation=Horizontal)
int headerCount (Orientation orientation=Horizontal)
void moveRow (int from, int to)
void moveColumn (int from, int to)
- Public Member Functions inherited from Wt::WInteractWidget
 WInteractWidget (WContainerWidget *parent=0)
EventSignal< WKeyEvent > & keyWentDown ()
EventSignal< WKeyEvent > & keyPressed ()
EventSignal< WKeyEvent > & keyWentUp ()
EventSignalenterPressed ()
EventSignalescapePressed ()
EventSignal< WMouseEvent > & clicked ()
EventSignal< WMouseEvent > & doubleClicked ()
EventSignal< WMouseEvent > & mouseWentDown ()
EventSignal< WMouseEvent > & mouseWentUp ()
EventSignal< WMouseEvent > & mouseWentOut ()
EventSignal< WMouseEvent > & mouseWentOver ()
EventSignal< WMouseEvent > & mouseMoved ()
EventSignal< WMouseEvent > & mouseDragged ()
EventSignal< WMouseEvent > & mouseWheel ()
EventSignal< WTouchEvent > & touchStarted ()
EventSignal< WTouchEvent > & touchEnded ()
EventSignal< WTouchEvent > & touchMoved ()
EventSignal< WGestureEvent > & gestureStarted ()
EventSignal< WGestureEvent > & gestureChanged ()
EventSignal< WGestureEvent > & gestureEnded ()
void setDraggable (const std::string &mimeType, WWidget *dragWidget=0, bool isDragWidgetOnly=false, WObject *sourceWidget=0)
virtual void load ()
virtual bool isEnabled () const
- Public Member Functions inherited from Wt::WWebWidget
 WWebWidget (WContainerWidget *parent=0)
virtual void setPositionScheme (PositionScheme scheme)
virtual PositionScheme positionScheme () const
virtual void setOffsets (const WLength &offset, WFlags< Side > sides=All)
virtual WLength offset (Side s) const
virtual void resize (const WLength &width, const WLength &height)
virtual WLength width () const
virtual WLength height () const
virtual void setMinimumSize (const WLength &width, const WLength &height)
virtual WLength minimumWidth () const
virtual WLength minimumHeight () const
virtual void setMaximumSize (const WLength &width, const WLength &height)
virtual WLength maximumWidth () const
virtual WLength maximumHeight () const
virtual void setLineHeight (const WLength &height)
virtual WLength lineHeight () const
virtual void setFloatSide (Side s)
virtual Side floatSide () const
virtual void setClearSides (WFlags< Side > sides)
virtual WFlags< SideclearSides () const
virtual void setMargin (const WLength &margin, WFlags< Side > sides=All)
virtual WLength margin (Side side) const
virtual void setHiddenKeepsGeometry (bool enabled)
virtual bool hiddenKeepsGeometry () const
virtual void setHidden (bool hidden, const WAnimation &animation=WAnimation())
virtual bool isHidden () const
virtual bool isVisible () const
virtual void setDisabled (bool disabled)
virtual bool isDisabled () const
virtual void setPopup (bool popup)
virtual bool isPopup () const
virtual void setInline (bool isInline)
virtual bool isInline () const
virtual void setDecorationStyle (const WCssDecorationStyle &style)
virtual WCssDecorationStyledecorationStyle ()
virtual void setStyleClass (const WString &styleClass)
virtual WString styleClass () const
virtual void addStyleClass (const WString &styleClass, bool force=false)
virtual void removeStyleClass (const WString &styleClass, bool force=false)
virtual void setVerticalAlignment (AlignmentFlag alignment, const WLength &length=WLength())
virtual AlignmentFlag verticalAlignment () const
virtual WLength verticalAlignmentLength () const
virtual void setToolTip (const WString &text, TextFormat textFormat=PlainText)
virtual WString toolTip () const
virtual void refresh ()
virtual void setAttributeValue (const std::string &name, const WString &value)
virtual WString attributeValue (const std::string &name) const
virtual void setJavaScriptMember (const std::string &name, const std::string &value)
virtual std::string javaScriptMember (const std::string &name) const
virtual void callJavaScriptMember (const std::string &name, const std::string &args)
virtual bool loaded () const
virtual void setTabIndex (int index)
virtual int tabIndex () const
virtual void setId (const std::string &id)
virtual WWidgetfind (const std::string &name)
virtual void setSelectable (bool selectable)
virtual void doJavaScript (const std::string &javascript)
virtual const std::string id () const
void setLoadLaterWhenInvisible (bool)
const std::vector< WWidget * > & children () const
SignalchildrenChanged ()
bool isRendered () const
- Public Member Functions inherited from Wt::WWidget
virtual ~WWidget ()
WWidgetparent () const
void setWidth (const WLength &width)
void setHeight (const WLength &height)
virtual void positionAt (const WWidget *widget, Orientation orientation=Vertical)
std::string jsRef () const
virtual void acceptDrops (const std::string &mimeType, const WString &hoverStyleClass=WString())
virtual void stopAcceptDrops (const std::string &mimeType)
virtual void htmlText (std::ostream &out)
void hide ()
void animateHide (const WAnimation &animation)
void show ()
void animateShow (const WAnimation &animation)
void enable ()
void disable ()
bool layoutSizeAware () const
- Public Member Functions inherited from Wt::WObject
 WObject (WObject *parent=0)
virtual ~WObject ()
void setObjectName (const std::string &name)
virtual std::string objectName () const
void resetLearnedSlots ()
void resetLearnedSlot (void(T::*method)())
WStatelessSlot * implementStateless (void(T::*method)())
WStatelessSlot * implementStateless (void(T::*method)(), void(T::*undoMethod)())
WStatelessSlot * implementJavaScript (void(T::*method)(), const std::string &jsCode)
void addChild (WObject *child)

Private Member Functions

void countryChanged ()
 The user selected a new country: adjust the cities combo box.
void submit ()
 Submit the form.
void createUI ()
void addValidationStatus (int row, WFormWidget *field)
 Add a validation feedback for a field.
bool validate ()
 Validate the form, and return whether succesfull.
bool checkValid (WFormWidget *edit, const WString &text)
 Validate a single form field.

Private Attributes

WContainerWidgetfeedbackMessages_
WLineEditnameEdit_
WLineEditfirstNameEdit_
WComboBoxcountryEdit_
WComboBoxcityEdit_
WDatePickerbirthDateEdit_
WLineEditchildCountEdit_
WLineEditweightEdit_
WTextArearemarksEdit_

Additional Inherited Members

- Public Types inherited from Wt::WObject
typedef void(WObject::* Method )()
- Static Public Member Functions inherited from Wt::WWebWidget
static WString escapeText (const WString &text, bool newlinesToo=false)
static std::string & escapeText (std::string &text, bool newlinestoo=false)
static bool removeScript (WString &text)
static std::string jsStringLiteral (const std::string &v, char delimiter= '\'')
- Protected Member Functions inherited from Wt::WInteractWidget
virtual void propagateSetEnabled (bool enabled)
- Static Protected Member Functions inherited from Wt::WObject
static WObjectsender ()

Detailed Description

A simple Form.

Shows how a simple form can made, with an emphasis on how to handle validation.

Definition at line 35 of file Form.h.

Constructor & Destructor Documentation

Form::Form ( WContainerWidget parent = 0)

Instantiate a new form.

Definition at line 17 of file Form.C.

: WTable(parent)
{
}

Member Function Documentation

void Form::addValidationStatus ( int  row,
WFormWidget field 
)
private

Add a validation feedback for a field.

bool Form::checkValid ( WFormWidget edit,
const WString text 
)
private

Validate a single form field.

Checks the given field, and appends the given text to the error messages on problems.

Definition at line 158 of file Form.C.

{
if (edit->validate() != WValidator::Valid) {
edit->setStyleClass("Wt-invalid");
return false;
} else {
edit->setStyleClass("");
return true;
}
}
void Form::countryChanged ( )
private

The user selected a new country: adjust the cities combo box.

Definition at line 124 of file Form.C.

{
switch (countryEdit_->currentIndex()) {
case 0:
break;
case 1:
cityEdit_->addItem("Antwerp");
cityEdit_->addItem("Brussels");
cityEdit_->addItem("Oekene");
break;
case 2:
cityEdit_->addItem("Amsterdam");
cityEdit_->addItem("Den Haag");
cityEdit_->addItem("Rotterdam");
break;
case 3:
cityEdit_->addItem("London");
cityEdit_->addItem("Bristol");
cityEdit_->addItem("Oxford");
cityEdit_->addItem("Stonehenge");
break;
case 4:
cityEdit_->addItem("Boston");
cityEdit_->addItem("Chicago");
cityEdit_->addItem("Los Angelos");
cityEdit_->addItem("New York");
break;
}
}
void Form::createUI ( )
private

Definition at line 23 of file Form.C.

{
WLabel *label;
int row = 0;
// Title
elementAt(row, 0)->setColumnSpan(3);
elementAt(row, 0)->setContentAlignment(AlignTop | AlignCenter);
elementAt(row, 0)->setPadding(10);
WText *title = new WText(tr("example.form"),
elementAt(row, 0));
title->decorationStyle().font().setSize(WFont::XLarge);
// error messages
++row;
elementAt(row, 0)->setColumnSpan(3);
errorStyle.font().setSize(WFont::Smaller);
errorStyle.font().setWeight(WFont::Bold);
errorStyle.font().setStyle(WFont::Italic);
// Name
++row;
nameEdit_ = new WLineEdit(elementAt(row, 2));
label = new WLabel(tr("example.name"), elementAt(row, 0));
// First name
++row;
label = new WLabel(tr("example.firstname"), elementAt(row,0));
// Country
++row;
countryEdit_->addItem("Belgium");
countryEdit_->addItem("Netherlands");
countryEdit_->addItem("United Kingdom");
countryEdit_->addItem("United States");
label = new WLabel(tr("example.country"), elementAt(row, 0));
// City
++row;
cityEdit_ = new WComboBox(elementAt(row, 2));
cityEdit_->addItem(tr("example.choosecountry"));
label = new WLabel(tr("example.city"), elementAt(row, 0));
// Birth date
++row;
birthDateEdit_->setTop(WDate::currentDate());
label = new WLabel(tr("example.birthdate"), elementAt(row, 0));
birthDateEdit_->setFormat("dd/MM/yyyy");
// Child count
++row;
childCountEdit_ = new WLineEdit("0", elementAt(row, 2));
label = new WLabel(tr("example.childcount"),
elementAt(row, 0));
++row;
label = new WLabel(tr("example.remarks"),
elementAt(row, 0));
// Submit
++row;
WPushButton *submit = new WPushButton(tr("submit"),
elementAt(row, 0));
submit->clicked().connect(this, &Form::submit);
submit->setMargin(15, Top);
elementAt(row, 0)->setColumnSpan(3);
elementAt(row, 0)->setContentAlignment(AlignTop | AlignCenter);
// Set column widths for label and validation icon
elementAt(2, 0)->resize(WLength(30, WLength::FontEx), WLength::Auto);
elementAt(2, 1)->resize(20, WLength::Auto);
}
void Form::submit ( )
private

Submit the form.

Definition at line 192 of file Form.C.

{
if (validate()) {
// do something useful with the data...
std::wstring name
= firstNameEdit_->text() + L" " + nameEdit_->text();
std::wstring remarks
clear();
new WText(WString::fromUTF8("<p>Thank you, {1}, "
"for all this precious data.</p>").arg(name),
elementAt(0, 0));
if (!remarks.empty())
new WText("<p>You had some remarks. Splendid !</p>", elementAt(0, 0));
wApp->quit();
}
}
bool Form::validate ( )
private

Validate the form, and return whether succesfull.

Definition at line 175 of file Form.C.

{
bool valid = true;
if (!checkValid(nameEdit_, tr("error.name")))
valid = false;
if (!checkValid(countryEdit_, tr("error.country")))
valid = false;
if (!checkValid(birthDateEdit_->lineEdit(), tr("error.birthdate")))
valid = false;
if (!checkValid(childCountEdit_, tr("error.childcount")))
valid = false;
return valid;
}

Member Data Documentation

WDatePicker* Form::birthDateEdit_
private

Definition at line 61 of file Form.h.

WLineEdit* Form::childCountEdit_
private

Definition at line 62 of file Form.h.

WComboBox* Form::cityEdit_
private

Definition at line 59 of file Form.h.

WComboBox* Form::countryEdit_
private

Definition at line 58 of file Form.h.

WContainerWidget* Form::feedbackMessages_
private

Definition at line 53 of file Form.h.

WLineEdit* Form::firstNameEdit_
private

Definition at line 56 of file Form.h.

WLineEdit* Form::nameEdit_
private

Definition at line 55 of file Form.h.

WTextArea* Form::remarksEdit_
private

Definition at line 65 of file Form.h.

WLineEdit* Form::weightEdit_
private

Definition at line 63 of file Form.h.


The documentation for this class was generated from the following files:

Generated on Wed Oct 22 2014 for the C++ Web Toolkit (Wt) by doxygen 1.8.1.2