Public Member Functions | Private Member Functions | Private Attributes

JavascriptExample Class Reference
[Javascript - Wt interaction example]

An example showing how to interact custom JavaScript with Wt stuff. More...

#include <JavascriptExample.h>

Inheritance diagram for JavascriptExample:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 JavascriptExample (const WEnvironment &env)
 Create the example application.

Private Member Functions

void confirmed ()
 The user has confirmed the payment.
void setAmount (std::string amount)
 Set the amount to be payed.

Private Attributes

PopuppromptAmount_
 Popup for changing the amount.
PopupconfirmPay_
 Popup for paying.
WTextcurrentAmount_
 WText for showing the current amount.

Detailed Description

An example showing how to interact custom JavaScript with Wt stuff.

Definition at line 24 of file JavascriptExample.h.


Constructor & Destructor Documentation

JavascriptExample::JavascriptExample ( const WEnvironment env )

Create the example application.

Definition at line 19 of file JavascriptExample.C.

  : WApplication(env)
{
  setTitle("Javascript example");

  // Create a popup for prompting the amount of money, and connect the
  // okPressed button to the slot for setting the amount of money.
  //
  // Note that the input provided by the user in the prompt box is passed as
  // an argument to the slot.
  promptAmount_ = Popup::createPrompt("How much do you want to pay?", "",
                                      this);
  promptAmount_->okPressed().connect(this, &JavascriptExample::setAmount);

  // Create a popup for confirming the payment.
  //
  // Since a confirm popup does not allow input, we ignore the
  // argument carrying the input (which will be empty anyway).
  confirmPay_ = Popup::createConfirm("", this);
  confirmPay_->okPressed().connect(this, &JavascriptExample::confirmed);

  new WText("<h2>Wt Javascript example</h2>"
            "<p>Wt makes abstraction of Javascript, and therefore allows you"
            " to develop web applications without any knowledge of Javascript,"
            " and which are not dependent on Javascript."
            " However, Wt does allow you to add custom Javascript code:</p>"
            " <ul>"
            "   <li>To call custom JavaScript code from an event handler, "
            "connect the Wt::EventSignal to a Wt::JSlot.</li>"
            "   <li>To call C++ code from custom JavaScript, use "
            "Wt.emit() to emit a Wt::JSignal.</li>"
            "   <li>To call custom JavaScript code from C++, use "
            "WApplication::doJavascript() or Wt::JSlot::exec().</li>"
            " </ul>"
            "<p>This simple application shows how to interact between C++ and"
            " JavaScript using the JSlot and JSignal classes.</p>", root());

  currentAmount_
    = new WText("Current amount: $" + promptAmount_->defaultValue(), root());

  WPushButton *amountButton = new WPushButton("Change ...", root());
  amountButton->setMargin(10, Left | Right);

  new WBreak(root());

  WPushButton *confirmButton = new WPushButton("Pay now.", root());
  confirmButton->setMargin(10, Top | Bottom);

  // Connect the event handlers to a JSlot: this will execute the JavaScript
  // immediately, without a server round trip.
  amountButton->clicked().connect(promptAmount_->show);
  confirmButton->clicked().connect(confirmPay_->show);

  // Set the initial amount
  setAmount("1000");
}

Member Function Documentation

void JavascriptExample::confirmed (  ) [private]

The user has confirmed the payment.

Definition at line 88 of file JavascriptExample.C.

{
  new WText("<br/>Just payed $" + promptAmount_->defaultValue() + ".", root());
}
void JavascriptExample::setAmount ( std::string  amount ) [private]

Set the amount to be payed.

Definition at line 76 of file JavascriptExample.C.

{
  // Change the confirmation message to include the amount.
  confirmPay_->setMessage("Are you sure you want to pay $" + amount + " ?");

  // Change the default value for the prompt.
  promptAmount_->setDefaultValue(amount);

  // Change the text that shows the current amount.
  currentAmount_->setText("Current amount: $" + promptAmount_->defaultValue());
}

Member Data Documentation

Popup for paying.

Definition at line 46 of file JavascriptExample.h.

WText for showing the current amount.

Definition at line 50 of file JavascriptExample.h.

Popup for changing the amount.

Definition at line 42 of file JavascriptExample.h.


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

Generated on Fri Feb 4 2011 for the C++ Web Toolkit (Wt) by doxygen 1.7.2