123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882 |
- <?xml version="1.0" encoding="UTF-8" ?>
- <messages>
- <message id="template">
- <div id="top_wrapper">
- <div id="top_content">
- ${languages}
- <div id="top_wt">
- <a href="http://www.emweb.be/">
- <img src="/css/jwt/emweb_powered.jpg" alt="Emweb" height="22" />
- </a>
- </div>
- </div>
- </div>
- <div id="banner_wrapper">
- <div id="banner_content">
- <div id="banner_end"> <div id="banner"><a href="#">JWt</a></div> </div>
- </div>
- </div>
- <div id="main_wrapper" class="home">
- <div id="main_content">
- <div id="main_menu">
- ${menu}
- ${sidebar}
- </div>
- ${contents}
- <div class="clearall"></div>
- </div>
- </div>
- <div id="footer_wrapper">
- <div id="footer_content">
- <div id="footer_copyright">
- <a href="http://www.emweb.be/">
- <img src="/css/jwt/emweb_large.jpg" height="25" width="101"
- alt="Emweb.be" title="emweb.be"/></a>
- Solutions for web-based systems<br/>
- <a href="http://www.emweb.be/">www.emweb.be</a>
- </div>
- <div id="footer_menu">
- <a href="http://www.webtoolkit.eu/wt/">Home</a>
- | <a href="http://www.emweb.be/?page=contact">Contact</a>
- </div>
- <div id="chat"></div>
- <script type="text/javascript">
- /*<![CDATA[*/
- setTimeout(function() {
- loadScript("http://www.webtoolkit.eu/wt/examples/simplechat/chat.js?div=chat", null);
- }, 0);
- /* ]]> */
- </script>
- <div class="clearall"></div>
- </div>
- <script type="text/javascript">
- /*<![CDATA[*/
- (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
- (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
- m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
- })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
- ga('create', 'UA-4345578-1', 'auto');
- ga('send', 'pageview');
- /* ]]> */
- </script>
- </div>
- </message>
- <message id="wt">JWt, Java Web Toolkit</message>
- <message id="introduction">Introduction</message>
- <message id="blog">Blog</message>
- <message id="features">Features</message>
- <message id="documentation">Documentation</message>
- <message id="examples">Examples</message>
- <message id="download">Download</message>
- <message id="community">Support</message>
- <message id="other-language">!Java</message>
- <message id="hello-world">Hello world</message>
- <message id="charts">Charts</message>
- <message id="wt-homepage">Wt homepage</message>
- <message id="treeview">Treeview</message>
- <message id="git">Git explorer</message>
- <message id="chat">Chat</message>
- <message id="mail-composer">Mail composer</message>
- <message id="figtree">FigTree</message>
- <message id="widget-gallery">Widget gallery</message>
- <message id="home.news">
- <h3><span>News</span></h3>
- </message>
- <message id="home.latest-news">
- <h4><span>Latest News</span></h4>
- </message>
- <message id="home.historical-news">
- <h4><span>Historical News</span></h4>
- </message>
-
- <message id="source-browser-link">
- <a href="{1}">Browse the source code</a>
- </message>
- <message id="src-title">
- <div>
- </div>
- </message>
- <message id="home.intro">
- <h3><span>JWt: an introduction</span></h3>
- <p>JWt is a Java library for developing web applications.</p>
- <p>The API is <b>widget-centric</b> and uses well-tested patterns of
- desktop GUI development tailored to the web. To the developer, it offers
- abstraction of many web-specific implementation details and frees
- the developer from tedious JavaScript manipulations of HTML and
- dealing with cross-browser issues. Instead, with JWt, you can focus on
- actual functionality with a rich set of feature-complete widgets.</p>
- <p>Unlike old-school page-based frameworks or current-day single-page
- JavaScript "frameworks", JWt allows you to create stateful
- applications that are at the same time highly interactive (using
- WebSockets and Ajax for everything) but still support plain HTML
- browsers or web crawlers using automatic <b>graceful degradation or
- progressive enhancement</b>. Things that are natural and simple with
- JWt would require an impractical amount of development effort
- otherwise: switching widgets using animations, while retaining clean
- URLs and browser navigation functions, or having a persistent chat
- widget open throughout the entire application, that even works in
- legacy browsers like Microsoft Internet Explorer 6.</p>
- <p>JWt applications can be deployed in a standard Java Servlet
- container.</p>
- <h4>Feature rich</h4>
- <ul>
- <li>Layout using <a
- href="http://jwt.emweb.be/jwt-gallery/gallery/layout/html-templates">HTML
- templates</a> or intelligent <a
- href="http://jwt.emweb.be/jwt-gallery/gallery/layout/layout-managers">layout
- managers</a> and themable look-and-feel, including support for <a
- href="http://getbootstrap.com">Twitter Bootstrap</a> versions 2 or 3.</li>
- <li>Create and maintain complexity by using and building reusable and
- self-contained widgets.</li>
- <li>Comes with a large set of feature-rich widgets that include <a href="http://jwt.emweb.be/jwt-gallery/gallery/forms/">form
- widgets</a>, <a
- href="http://jwt.emweb.be/jwt-gallery/gallery/trees-tables/mvc-table-views">table</a>
- and <a
- href="http://jwt.emweb.be/jwt-gallery/gallery/trees-tables/mvc-tree-views">tree
- views</a>, <a
- href="http://jwt.emweb.be/jwt-gallery/gallery/layout/dialogs">dialogs</a>, <a
- href="http://jwt.emweb.be/jwt-gallery/gallery/navigation/popup-menu">popup
- menu's</a>, etc...</li>
- <li>Unified <a
- href="http://jwt.emweb.be/jwt-gallery/gallery/graphics-charts">graphics</a>
- APIs, 2D (SVG, HTML5 Canvas, VML, PNG, and PDF) & 3D (client side
- WebGL and server-side OpenGL).</li>
- <li>Feature rich <a
- href="http://jwt.emweb.be/jwt-gallery/gallery/media/pdf-output">HTML
- to PDF renderer</a> for dynamic report generation.</li>
- <li>Built-in security against common vulnerabilities such as <a
- href="http://en.wikipedia.org/wiki/Cross-site_scripting">XSS (Cross-Site Scripting)</a> or <a
- href="http://en.wikipedia.org/wiki/Cross-site_request_forgery">CSRF
- (Cross-Site Request Forgery)</a></li>
- <li>Open-source or commercial license model.</li>
- </ul>
- <p>By using standard Java and JVMs, JWt applications can benefit from
- any existing Java libraries and JVM features including its support for
- your favourite scripting language.</p>
- <h4>Typical use scenarios:</h4>
- <ul>
- <li><b>High performance, complex web applications</b> (with a
- database backend) that require a responsive and dynamic user
- interface and benefit from the use of Java, if only to use Java
- refactoring tools while keeping track of ever changing
- requirements.</li>
- <li>Web applications which maximally benefit from modern browser
- capabilities but with <b>graceful degradation</b> to adhere to W3C
- accessibility guidelines and be search engine friendly.</li>
- <li>Porting of <b>Java desktop applications</b> to the web.</li>
- </ul>
- </message>
- <message id="home.features">
- <h3><span>Features</span></h3>
- <h4>Core library</h4>
- <ul>
- <li>Supports major browsers (Firefox/Gecko, Internet Explorer,
- Safari, Chrome, Konqueror, and Opera) but also plain HTML browsers
- and web crawlers.</li>
- <li>Simple deployment in standard Java Servlet 2.4 or 3.0 containers. </li>
- <li>No need for IDE plugins: it's plain old Java.</li>
- <li>Equal behavior with or without support for JavaScript or Ajax,
- as far as possible, by using graceful degradation or progressive
- enhancement.</li>
- <li>Efficient rendering and low latency.</li>
- <li>Support for browser history navigation (back/forward buttons and
- bookmarks), pretty URLs with HTML5 History if available, and
- search engine optimization with a unified behavior for plain HTML
- or Ajax sessions.</li>
- <li>Widget centric API that promotes component reuse and increases
- productivity.</li>
- </ul>
- <h4>Event handling</h4>
- <ul>
- <li>Uses an event listener system for server-side event handling,
- comparable to Java GUI frameworks (SWT, Swing).</li>
- <li>Listen for keyboard, mouse, focus, scroll or drag&drop events,
- and get event details (such as mouse position, modifier buttons, or
- keyboard key).</li>
- <li>Automatic synchronization Automatically synchronizes form field data
- from browser to server and tracks server-side changes to be rendered
- in browser.</li>
- <li>Integrate with JavaScript libraries</li>
- <li>Timed events and server-initiated updates ("server push"), the
- latter using Servlet 3.0 async features when deployed in a Servlet
- 3.0 container.</li>
- </ul>
- <h4>Native painting system</h4>
- <ul>
- <li>Unified 2D painting API which uses the browsers native (vector)
- graphics support (inline VML, inline SVG, or HTML5 canvas), or
- renders to common image formats (PNG, GIF, ...) or vector formats
- (SVG, PDF).</li>
- <li>Unified GL-based 3D painting API which leverages WebGL in the browser
- or server-side OpenGL (fallback).</li>
- </ul>
- <h4>Built-in security</h4>
- <ul>
- <li>Enables continuous use of HTTPS through low bandwidth
- requirements.</li>
- <li>Built-in Cross-Site Scripting (XSS) prevention. Rendered text is
- always filtered against potentially malicious code, making XSS
- attacks against JWt applications (close to) impossible.</li>
- <li>Not vulnerable to Cross-site Request Forgery (CSRF) because
- cookies are not needed for session tracking.</li>
- <li>Not vulnerable to breaking the application logic by skipping to
- a particular URL, since only those events exposed in the interface
- can be triggered.</li>
- </ul>
- <h4>Testing</h4>
- With JWt, event handling code constructs and manipulates a widget
- tree, which can easily be inspected by test code. Therefore, a <a
- href="http://www.webtoolkit.eu/jwt/latest/doc/javadoc/eu/webtoolkit/jwt/WTestEnvironment.html">test
- environment</a> allows your application to be instantiated and events
- to be simulated in absence of a browser, short-cutting the underlying
- request/response cycle that would otherwise require a simulated
- browser.
- <h4>Deployment</h4>
- <ul>
- <li>Deploy into servlet containers (Tomcat, Jetty) and application
- servers (JBoss).</li>
- <li>Consists out of (currently four) jar files that need to be
- included in the IDE or used in war/ear archives.</li>
- <li>No XML, except for JEE's web.xml and message resource bundles.</li>
- </ul>
- </message>
- <message id="home.examples">
- <h3><span>Examples</span></h3>
- <p>Explore some live examples of JWt below.</p>
- <p>
- The source code of these (and many more) examples is included in the
- JWt source distribution. You may also browse through the source code
- of each example using the <a href="#/src">source code viewer</a>.
- </p>
- </message>
- <message id="home.examples.hello">
- <div>
- <h4 class="example">Hello world!</h4>
- <p>
- <a href="http://jwt.emweb.be/jwt-hello/" class="run" target="_blank">
- <img src="/icons/orange-play.png" style="vertical-align: top"/> Run example
- </a>
- </p>
- <p>This simple example illustrates most of the basic JWt concepts:</p>
- <ul>
- <li>
- How to create a simple Ajax web application that degrades
- gracefully to plain HTML post-backs, using <a
- href="http://www.webtoolkit.eu/jwt/latest/doc/javadoc/eu/webtoolkit/jwt/WApplication.html">WApplication</a> that corresponds to a new session.
- </li>
- <li>
- <b>Creating widgets</b>, and adding them to <b>the widget tree</b>.
- </li>
- <li>
- Reacting to events using <b>event listeners</b>.
- </li>
- <li>
- Reading user input and updating widgets.
- </li>
- </ul>
- </div>
- </message>
- <message id="home.examples.treeview">
- <div>
- <h4 class="example">Treeview</h4>
- <p>
- <a href="http://jwt.emweb.be/jwt-treeviewdragdrop/treeviewdragdrop" class="run" target="_blank">
- <img src="/icons/orange-play.png" style="vertical-align: top"/> Run example
- </a>
- </p>
- This example illustrates some MVC functionality provided by builtin
- Views (WTreeView, WTableView and PieChart) and models.
- <ul>
- <li>
- The example uses <a
- href="http://www.webtoolkit.eu/jwt/latest/doc/javadoc/eu/webtoolkit/jwt/WTreeView.html">WTreeView</a>
- and <a
- href="http://www.webtoolkit.eu/jwt/latest/doc/javadoc/eu/webtoolkit/jwt/WTableView.html">WTableView</a> widgets for rendering a Model's
- data in a tree or a table.
- </li>
- <li>
- A <a
- href="http://www.webtoolkit.eu/jwt/latest/doc/javadoc/eu/webtoolkit/jwt/WSortFilterProxyModel.html">WSortFilterProxyModel</a>
- implement sorting and filtering for another model.
- </li>
- <li>
- These item views have support for drag and drop of a selection of items.
- </li>
- <li>
- You can use nested layout managers (horizontal and
- vertical
- <a
- href="http://www.webtoolkit.eu/jwt/latest/doc/javadoc/eu/webtoolkit/jwt/WBoxLayout.html">WBoxLayout</a>)
- for an automatic window-filling layout, with optional resize handles.
- </li>
- <li>
- Modal (and non-modal) <a
- href="http://www.webtoolkit.eu/jwt/latest/doc/javadoc/eu/webtoolkit/jwt/WDialog.html">dialogs</a> can be used to prompt for input.
- </li>
- </ul>
- </div>
- </message>
- <message id="home.examples.chart">
- <div>
- <h4 class="example">Charts example</h4>
- <p>
- <a href="http://jwt.emweb.be/jwt-charts/charts" class="run" target="_blank">
- <img src="/icons/orange-play.png" style="vertical-align: top"/> Run example
- </a>
- </p>
- <p>This example demonstrates the <a
- href="http://www.webtoolkit.eu/jwt/latest/doc/javadoc/eu/webtoolkit/jwt/chart/package-summary.html">JWt
- charting widgets</a> that are implemented on top of JWt's
- cross-browser painting API. This painting API uses built-in browser
- support for generating high quality graphics. Depending on the
- browser, inline VML, inline SVG, HTML5 canvas or a PNG image is used
- to render painted contents in a <a
- href="http://www.webtoolkit.eu/jwt/latest/doc/javadoc/eu/webtoolkit/jwt/WPaintedWidget.html">WPaintedWidget</a>.
- </p>
- <p>This example also demonstrates how a Model can be shared by several
- Views, and pass modification events to each connected View. The <a
- href="http://www.webtoolkit.eu/jwt/latest/doc/javadoc/eu/webtoolkit/jwt/WTableView.html"
- target="_blank">table view</a> and the chart implement a <i>View</i>
- on the same <a
- href="http://www.webtoolkit.eu/jwt/latest/doc/javadoc/eu/webtoolkit/jwt/WAbstractItemModel.html"
- target="_blank">item model</a>.</p>
- </div>
- </message>
- <message id="home.examples.composer">
- <div>
- <h4 class="example">Mail composer</h4>
- <p>
- <a href="http://jwt.emweb.be/jwt-composer/composer" class="run" target="_blank">
- <img src="/icons/orange-play.png" style="vertical-align: top"/> Run example
- </a>
- </p>
- <p>
- This example implements a GMail-like mail composer and shows among
- other things how to upload files asynchronously, showing a
- cross-browser upload progress bar and with support for multiple
- files.
- </p>
- <p>
- Some notes about this example:
- </p>
- <ul>
- <li>
- The <i>ContactSuggestions</i> class provides auto-completion of
- the addressees in the To: Cc: and Bcc: fields. The widget
- derives from <a
- href="http://www.webtoolkit.eu/jwt/latest/doc/javadoc/eu/webtoolkit/jwt/WSuggestionPopup.html">WSuggestionPopup</a>.
- </li>
- <li>
- The <i>AttachmentEdit</i> widget uses a <a
- href="http://www.webtoolkit.eu/jwt/latest/doc/javadoc/eu/webtoolkit/jwt/WFileUpload.html">WFileUpload</a>
- to asynchronously upload one or more files. The upload <a
- href="http://www.webtoolkit.eu/jwt/latest/doc/javadoc/eu/webtoolkit/jwt/WProgressBar.html">progress bar</a> will work even in IE6.
- </li>
- </ul>
- </div>
- </message>
- <message id="home.examples.chat">
- <div>
- <h4 class="example">Simple Chat</h4>
- <p>
- <a href="http://jwt.emweb.be/jwt-simplechat/simplechat" class="run" target="_blank">
- <img src="/icons/orange-play.png" style="vertical-align: top"/> Run example
- </a>
- </p>
- <p>
- This example implements a simple chat client and server. Using
- <b>server-initiated updates</b>, you can easily push events from one
- user to other users. Server-initiated updates are implemented
- using Ajax long polling.
- </p>
- <p>
- When deploying in a Servlet-3.0 container, you can enable its
- asynchronous processing and JWt will benefit from this to not tie up
- threads for each open connection. But you can also deploy the
- application on a Servlet-2.5 container, reverting to blocking
- threads. This may be convenient when a Servlet-3.0 container is not
- available, e.g. during development.
- </p>
- <p>
- It also illustrates nice benefits of a class-based approach to web
- application development: you can easily instantiate the same widget
- class multiple times. The SimpleChatClient widget may be reused
- just as you reuse basic JWt widgets such as a push button.
- </p>
- <p>
- Interactive applications like these, which allow users to post HTML
- text to other users, are notorious for <b>cross-site-scripting (XSS)
- attacks</b>: a user enters malicious (javascript) code as part of
- his message. When another user renders this message, it may transmit
- unwanted private information retrieved from, for example, browser
- cookies. JWt prevents such attacks completely, and without any
- responsibility to the developer, since widgets such as WText ensure
- that what is displayed is only passive text, discarding anything
- that is not strictly text.
- </p>
- </div>
- </message>
- <message id="home.examples.figtree">
- <div>
- <h4 class="example">FigTree</h4>
- <p>
- <a href="http://jwt.emweb.be/figtree/figtree" class="run" target="_blank">
- <img src="/icons/orange-play.png" style="vertical-align: top"/> Run example
- </a>
- </p>
- <p>
- <a href="http://tree.bio.ed.ac.uk/software/figtree/"
- target="_blank">FigTree</a> is an application created by Andrew
- Rambaut for visualizing
- <a href="http://en.wikipedia.org/wiki/Phylogenetic_tree"
- target="_blank">phylogenetic trees</a> estimated from molecular
- data. It is a Java Swing application with a basic UI available as a
- Java applet.</p>
- <p>
- In no more than 500 lines Java code, we rehashed the applet version
- into a real web application, reusing much of the existing
- application. In fact, we needed only a single line code change in
- the reused Swing code.
- </p>
- <p>
- The source code of this example is not part of the JWt source
- distribution, but you can find it (including the web version which
- we contributed) on
- the <a href="http://code.google.com/p/figtree/source/checkout"
- target="_blank">FigTree project page</a>.
- </p>
- <p>
- See also
- our <a href="#/blog/2010/10/25/fun_with_jwt_and_swing__webgraphics2d"
- target="_blank">blog post</a> on porting this application.
- </p>
- </div>
- </message>
- <message id="home.examples.widgetgallery">
- <div>
- <h4 class="example">Widget gallery</h4>
- <p>
- <a href="http://jwt.emweb.be/jwt-gallery/gallery" class="run" target="_blank">
- <img src="/icons/orange-play.png" style="vertical-align: top"/> Go to widget gallery
- </a>
- </p>
- <p>
- This example demonstrates most widgets provided by Wt, in addition to
- other aspects such as event handling and layout classes. Useful as an
- executable reference to widgets and features provided by the library.
- </p>
- </div>
- </message>
- <message id="home.download">
- <h3><span>Download</span></h3>
- </message>
- <message id="home.download.license">
- <h4>License and Pricing</h4>
- <p>JWt may be used using either an Open Source or a Commercial License.</p>
- <p>If you wish to use the library using the <b>GNU General Public
- License (GPL)</b>, you may build a web application with JWt and deploy
- it, but per the terms of the GPL, you are obliged to make the source
- code available to anyone who you give the application to install the
- application on its own server. This also applies to redistribution of
- the JWt library, in original or modified form.</p>
- <p><b>The Commercial License</b> has no such limitations: you may
- redistribute applications developed with JWt without needing to
- redistribute the source code. The license is a royalty-free, perpetual
- license for one developer to use the API of JWt for application
- development, using the latest version of JWt or any version released
- during one year, and costs €599.
- </p>
- </message>
- <message id="home.download.other">
- <p>As of JWt 3.1.11, JWt is also available in Maven and can be added
- to a project using:
- <pre class="fragment"><dependency>
- <groupId>eu.webtoolkit</groupId>
- <artifactId>jwt</artifactId>
- <version>3.1.11</version>
- </dependency></pre></p>
- <h4>System requirements</h4>
- For building and using the latest version of JWt, you should follow the <a
- href="http://www.webtoolkit.eu/jwt/latest/doc/userguide/userguide.html#getting-started"> Getting started tutorial
- </a>, this tutorial explains on how to build JWt and run the examples.
- <h4>Git repository</h4>
- <a href="https://github.com/kdeforche/jwt"><img style="display: block; width: 80px; float: right" src="https://github.com/github/media/blob/master/octocats/octocat.png?raw=true"></img></a>
- <p>If you want to keep track of the latest changes, or participate in
- JWt development, you may want to work from
- the <a href="https://github.com/kdeforche/jwt">github
- repository</a>.</p>
- <p>
- <div class="fragment">
- <pre class="fragment">$ git clone git://github.com/kdeforche/jwt.git</pre>
- </div>
- </p>
- </message>
- <message id="home.download.packages">
- <h4><span>Available packages</span></h4>
- </message>
- <message id="home.download.version"><b>Version</b></message>
- <message id="home.download.date"><b>Date</b></message>
- <message id="home.download.description"><b>Description</b></message>
- <message id="home.community">
- <h3><span>Support</span></h3>
- <h4>Support and Training</h4>
- <p>
- You can get <a href="http://www.emweb.be/support">support and
- training</a> directly from the library authors, with a
- guaranteed three-day response time.
- </p>
- <p>
- Community help is available in the <a
- href="http://redmine.webtoolkit.eu/projects/wt/boards">public
- forums</a>.
- </p>
- <p>
- To get up to speed with JWt, you may also obtain <a
- href="http://www.emweb.be/support">training</a> directly from
- the library authors.
- </p>
- <h4>Authors</h4>
- <p>
- JWt is mainted by <a href="http://www.emweb.be/">Emweb bvba</a>, and
- is derived from the latest version of its sibling C++ solution,
- <a href="http://www.webtoolkit.eu/wt">Wt</a>.
- </p>
- <h4>Wiki</h4>
- <p>
- There is a community-run <a
- href="http://redmine.webtoolkit.eu/projects/jwt/wiki">JWt Wiki</a> where
- you may share tips, notes and experiences using JWt.
- </p>
- <h4>Contributions</h4>
- <p>
- User contributions are welcomed, ranging from simple patches to
- widgets, widget sets, and core improvements.
- </p>
- <p>
- However, because JWt is dual-licensed under an Open Source and
- commercial license, and to legally protect the code base of JWt as a
- whole by one entity without having to worry about the copyrights for
- different pieces, we require a copyright assignment from contributors
- to <a href="http://www.emweb.be/">Emweb</a> before
- accepting the contribution.
- </p>
- </message>
- <message id="home.other-language">
- <h3><span>!Java ?</span></h3>
- <p>You like the functionality, but do not grok Java for your project?</p>
- <p>Do not despair. JWt exists in a native variant or through bindings
- in other languages:
- <ul class="languages">
- <li>
- <div>
- <img class="language-icon" src="/icons/clojure-logo.png" alt="Clojure"></img>
- Leveraging the JVM's support for other languages, such
- as <b>Clojure</b>, a LISP variant, Ralph Moritz is experimenting
- with <a href="http://lispetc.posterous.com/hello-jwt-from-clojure">using
- JWt from within Clojure</a>, documenting his experience in his blog
- and eventually developing a small support library.
- </div>
- <br style="clear: both" />
- </li>
- <li>
- <div>
- <img class="language-icon" src="/icons/jython-logo.png" alt="Jython"></img>
- Albert Cervera i Areny is experimenting to use JWt from <b>Jython</b>,
- another language running on the JVM. He documents how to create and run
- the "Hello World!" program in Jython in <a href="http://www.nan-tic.com/en/from-pyqt-to-jythonjwt-setting-up-the-environment">this blog post</a>.
- </div>
- <br style="clear: both" />
- </li>
- <li>
- <div>
- <img class="language-icon" src="/icons/cpp-logo.jpg" alt="C++"></img>
- If you prefer <b>C++</b>, you should consider
- using <a href="http://www.webtoolkit.eu/wt">Wt</a>, the C++ version, which is developed and
- maintained together with the Java version, and from which the Java
- version is derived. It comes with application server included.
- </div>
- <br style="clear: both" />
- </li>
- <li>
- <div>
- <img class="language-icon" src="/icons/ruby-logo-R.png" alt="Ruby"></img>
- Richard Dale is
- maintaining <a href="http://github.com/rdale/wtruby/tree/master">WtRuby</a>,
- <b>Ruby</b> bindings to Wt, using the same framework used for generating Ruby
- bindings to Qt and KDE.
- </div>
- <br style="clear: both" />
- </li>
- </ul>
- </p>
- </message>
- <message id="home.documentation">
-
- <h3><span>Documentation</span></h3>
- <h4>Build and install</h4>
- <p>A <a href="http://www.webtoolkit.eu/jwt/latest/doc/userguide/userguide.html" target="_blank">User Guide</a> is available (in a new window). This user guide consists of a <a href="http://www.webtoolkit.eu/jwt/latest/doc/userguide/userguide.html#_library_overview" target="_blank">library overview</a> section and a <a href="http://www.webtoolkit.eu/jwt/latest/doc/userguide/userguide.html#getting-started" target="_blank">getting started</a> section.</p>
- <h4>Introduction and tutorials</h4>
- <p>Learn about the benefits of using JWt compared to traditional web
- application frameworks using our <a
- href="http://www.webtoolkit.eu/doc/Wt-WhitePaper.pdf">white paper</a>.</p>
- <p>More introductory material and tutorials are currently lacking. In
- the mean time, you can use the documentation available for <a
- href="http://www.webtoolkit.eu/wt/documentation">the C++ library</a>, as they are the same
- code base.</p>
- <h4>Reference manual</h4>
- <p>There is a <a href="http://www.webtoolkit.eu/jwt/latest/doc/javadoc/"
- target="_blank"> reference manual (in a new window)</a>, generated
- from the source code using javadoc.
- </p>
- <h4>Wiki</h4>
- <p>
- There is a community-run <a
- href="http://redmine.webtoolkit.eu/projects/jwt/wiki">JWt Wiki</a> where
- you may share tips, notes and experiences using JWt.
- </p>
- </message>
- <message id="srcview.title.JAVA.">
- <div class="srcviewtitle">
- <h2>Source code for JWt examples</h2>
- <p>
- Browse below the source code for all examples included in
- <a href="http://www.webtoolkit.eu/jwt">JWt</a>.
- </p>
- </div>
- </message>
- <message id="srcview.title.">JWt examples</message>
- <message id="srcview.title.JAVA.hello">
- <div class="srcviewtitle">
- <h2>Source code of the <i>Hello world</i> example</h2>
- <p>
- Browse below the source code for JWt's
- <a href="http://www.webtoolkit.eu/jwt/examples/hello_world">
- Hello world</a> example.
- </p>
- </div>
- </message>
- <message id="srcview.title.hello">Example: Hello world</message>
- <message id="srcview.title.JAVA.hello">
- <div class="srcviewtitle">
- <h2>Source code of the <i>Hello world</i> example</h2>
- <p>
- Browse below the source code for JWt's
- <a href="http://www.webtoolkit.eu/jwt/examples/hello_world">
- Hello world</a> example.
- </p>
- </div>
- </message>
- <message id="srcview.title.hello_world">Example: Hello world</message>
- <message id="srcview.title.JAVA.charts">
- <div class="srcviewtitle">
- <h2>Source code of the <i>Charts</i> example</h2>
- <p>
- Browse below the source code for JWt's
- <a href="http://www.webtoolkit.eu/jwt/examples/charts">
- Charts</a> example.
- </p>
- </div>
- </message>
- <message id="srcview.title.charts">Example: Charts</message>
- <message id="srcview.title.JAVA.treeviewdragdrop">
- <div class="srcviewtitle">
- <h2>Source code of the <i>Treeview</i> example</h2>
- <p>
- Browse below the source code for JWt's
- <a href="http://www.webtoolkit.eu/jwt/examples/treeview">
- Treeview</a> example.
- </p>
- </div>
- </message>
- <message id="srcview.title.treeviewdragdrop">Example: Treeview</message>
- <message id="srcview.title.JAVA.composer">
- <div class="srcviewtitle">
- <h2>Source code of the <i>Mail composer</i> example</h2>
- <p>
- Browse below the source code for JWt's
- <a href="http://www.webtoolkit.eu/jwt/examples/composer">
- Mail composer</a> example.
- </p>
- </div>
- </message>
- <message id="srcview.title.composer">Example: Mail composer</message>
- <message id="srcview.title.JAVA.simplechat">
- <div class="srcviewtitle">
- <h2>Source code of the <i>Chat</i> example</h2>
- <p>
- Browse below the source code for JWt's
- <a href="http://www.webtoolkit.eu/jwt/examples/simplechat">
- Chat</a> example.
- </p>
- </div>
- </message>
- <message id="srcview.title.simplechat">Example: Chat</message>
- <message id="srcview.title.JAVA.widgetgallery">
- <div class="srcviewtitle">
- <h2>Source code of the <i>Widget gallery</i> example</h2>
- <p>
- Browse below the source code for JWt's
- <a href="http://www.webtoolkit.eu/jwt/examples/widget_gallery">
- Widget gallery</a> example.
- </p>
- </div>
- </message>
- <message id="srcview.title.widgetgallery">Example: Widget gallery</message>
- </messages>
|