bluemarine sailing with netbeans platform

Post on 12-Jun-2015

1.099 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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● fabrizio.giudici@tidalwave.it

● weblogs.java.net/blog/fabriziogiudici

● emmanuele@sordini.com

● 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

top related