Download - blueMarine Sailing with NetBeans Platform
blueMarineSailing with NetBeans
Platform Fabrizio Giudici (JUG-MI)
Emmanuele Sordini (JUG-GE)
2
Goals●Introduce NetBeans RCP
●Introduce blueMarine
●Demonstrate NB RCP by examples
●Show some cool integrations● SwingLabs, TimingFramework● Visual Library● NASA World Wind● Jini, Rio, Sun Grid
3
Developing for the Desktop
4
What's NB RCP?
NetBeansNetBeans IDE
NetBeans RCP{
5
What's NB RCP?
NetBeansNetBeans IDE
NetBeans RCP{
6
What's NB RCP?
NetBeansNetBeans IDE
NetBeans RCP{
Your Desktop Application!
7
blueMarine● Photo workflow management
● Pluggable single platform for everything● Community-specific plug-ins● 0.9.RC2b
● Open Source● Apache License, business friendly
8
Demo (splash)
9
Troubled history● 2003-2005
● Swing not ready ● Didn't like Eclipse RCP
● BTW, Fabrizio is an Ex-clipse user...
● 2006-2007● NetBeans RCP (complete re-design)● SwingLabs, TimingFramework
10
Swing limits● Is Swing a true framework?
● It isn't, for some respects● You build everything manually● Only at “basic-block level”
● Listeners, Actions
● Missing sophisticated components● Date Picker, TreeTables, etc...
11
What do you need?● “Cool stuff„ means complexity
● Go quickly from idea to prototype● Integrate quickly others' stuff● NIH isn't a killer-idea, but an idea-killer● Don't write (and maintain) your own,
soon-to-be-messy framework
12
NB RCP: a framework● You start with an “empty” app
● (or you can just extend NetBeans IDE)
● You populate it● views
● actions● menus● toolbars
13
NB RCP: a framework● You start with an “empty” app
● (or you can just extend NetBeans IDE)
● You populate it● views
● actions● menus● toolbars
} often declaratively
14
Enhancing, not replacing● NetBeans RCP is Swing
● Lots of third parties' stuff (e.g. SwingLabs) can be integrated
● You have full control on the l&f (à la Romain Guy)
● Can use it incrementally
15
From pain to gain
16
Some NB RCP APIs● Actions
● DataObjects
● Dialogs
● Explorer
● FileSystem
● Lookup
● Modules
● Nodes
● Options
● Progress
● Visual Library
● Window Sys.
17
MVC on steroids
18
DataObjects and Nodes● Get a DataObject Node delegate
● Clone it as many times you want● Nodes stay in sync automatically
● Bind an ExplorerManager to a View
● Put the Node(s) into the ExplorerManager
● Publish and Subscribe
19
Actions● Various extensions of javax.swing.Action
● Some can be auto-enabled● on selection of DataObjects
● on selection of Nodes with certain capabilities
20
Demo: Explorers, Viewers,Actions
21
SwingLabs,T.Framework● SwingLabs
● Swing enhancements and extensions
● TimingFramework● The easy way to add animations,
smooth transitions, etc...
22
Demo
23
Visual Library● Support for graph-oriented
modeling● Nodes● Arcs● Routing
● Really cool stuff
● Can be used with plain Swing apps
24
Demo:Light Table, Geo Viewer
(thanks to David Kaspar)
25
NASA WWJ● Java version of NASA World Wind
● 3D software that renders the Earth● NASA terrain imagery, other data sets
can be plugged in (if legal stuff is ok)● Based on JOGL
26
Demo:Geo Viewer 3D
(thanks to Patrick Murris)
27
Update centers● NetBeans components
● can be added / removed on the fly● can be versioned● can add actions, menus, toolbars
● Pretty good for plugins
● Pretty good for blueMarine's concept of “communities”
28
blueMoon● A plugin for amateur astro-
photographers
● Developed by Emmanuele Sordini● www.bloomingstars.com
● Initial feature: “image stacking”
29
Image stacking● For decades only with pro
equipment● Since 90s within the reach of amateurs
● Hires imaging of solar system bodies● take multiple exposures
● stack and align them● improve S/N ratio by averaging
30
Image stacking
31
Demo:blueMoon
32
Parallel Computing● Parallel Computing is a must
● Multi Core Computers● Small, local mini-grids● Massive Grid Computing
● Mistral● blueMarine's graphic library● supports various kinds of PC
33
Jini, Rio● Jini
● SOA building federations of services ● Auto-discovery● Now Apache River
● Rio● Jini-based technology● Provides containers, beans, QoS,
dynamic deployment, monitoring and management and more
34
Local mini-grids
35
Sun Grid● Grid computing as a service (utility
computing)● Massive grid facility (1000 CPUs)● Made available to users on an as-
needed basis ($1 per CPU-hour)● Not only Java, but with Java is much
easier (e.g. NetBeans plugin)
36
Current work● L10N
● RDF and XMP support
● Editor
● Movies
● Spinning off ForceTen
37
We want you● Testing
● Developing new stuff● Scripting support (JavaScript? Ruby?)● Import from Scanner and Camera
● CD/DVD Burning● The Plugin Contest
38
Conclusion
Medium-large desktop apps?
Get NetBeans RCP - make it better, make it quicker
39
Resources● [email protected]
● weblogs.java.net/blog/fabriziogiudici
● www.bloomingstars.com
● {bluemarine,mistral}.tidalwave.it
● www.swinglabs.org
● graph.netbeans.org
40
Resources● worldwind.arc.nasa.gov/java
● www.jini.org
● rio.dev.java.net
● www.netbeans.org/community/magazine/
● www.network.com