 |
|
|
Pizza, a bit of JavaOne comes to Java SIG - Tuesday, May 30rd
|
|
|
| Meeting Agenda |
Begins |
Ends |
Speaker |
| Sign-In, Geek talk and Pizza (courtesy of ILOG) |
5:30 |
5:45 |
|
| Welcome and Introductions |
5:45 |
6:00 |
Art Alexander, CSC |
| Scaling Up With Swing: Large Data Sets and Complex Beans |
6:00 |
8:00+ |
David Zeleznik, Yunpeng Zhao, ILOG, Inc. |
|
|
This Month's
Highlight's
|
| We are pleased to bring you one of the presentations from JavaOne
developers session. Two speakers from ILOG, Inc. will present Scaling
Up With Swing: Large Data Sets and Complex Beans. |
|
Speakers
|
|
|
| David
Zeleznik |
| Project Manager,
JViews Gantt R&D |
| ILOG, Inc |
| phone: (860) 343-7530 |
| David Zeleznik
is project manager of the Java Gantt R&D Team at ILOG. He has been
with ILOG for 2 years and has been involved with the development of the
JViews visualization framework. David holds a BSEE from Northwestern University
and has been in industry for 21 years. His experience includes user interface
and real-time system design in C++, Smalltalk, and Java. |
| Yunpeng
Zhao |
| Software Engineer, R&D |
| ILOG, Inc. |
| phone: 33 1
49083511 |
| Yunpeng Zhao
is a software engineer with the Visualization R&D Team at ILOG. He
has been with ILOG for 4 years. Yunpeng has been involved in the development
of the ILOG Views and JViews visualization frameworks. Yunpeng holds a
Ph.D. in Computer Graphics from Ecole Centrale de Paris, France. |
|
|
Presentation
Outline
|
| Abstract |
GUI developers have been very successful delivering portable user interfaces based on the JavaTM Foundation Classes (JFC) API ("JFC/Swing") set of components. The model-view architecture of JFC enables the developer to design user interfaces that are loosely coupled to the underlying business data via abstract data models. In theory, the developer only has to design a thin adapter layer that exposes aspects of the business data via standard JFC interfaces. Model-view separation should then allow all portions of a user interface to update and maintain a coordinated representation of the underlying data.
However, in many cases the quantity of data far exceeds JFC's ability to handle it efficiently from both a performance and a presentation point of view. In addition, the design of complex JFC components (those made of a collection of other components) presents its own design issues. This session will explore various aspects of the problems developers may face as they scale up JFC user interfaces, and deliver field-tested design approaches and solutions.
The session starts by addressing design issues with the JTable and JTree components and how to synchronize them to display row-oriented information in an efficient manner. The session will illustrate the following:
- How to synchronize the JTable and JTree's selection models
- How JTable and JTree scrolling and internal caching architecture affects performance, and what can be done about it
- How to extend the concepts of JavaSoft's TreeTable example to create a truly flexible and reusable component
- JavaSoft has made available code that illustrates how to integrate a JTree as a cell renderer for a JTable column; however, this example has many limitations, including lack of editing support and inconsistent keyboard navigation, among others. We will show how to use this idea as the first step towards creating a truly effective TreeTable component .
- This session will also discuss how the basic concepts of JFC's model-view separation can be scaled to a higher level of abstraction. This enables the developer to create complex composite beans that remain well-factored and do not become 'brittle' as performance analysis and tuning is performed. Also to be discussed:
- How to design an appropriate data model interface to the underlying hierarchical business data being visualized--presenters will show how this data model interface can be adapted to the needs of specific JFC and other visual components.
- How centralized event routing and narrowly focused manager objects within a complex bean create an architecture in which performance improvements can be made easily
- Different approaches to load-on-demand data caching, and the pros and cons of each
- Discuss the use of JavaTM 2 technology SoftReference objects and how they can be an effective tool in this regard
- This session will also show how a deterministic data load/flush policy can be retrofitted into a well-designed, complex user interface bean. Finally, deployment issues and solutions for complex user interface beans will be covered including automated generation of BeanInfo using custom javadoc doclets, runtime versus design time packaging, and IDE integration issues.
|
| Contact the Webmaster |