193 symposiums and 30,000 attendees since 2001

Scott Delap

Author of Desktop Java Live

Scott Delap
Scott Delap is President of Rich Client Solutions, Inc., a software consulting firm focusing on technologies such as Swing, Eclipse RCP, GWT, Flex, and Open Laszlo. He is actively involved in the Java community, speaking at events such as NFJS, QCon and JavaOne. Scott is also the Java Editor of InfoQ.com and runs ClientJava.com, a portal focused on desktop Java development.

Presentations

5 Minutes Forms with JGoodies Binding and Validation

Application developers often spend hours on the simple tasks of laying out a form, wiring components to objects, and validating the data entered. This is time that could be much better spend on the business problems your application is trying to solve. This session will show how to leverage open source libraries to take the work out of the form building process.

First you will be introduced to the JGoodies Binding and Validation libraries. Then you will see how a basic form builder built on top of these technologies can reduce the form building process from hours to minutes.

SWT Fundamentals

The Eclipse project's SWT GUI toolkit provides one of the only viable alternatives to Swing for creating so-called rich client applications in Java. Whereas Swing paints its own widgets and has distinguished itself with a complex (and often obtuse) API, SWT relies on the host operating system for widget rendering and sports a simple, clean API. If your goal is to create a Java application that "looks" like a normal Windows application (or OS X, or Linux), SWT will revolutionize your world. In this session, I introduce SWT from the ground up.

I start at a high-level, but quickly move into the details of SWT's API. By the presentation's end, attendees will have a solid understanding of SWT.

Creating Polished Swing Applications

Too often, Swing applications are slow, ugly, and hard-to-maintain. It turns out that it doesn't have to be this way. Swing can be used to create highly-responsive, beautiful applications that are very maintainable. If this isn't consistent with your own experience, don't feel bad; its not very obvious how to make Swing sing.

In this session, I explore three topics that lead to much better Swing applications:

  • Proper Swing threading
  • High-quality third-party Swing look-and-feels
  • Good practices for coding Swing applications

In the threading portion of the session, I explain Swing's event handling architecture and its implications for Swing applications. Understanding this topic is crucial to creating highly-responsive Swing apps. I demonstrate how to use this knowledge in the form of many live-coded examples, and I show how frameworks like SwingWorker and FoxTrot can make this easier. Java's default look-and-feel, Metal, is awful (and in my opinion, the "Ocean" theme in JDK 5.0 doesn't do enough to improve it); you should stop using it immediately. But creating good-looking applications is sadly more than slapping in a look-and-feel; you must also take care to understand the principles behind attractive layouts. I spend the second part of this session exploring how to make your Swing applications look great through a combination of third-party look-and-feels and layout techniques.

Java GUI Deployment 101

This session will introduce attendees to the various options and problems that exist with deployment of a Java UI application written in Swing or SWT. Topics covered will include obfuscation of classes in preparation of deployment, open source installers, and Java Webstart.

Common Issues with Java Deployment Obfuscation Installers Java Webstart Obfuscation Open Source Obfuscation Solutions Issues and ways around them Installers Creating and Executable Jar Creating an Installer Using Open Source Java Webstart Webstart Deployment Options Pack2000

Introducing the Eclipse Rich Client Platform

Rich client application development using Java can be intimidating giving the vast flexibility in application design and structure. It also can be frustrating to create the large number of support services (persistence, menus, event and job frameworks) that a large scale rich client applications needs. The Eclipse Rich Client Platform is one project attempting to solve these issues by providing a core infrastructure that not only provides the day to day services a rich client application developer needs, but also providing a suggested path to guide you down the road of designing your application. This presentation introduces both the Eclipse RCP and the tools provided by the Eclipse IDE that assist developers in writing RCP apps.

Rich client application development using Java can be intimidating giving the vast flexibility in application design and structure. It also can be frustrating to create the large number of support services (persistence, menus, event and job frameworks) that a large scale rich client applications needs. The Eclipse Rich Client Platform is one project attempting to solve these issues by providing a core infrastructure that not only provides the day to day services a rich client application developer needs, but also providing a suggested path to guide you down the road of designing your application. This presentation introduces both the Eclipse RCP and the tools provided by the Eclipse IDE that assist developers in writing RCP apps.

How can a RCP Framework help my application? Menus Events Jobs etc.. Introducing Eclipse RCP The base of the Eclipse IDE Actively Developed Leveraged By Many Projects ... Eclipse RCP Services Plugins Core based on OSGi Extensions Menus/Toolbars/Actions Jobs View Framework Tools Support Plugin Editors Product Definition ... Deployment One Click Webstart Deployment Support Multiple Platforms

Ajax, Flash, and Java - Choosing The Right Rich Client Technology for Your Next Project

Today's users are beginning to demand richer and richer application experiences. Plain html pages simply don't cut it anymore. Applications like Google Maps (Ajax) and Yahoo Maps (Flash) show how the UI experience can be pushed to the next level. As an IT manager, how do you decide which route to take however? Should you use Ajax because it is the new "it" technology. Is Flash a viable option with its 95%+ browser availability? Perhaps Java deployed through web start is really the best choice in contrast to what the buzz would lead you to believe. This presentation takes a look at these three core rich client technologies from both deployment/user experience and ease of development perspectives.

Today's users are beginning to demand richer and richer application experiences. Plain html pages simply don't cut it anymore. Applications like Google Maps (Ajax) and Yahoo Maps (Flash) show how the UI experience can be pushed to the next level. As an IT manager, how do you decide which route to take however? Should you use Ajax because it is the new "it" technology. Is Flash a viable option with its 95%+ browser availability? Perhaps Java deployed through web start is really the best choice in contrast to what the buzz would lead you to believe. This presentation takes a look at these three core rich client technologies from both deployment/user experience and ease of development perspectives.

Meet the Players Java Swing Swt Example Apps Ajax Ajax 101 Example Apps Flash Flash 2006 Laszlo Flex Example Apps User Experience Java Ajax Browser Issues Back/Forward Hyperlinks Flash Deployment Java Web Start Ajax Cross Browser Issues Flash Development Java Tool Support Http Invocation UI Libraries Swing Swt Ajax XMLHttpRequest XML DOM's Javascript Can Struts Developer's Get This? Flash Laszlo Flex Playing Nice in the Browser Conclusions Applications that Work Well with Java Applications that Work Well with Ajax Applications that Work Well with Flash

An Introduction to the Google Web Toolkit

The Google Web Toolkit has achieve a large amount of interest since its release in May of 2006. This session shows you what all the noise is about. See how GWT compares to legacy web apps as well as desktop application development.

The Google Web Toolkit has achieve a large amount of interest since its release in May of 2006. This session shows you what all the noise is about. See how GWT compares to legacy web apps as well as desktop application development.

An Introduction to Adobe Flex and OpenLaszlo

In 2006 Rich Internet Applications went from being the exception to the norm. Battling it out on this front are technologies such as Ajax, Flex and OpenLaszlo. This session takes a look at the two main alternatives to pure Ajax, Flex and OpenLaszlo, comparing them not only to each other but to Ajax and Swing/SWT Java applications.

In 2006 Rich Internet Applications went from being the exception to the norm. Battling it out on this front are technologies such as Ajax, Flex and OpenLaszlo. This session takes a look at the two main alternatives to pure Ajax, Flex and OpenLaszlo, comparing them not only to each other but to Ajax and Swing/SWT Java applications.

Developing Enterprise Business Applications in Eclipse RCP

This tutorial emerges out of the combined experience the presentor gained while working on a large Eclipse RCP/J2EE enterprise application (2.3 million lines of code in the RCP application). It will address the gap between the standard functionality of Eclipse RCP and what is needed for the creation of polished highly usable business applications.

The first generation of web applications sacrificed usability and function for ease of deployment. Recently the industry has shifted back to richer user interfaces written in Ajax, Flash, and Java. Many business applications have requirements such as offline access, desktop integration, and UI customizations that make using Ajax and Flash difficult to near impossible. For such applications rich client architectures featuring online deployment and web enabled client/server communications provide the easiest path to development success. Eclipse's Rich Client Platform provides organizations a valuable jumpstart in the creation of such applications. Eclipse RCP allows enterprise applications to reclaim the powerful user interface paradigms that were lost with the emergence of thin clients, while retaining the benefits of server-side scalability, security, and reliability. However, a number of the core functions of such business applications are not handled transparently by Eclipse RCP out of the box.

This tutorial emerges out of the combined experience the presentor gained while working on a large Eclipse RCP/J2EE enterprise application (2.3 million lines of code in the RCP application). It will address the gap between the standard functionality of Eclipse RCP and what is needed for the creation of polished highly usable business applications.

Writing Testable User Interfaces

Modern application development is embracing the idea of testable application development. However, the UI is often intentionally ignored in respect to this subject as "too hard" to test. This does not have to be the case however. This session will explore how developers can structure their code using modern widget toolkits to keep the UI's they require while gaining the benefits of testability. Among the topics covered will be separation of UI and business logic concerns, popular Swing testing tools, and the creation of integration tests.

Modern application development is embracing the idea of testable application development. However, the UI is often intentionally ignored in respect to this subject as "too hard" to test. This does not have to be the case however. This session will explore how developers can structure their code using modern widget toolkits to keep the UI's they require while gaining the benefits of testability. Among the topics covered will be separation of UI and business logic concerns, popular Swing testing tools, and the creation of integration tests.

Accelerating Desktop Application Development with Groovy

The dynamic nature an syntax of Groovy can make a number of development activities easier. Desktop applications are no exception. This session will look explicitly at how Groovy applies to the task of writing desktop applications in Swing and SWT.

This session will explore the use of Groovy for desktop development by exploring a number of common activities:

  • Construction of standard widgets
  • Using the Groovy SwingBuilder
  • Building an RSS Reader
  • Using the Groovy SWTBuilder
  • Integrating with the Desktop: Excel Manipulation with Scriptom