Emerging Java Technologies: Jeremy Jones Peyush Jain John Jung January 29, 2004
Emerging Java Technologies: Jeremy Jones Peyush Jain John Jung January 29, 2004
Jeremy Jones
Peyush Jain
John Jung
2
Advanced Architectures
The Current State of Java
and Automation Branch
3
Advanced Architectures
Java 1.5
and Automation Branch
4
Advanced Architectures
Generics
and Automation Branch
5
Advanced Architectures
Example without Generics
and Automation Branch
7
Advanced Architectures
Generics != Templates
and Automation Branch
8
Advanced Architectures
Autoboxing/unboxing
and Automation Branch
9
Advanced Architectures
Enhanced for Loop
and Automation Branch
10
Advanced Architectures
Enhanced for Loop Example
and Automation Branch
11
Advanced Architectures
Typesafe Enums
and Automation Branch
12
Advanced Architectures
Typesafe Enums Example
and Automation Branch
// Simple example
enum Season { winter, spring, summer, fall }
13
Advanced Architectures
Static Import
and Automation Branch
14
Advanced Architectures
Varargs
and Automation Branch
15
Advanced Architectures
Varargs Syntax
and Automation Branch
16
Advanced Architectures
Metadata
and Automation Branch
17
Advanced Architectures
Metadata Example
and Automation Branch
18
Advanced Architectures
Metadata Example
and Automation Branch
19
Advanced Architectures
Swing Changes
and Automation Branch
20
Advanced Architectures
XML
and Automation Branch
21
Advanced Architectures
and Automation Branch
Peyush Jain
Advanced Architectures
XUL
and Automation Branch
23
Advanced Architectures
Example
and Automation Branch
24
Advanced Architectures
Example
and Automation Branch
• Java Swing
JPanel panel1 = new JPanel();
JButton button1 = new JButton();
JLabel label1 = new JLabel();
panel1.add(button1);
panel1.add(label1);
label1.setLabelFor(button1);
• XUL
<hbox>
<button id="button1" />
<label for="button1" />
</hbox>
25
Advanced Architectures
XUL Architecture
and Automation Branch
26
Advanced Architectures
XUL Motor - Luxor
and Automation Branch
27
Advanced Architectures
Example
and Automation Branch
<list id="card">
<entry value="American Express" />
<entry value="Discover" />
<entry value="Master Card" />
<entry value="Visa" />
</list>
<vbox>
<label value="Choose a method of payment:" />
<choice list="card" />
</vbox>
<vbox>
<label value="Choose a method of payment:" />
<choice list="card" type="radio" />
</vbox>
28
Advanced Architectures
XUL Benefits
and Automation Branch
• Platform Portability
• Splits presentation and application logic
• Makes UI building easier
• UI can be easily updated
• UI can be loaded at start-up from web-
server, database, etc
• UI can be tested in browser like a web
page
29
Advanced Architectures
JDNC
and Automation Branch
30
Advanced Architectures
Example
and Automation Branch
31
Advanced Architectures
Example
and Automation Branch
32
Advanced Architectures
Example
and Automation Branch
</jdnc-app>
33
Advanced Architectures
and Automation Branch
Eclipse
John Jung
Advanced Architectures
Eclipse - Overview
and Automation Branch
35
Advanced Architectures
Java IDE
and Automation Branch
• Feature-rich IDE
– Java Perspective
• Standard Views: Navigator, Outline, Editor
• Other useful perspectives: Debug, CVS Repository
– Java Editor
• Code assist: hover – javadoc spec, ctrl-click to jump to source,
method completion, dynamic syntax check, automatic error
corrections
• Code generation: code templates, method insertion/generation,
comment generation
• Refactoring: organize imports, renaming/moving
– Excellent help system
• Best Feature: price
36
Advanced Architectures
Java IDE
and Automation Branch
37
Advanced Architectures
Application Platform
and Automation Branch
38
Advanced Architectures
SWT vs Swing
and Automation Branch
39
Advanced Architectures
SWT vs Swing
and Automation Branch
40
Advanced Architectures
References
and Automation Branch
• Java 1.5
– http://java.sun.com/features/2003/05/bloch_qa.html
– http://servlet.java.sun.com/javaone/sf2003/conf/sessions/display-
1540.en.jsp
– http://servlet.java.sun.com/javaone/sf2003/conf/sessions/display-
3072.en.jsp
• XUL and JDNC
– http://luxor-xul.sourceforge.net/index.html
– http://luxor-xul.sourceforge.net/talk/jug-oct-2001/slides.html
– http://luxor-xul.sourceforge.net/talk/vanx-jul-2002/slides.html
– http://www.javadesktop.org/articles/JDNC/index.html
• Eclipse
– http://www.eclipse.org/
– http://www.eclipse.org/eclipse/presentation/eclipse-slides.ppt
– http://www.fawcette.com/javapro/2002_12/magazine/columns/proshop/
– http://news.com.com/2100-7344_3-5149102.html
– http://cld.blog-city.com/readblog.cfm?BID=15428
41