bluemarine sailing with netbeans platform

40
blueMarine Sailing with NetBeans Platform Fabrizio Giudici (JUG-MI) Emmanuele Sordini (JUG-GE)

Upload: fabrizio-giudici

Post on 12-Jun-2015

1.099 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: blueMarine Sailing with NetBeans Platform

blueMarineSailing with NetBeans

Platform Fabrizio Giudici (JUG-MI)

Emmanuele Sordini (JUG-GE)

Page 2: blueMarine Sailing with NetBeans Platform

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

Page 3: blueMarine Sailing with NetBeans Platform

3

Developing for the Desktop

Page 4: blueMarine Sailing with NetBeans Platform

4

What's NB RCP?

NetBeansNetBeans IDE

NetBeans RCP{

Page 5: blueMarine Sailing with NetBeans Platform

5

What's NB RCP?

NetBeansNetBeans IDE

NetBeans RCP{

Page 6: blueMarine Sailing with NetBeans Platform

6

What's NB RCP?

NetBeansNetBeans IDE

NetBeans RCP{

Your Desktop Application!

Page 7: blueMarine Sailing with NetBeans Platform

7

blueMarine● Photo workflow management

● Pluggable single platform for everything● Community-specific plug-ins● 0.9.RC2b

● Open Source● Apache License, business friendly

Page 8: blueMarine Sailing with NetBeans Platform

8

Demo (splash)

Page 9: blueMarine Sailing with NetBeans Platform

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

Page 10: blueMarine Sailing with NetBeans Platform

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...

Page 11: blueMarine Sailing with NetBeans Platform

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

Page 12: blueMarine Sailing with NetBeans Platform

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

Page 13: blueMarine Sailing with NetBeans Platform

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

Page 14: blueMarine Sailing with NetBeans Platform

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

Page 15: blueMarine Sailing with NetBeans Platform

15

From pain to gain

Page 16: blueMarine Sailing with NetBeans Platform

16

Some NB RCP APIs● Actions

● DataObjects

● Dialogs

● Explorer

● FileSystem

● Lookup

● Modules

● Nodes

● Options

● Progress

● Visual Library

● Window Sys.

Page 17: blueMarine Sailing with NetBeans Platform

17

MVC on steroids

Page 18: blueMarine Sailing with NetBeans Platform

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

Page 19: blueMarine Sailing with NetBeans Platform

19

Actions● Various extensions of javax.swing.Action

● Some can be auto-enabled● on selection of DataObjects

● on selection of Nodes with certain capabilities

Page 20: blueMarine Sailing with NetBeans Platform

20

Demo: Explorers, Viewers,Actions

Page 21: blueMarine Sailing with NetBeans Platform

21

SwingLabs,T.Framework● SwingLabs

● Swing enhancements and extensions

● TimingFramework● The easy way to add animations,

smooth transitions, etc...

Page 22: blueMarine Sailing with NetBeans Platform

22

Demo

Page 23: blueMarine Sailing with NetBeans Platform

23

Visual Library● Support for graph-oriented

modeling● Nodes● Arcs● Routing

● Really cool stuff

● Can be used with plain Swing apps

Page 24: blueMarine Sailing with NetBeans Platform

24

Demo:Light Table, Geo Viewer

(thanks to David Kaspar)

Page 25: blueMarine Sailing with NetBeans Platform

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

Page 26: blueMarine Sailing with NetBeans Platform

26

Demo:Geo Viewer 3D

(thanks to Patrick Murris)

Page 27: blueMarine Sailing with NetBeans Platform

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”

Page 28: blueMarine Sailing with NetBeans Platform

28

blueMoon● A plugin for amateur astro-

photographers

● Developed by Emmanuele Sordini● www.bloomingstars.com

● Initial feature: “image stacking”

Page 29: blueMarine Sailing with NetBeans Platform

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

Page 30: blueMarine Sailing with NetBeans Platform

30

Image stacking

Page 31: blueMarine Sailing with NetBeans Platform

31

Demo:blueMoon

Page 32: blueMarine Sailing with NetBeans Platform

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

Page 33: blueMarine Sailing with NetBeans Platform

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

Page 34: blueMarine Sailing with NetBeans Platform

34

Local mini-grids

Page 35: blueMarine Sailing with NetBeans Platform

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)

Page 36: blueMarine Sailing with NetBeans Platform

36

Current work● L10N

● RDF and XMP support

● Editor

● Movies

● Spinning off ForceTen

Page 37: blueMarine Sailing with NetBeans Platform

37

We want you● Testing

● Developing new stuff● Scripting support (JavaScript? Ruby?)● Import from Scanner and Camera

● CD/DVD Burning● The Plugin Contest

Page 38: blueMarine Sailing with NetBeans Platform

38

Conclusion

Medium-large desktop apps?

Get NetBeans RCP - make it better, make it quicker

Page 39: blueMarine Sailing with NetBeans Platform

39

Resources● [email protected]

● weblogs.java.net/blog/fabriziogiudici

[email protected]

● www.bloomingstars.com

● {bluemarine,mistral}.tidalwave.it

● www.swinglabs.org

● graph.netbeans.org

Page 40: blueMarine Sailing with NetBeans Platform

40

Resources● worldwind.arc.nasa.gov/java

● www.jini.org

● rio.dev.java.net

● www.netbeans.org/community/magazine/

● www.network.com