PIC

The Eclipse Scout Book

The Scout Community

Version of 2013-05-22

Contents
Preface
 Who should read this Book?
 This Book is Open and Free
 The Scout Community
 Thanks!
I  Getting Started
1 Introduction
 1.1 What is Scout?
 1.2 Why should I choose Scout?
 1.3 Is Scout production ready?
 1.4 What should I read?
2 ”Hello World” Tutorial
 2.1 Installation and Setup
 2.2 Create a new Project
 2.3 Run the Initial Application
 2.4 The User Interface Part
 2.5 The Server Part
 2.6 Add the Rayo Look and Feel
 2.7 Exporting the Application
 2.8 Deploying to Tomcat
3 ”Hello World” Background
 3.1 Create a new Project
 3.2 Walking through the Initial Application
 3.3 Run the Initial Application
 3.4 The User Interface Part
 3.5 The Server Part
 3.6 Add the Rayo Look and Feel
 3.7 Exporting the Application
 3.8 Deploying to Tomcat
4 Scout Runtime
 4.1 The Scout Application Architecture
 4.2 Multi-Frontend Support
 4.3 Enterprise Integration
5 Scout Tooling
 5.1 The Scout SDK
 5.2 The Scout Perspective
 5.3 The Scout Explorer
 5.4 Scout Object Properties
 5.5 Scout Wizards
6 A Larger Example
 6.1 A Document Management System
II  The Frontend
7 Overview
 7.1 Component Model
 7.2 Separation of UI Technologies
 7.3 Test for Listing
8 Client Modeling
9 Shared Components
 9.1 Texts / i18n / NLS Support
 9.2 Icons
 9.3 Codes and Code Types
 9.4 Lookup Calls and Services
 9.5 Permissions
 9.6 Form Data Objects
10 Client components
 10.1 Splash Screen
 10.2 Login Box
 10.3 Client Session
 10.4 Desktop
 10.5 Menus
 10.6 Outlines
 10.7 Tools
 10.8 Trees
 10.9 Pages
 10.10 Tables
 10.11 Forms
 10.12 Search Forms
 10.13 Workflows and Wizards
11 Layouting
 11.1 The Desktop
 11.2 The Stuff in the Middle
 11.3 Form Layout
12 Form Fields
 12.1 Common Aspects
 12.2 Grouping Components
 12.3 Group Box
 12.4 Tab Box
 12.5 Sequence Box
 12.6 Split Box
 12.7 Radio Button Group
 12.8 Label Field
 12.9 String Field
 12.10 Integer Field
 12.11 Number Field
 12.12 Date Field
 12.13 Button Field
 12.14 Link Field
 12.15 Smart Field
 12.16 List Box
 12.17 Tree Box
 12.18 Table Field
 12.19 Page Field
 12.20 Image Field
 12.21 HTML Field
 12.22 Image Field
 12.23 SVG Field
 12.24 Browser Field
 12.25 Calendar Field
 12.26 File Chooser Field
 12.27 Master Slave Fields
13 Custom Fields
14 Template Fields
15 Bookmarks
16 Client Notification
17 File Upload and Download
18 Application Branding
 18.1 Rayo Look and Feel
 18.2 Branding the Swing Client
 18.3 Branding the SWT Client
 18.4 Branding the Webclient
19 Advanced Topics
 19.1 Modifying the UI at Runtime
 19.2 Focus Handling
 19.3 Keyboard Control
 19.4 Master Detail Pages
 19.5 Client Only Applications
 19.6 Headless Client
 19.7 Client Startup
 19.8 Client Shutdown
 19.9 Threading and Jobs
 19.10 Caching
III  The Backend
20 Overview
 20.1 Server Session
 20.2 Scout Services
21 Scout Services
 21.1 Link to OSGi Services
 21.2 Service Initialization
 21.3 Accessing Scout Services from Outside
 21.4 Lookup Services
 21.5 Code Services
 21.6 Process Services
 21.7 Workflow Services
 21.8 Outline Services
 21.9 Remote File Services
 21.10 SQL Services
22 Client Server Communication
 22.1 The Server is a Servlet
 22.2 Service Tunnel Basics
 22.3 Remoting
 22.4 Service Tunnel Configuration
 22.5 Authentication and Authorization
 22.6 Servlets and Security Filters
 22.7 Anonymous Auth
 22.8 Simple Auth
 22.9 LDAP Auth
 22.10 Simple Permission Model
 22.11 Access Control Service
 22.12 Something more complex
 22.13 Showcase: Role based Permissions
23 Transaction Management
24 Logging
 24.1 Simple Approach
 24.2 Configure Logging
 24.3 Setting Log-Level Dynamically
 24.4 Add your own Logging Framework
 24.5 Showcase: Log4j
25 Database Integration
 25.1 Database Support
 25.2 Database Authentication
 25.3 Scout SQL Class
 25.4 Accessing Multiple Databases
 25.5 Scout Integration for your favorite DBMS
26 Web Service Integration
 26.1 Scout JAX-WS Integration
 26.2 A Simple Consumer
 26.3 A Simple Provider
 26.4 Something Advanced
 26.5 Related Stuff
27 Email Integration
 27.1 SMTP and IMAP
28 Scheduling
 28.1 Simple Scheduling
 28.2 Showcase: Quartz
29 Advanced Topics
 29.1 Server Side Equinox
 29.2 Server Startup
 29.3 Server Shutdown
 29.4 Caching
IV  Developing Applications
30 Web and Mobile Application
 30.1 Overview
 30.2 Scout Web Applications
 30.3 Scout Mobile/Tablet Applications
31 Modular Applications
 31.1 Overview
 31.2 ”Out of the box” Modularization
 31.3 Splitting into Many Applications
 31.4 Application Extensions
32 Integrating 3rd Party
 32.1 Overview
 32.2 Using other Eclipse Technology
 32.3 Using external Java Libraries
 32.4 Showcase JasperReports
 32.5 Showcase Hibernate
 32.6 Showcase Spring
33 Application Security
 33.1 Proxy Handling
 33.2 JAAS
 33.3 Login Handling
 33.4 Database Authentication
 33.5 Permission Handling
 33.6 Client Server Communication
 33.7 Input Validation
 33.8 Something more
34 Testing and Profiling
 34.1 Testing
 34.2 JUnit Tests
 34.3 Jubula Tests
 34.4 Profiling
35 Continuous Integration
 35.1 Overview
 35.2 Building with Maven/Tycho
 35.3 Deploying
 35.4 A Typical Setup
V  Contributing
36 Contributing to Scout
37 Documentation
 37.1 This Book
38 Testing
 38.1 What to Test?
39 Fixing and Enhancing Things
 39.1 Setting up the Environment
VI  Appendices
A Licence and Copyright
 A.1 Licence Summary
 A.2 Contributing Individuals
 A.3 Full Licence Text
B Scout Installation
 B.1 Overview
 B.2 Download and Install a JDK
 B.3 Download and Install Scout
 B.4 Add Scout to your Eclipse Installation
 B.5 Verifying the Installation
C Further Installations
 C.1 Apache Tomcat Installation
 C.2 Jenkins Installation
 C.3 Download and Install Maven/Tycho
 C.4 Download a Git Client
D Scout Utilities
 D.1 StringUtility
 D.2 DateUtility
 D.3 FileUtility
E Java Basics
 E.1 Java SE Basics