wingS User Guide

Writing and understanding wingS applications

wingS Project Team

wingS 3.2, March 2008

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License" .


Table of Contents

Preface
1. Target Audience
2. Typographical Conventions
3. Credits
1. The Basics
1.1. The Swing in wingS
1.1.1. Widgets
1.1.2. MVC - Events and Listeners
1.2. Web-related Concepts
1.2.1. Servlet API
1.2.2. Separating View and Logic
1.2.2.1. Pluggable Look & Feel (PLAF)
1.2.2.2. Layout managers
1.2.2.3. Styling
2. The 3-Step Quick Start
2.1. Get ready - Writing a wingS Frame
2.2. Set - Preparing the web.xml File
2.3. Go! - Deployment in Servlet Container
3. The Developer's Perspective
3.1. Project setup
3.1.1. Required libraries
3.1.2. Useful tools
3.2. Designing the application architecture
3.3. The basic components
3.3.1. Frames and Top-Level Components
3.3.1.1. Frames
3.3.1.2. Internal Frames
3.3.1.3. Frameset
3.3.2. SComponent
3.3.3. SContainer
3.3.3.1. Hierarchical nesting of containers
3.3.3.2. The basic SPanel container
3.3.3.3. The SForm container for input elements
3.3.3.4. Overview of all available container components
3.3.4. Labels and other display components
3.3.4.1. Simple labels
3.3.4.2. Images
3.3.4.3. Further display widgets
3.3.5. Buttons and Events
3.3.5.1. Creating buttons
3.3.5.2. Listening to Events
3.3.6. Input components
3.3.6.1. Text input fields and areas
3.3.6.2. Check boxes and Radio boxes
3.3.6.3. Comboboxes and selection lists
3.3.6.4. Special Input fields
3.4. Sophisticated components
3.4.1. STable
3.4.1.1. Presenting data using a table model
3.4.1.2. Use the selection model
3.4.1.3. Allow editing of table data
3.4.1.4. Customizing STable
3.4.2. STree
3.4.2.1. TreeModel
3.4.3. SScrollPane
3.4.4. SMenu and SMenuBar
3.4.5. Component context menu
3.5. AJAX-based componets
3.5.1. Prerequisites
3.6. Further events
3.7. Layout Managers
3.7.1. Swing-like Layout Managers
3.7.1.1. SBorderLayout
3.7.1.2. SBoxLayout
3.7.1.3. SGridLayout
3.7.1.4. SFlowLayout and SFlowDownLayout
3.7.1.5. SGridBagLayout
3.7.1.6. SCardLayout
3.7.2. STemplateLayout
3.7.2.1. Setting component properties via the template
3.7.2.2. SRootLayout
3.7.2.3. BeanScript support
3.8. Styling your application using CSS
3.8.1. CSS selector scheme inside wingS
3.8.2. Default style sheets
3.8.3. Borders and the Default Border
3.8.4. Attaching custom style sheets
3.8.5. CSS live editing
3.9. Miscellaneous Topics
3.9.1. Client debugging
3.9.2. wingS Session
3.9.3. File Upload
3.9.4. File Download
3.9.5. Overwriteable config files
3.9.6. Error Page Display
3.10. Best Practices
4. Advanced Topics
4.1. Back Button Navigation
4.1.1. Default Behaviour
4.1.2. Allow Back Navigation
4.1.3. Back Navigation Detection
4.2. Client Side Script Listeners
4.3. Drag & Drop support
4.4. Session Recording and Playback
4.4.1. Overview
4.4.2. Prerequisites
4.4.3. Generation of the session playback java source file
4.4.4. Playback
4.5. Advanced Techniques
4.5.1. Sharing Resources Among Servlets
4.5.2. Internationalization and Character encoding
4.6. Spring Integration
5. Behind the scenes - wingS internals
5.1. Session Management
5.2. Resources
5.2.1. Resource Types
5.2.2. Mapping Resources
5.3. Delivering Events
5.4. Externalisation and Rendering
5.4.1. Writing your own renderers
5.4.2. Interaction between CSS and PLAFs
A. Resources
B. GNU Free Documentation License
B.1. PREAMBLE
B.2. APPLICABILITY AND DEFINITIONS
B.3. VERBATIM COPYING
B.4. COPYING IN QUANTITY
B.5. MODIFICATIONS
B.6. COMBINING DOCUMENTS
B.7. COLLECTIONS OF DOCUMENTS
B.8. AGGREGATION WITH INDEPENDENT WORKS
B.9. TRANSLATION
B.10. TERMINATION
B.11. FUTURE REVISIONS OF THIS LICENSE
B.12. ADDENDUM: How to use this License for your documents