SlideShare a Scribd company logo
1 of 61
Download to read offline
blueMarine
photographic workflow with Java
  or Why You Should Really Ship
       Swing Applications

       Fabrizio Giudici
     Senior Java Architect
Overall Presentation Goal




        Talk about issues with
     Java Rich Client Applications
       A real project perspective
 Enumerate and introduce solutions



                    www.javapolis.com
Speaker’s Qualifications


   Senior Java Architect with 12 years of Java
    experience
   Project leading, mentoring, teaching
   Member of JUG Milano, NetBeans Dream
    Team
   Speaker at JavaPolis, Jazoon, JavaOne,
    Jini Meeting
   Writer for NetBeans Magazine, Mokabyte
   Blogger at Java.Net

                        www.javapolis.com
Java is mature for
Rich Desktop Applications.
 Just look beyond Swing.




         www.javapolis.com
Java is mature for
   Rich Desktop Applications.
    Just look beyond Swing.
(beyond - not in another direction)




             www.javapolis.com
The blueMarine project

   Whole photographic workflow
   Be creative with technology
   Be open - more than some scripting APIs
        FLOSS is not (only) a matter of freedom...
        ... but of better stuff
   Do special things for special communities
        e.g. amateur astrophotographers, birdwatchers, ...
   It all started in 2003


                            www.javapolis.com
DEMO


Splash
Java for Desktop Readiness Phases

   Phase -1: prior 2005
        Slow, poorly integrated, ugly L&F
   Phase 0: 2005
        JDK 5 spreads, “Extreme GUI Makeover” starts
   Phase +1: 2006-2007
        JDK 6, Aerith, SwingLabs matures
        TimingFramework, Nimbus, Filthy Rich Clients
   Phase +2: 2008
        Add NetBeans RCP: Filthy Rich Platform Clients
        Ready for complex applications - anyone?
                            www.javapolis.com
Java for Desktop Readiness Phases



     
                       blueMarine
    Phase -1: prior 2005
         Slow, poorly integrated, ugly L&F
                                                     0.8
   Phase 0: 2005             died here
        JDK 5 spreads, “Extreme GUI Makeover” starts
   Phase +1: 2006-2007
        JDK 6, Aerith, SwingLabs matures
        TimingFramework, Nimbus, Filthy Rich Clients
   Phase +2: 2008
        Add NetBeans RCP: Filthy Rich Platform Clients
        Ready for complex applications - anyone?
                            www.javapolis.com
Java for Desktop Readiness Phases



     
                       blueMarine
    Phase -1: prior 2005
         Slow, poorly integrated, ugly L&F
                                                     0.8
   Phase 0: 2005             died here
        JDK 5 spreads, “Extreme GUI Makeover” starts
   Phase +1: 2006-2007
        JDK 6, Aerith, Swing blueMarine 0.9
        TimingFramework, Nimbus, Filthy Rich Clients
   Phase +2: 2008            reborn here
        Add NetBeans RCP: Filthy Rich Platform Clients
        Ready for complex applications - anyone?

                            www.javapolis.com
Problems




           www.javapolis.com
Solutions




            www.javapolis.com
If you can just remember four points...

   NetBeans RCP
   NetBeans Visual Library
   SwingLabs
   NASA World Wind for Java




                          www.javapolis.com
OpenBlueSky

   Where generic stuff spins off blueMarine
   Can be used for other applications
   Consolidated stuff will be submitted for
    standard APIs enhancement




                      www.javapolis.com
References

   weblogs.java.net/blog/fabriziogiudici
   bluemarine.tidalwave.it
   openbluesky.dev.java.net
   mistral.tidalwave.it
   forceten.tidalwave.it




                        www.javapolis.com
References

   www.netbeans.org/features/platform
   www.netbeans.org/community/magazine
   graph.netbeans.org
   www.swinglabs.org
   timingframework.dev.java.net
   worldwind.arc.nasa.gov/java
   quaqua.dev.java.net
   nimbus.dev.java.net
   personales.ya.com/nimrod

                     www.javapolis.com
NetBeans RCP




   www.javapolis.com
Question




 What do you expect from a (desktop)
 framework?




                   www.javapolis.com
Desktop frameworks

   Solid foundation to base your application
   APIs working together, well tested
   Service discovery and provider
   Plugin support
   Messaging infrastructure (via events)
   Integrated help system
   And more



                                                20
Swing is not a framework

   Missing sophisticated components
        date picker, tree+table, etc...
   Neither service discovery nor providers
   No plugins
   No messaging (only simple listeners)
   Threading issues
   JSR-296 (Swing Application Framework) not
    good for large applications


                                            21
What is NetBeans RCP?




  NetBeans    { NetBeans IDE
                NetBeans RCP



                               22
What is NetBeans RCP?




  NetBeans    { NetBeans IDE
                NetBeans RCP



                               23
What is NetBeans RCP?




  NetBeans    { NetBeans IDE
            NetBeans RCP
  Your Desktop Application


                               24
NetBeans RCP

   You start with a skeleton application
   You populate it
        panels, views
        actions, menus, toolbars
        etc..
   Often declaratively
   Based on Swing
        You can integrate third parties' components
        You can control the Look&Feel


                                                       25
Most important NetBeans RCP APIs

   Actions                  Modules
   DataObjects              Nodes
   Dialogs                  Options
   Explorer                 Progress
   FileSystem               Visual Library
   Lookup                   Windowing/docking




                                                  26
DEMO


Explorers, Viewers, Actions
Lookup

   Plays a fundamental role in many APIs
   Repository for a bag of objects
   Locator for services
        Service service =
         Lookup.getDefault().lookup(Service.class);

   Fires events
   “Global” lookup can be used as a simple
    “event bus”



                                                      28
DataObject represents a file-based entity




                                            29
You can extend DataObject




                            30
Lookup holds “capabilities”




                              31
A Node “represents” a DataObject




                                   32
A Node has “capabilities” too




                                33
Representing set of selected (etc) Nodes




                       




                                           34
A View renders Nodes




                       35
An Action can be automatically enabled




                                         36
Some points

   You don't need to always use everything
        E.g. just Nodes, no DataObjects
        Can use them “incrementally”
   NetBeans RCP keeps objects in sync
        E.g. updating a DataObject → bound Nodes
        E.g. Nodes bound to the same DataObject




                                                    37
NetBeans RCP stuff can be extended

   What about a “cover flow” view?
   Use JOGL for fast 3D
   Just extend and create a new View
   TimingFramework for animating stuff




                                          38
DEMO


CoverFlowView
Update Centers

   NetBeans components (.nbm)
        can be added / removed on the fly
        can declare dependencies
        can be versioned
        can add actions, menus, toolbars
   Pretty good for plugins
   (See demo in a few minutes)




                                             40
NetBeans Visual Library




       www.javapolis.com
NetBeans Visual Library

   Support for graph-                 add screenshot
    oriented modeling                     from UML or MIDP
                                          designer
        Nodes
        Arcs
        Routing
        Interaction
   Can be creatively used
        Whiteboard paradigm
        Use interactivity: touch, drag, change objects
   PS Can be used with plain Swing apps

                                                             42
DEMO


LightTable
GeoSpatial Components




       www.javapolis.com
JXMapViewer

   A generic 2D, tile-based map renderer
        See Joshua Marinacci's blog
        Retrieves tiles from the web (or locally)
        Part of Swing-WS (SwingLabs)
        Can stick objects
         to the map

   Hint: integrate it with
    the Visual Library


                             www.javapolis.com
DEMO


GeoViewer
NASA World Wind for Java

   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




                                              47
DEMO


GeoViewer 3D
Java Imaging APIs




     www.javapolis.com
Java Imaging APIs

   Many options (and dispersive?)
        Java2D, JAI, ImageJ, JMagick, JHLabs, ...
   Some too difficult
   Wild behaviour and performance differences
   Parallel Computing is a must
        Multi Core
        Small, local mini-grids
        Massive Grid Computing
   There's not a global community

                            www.javapolis.com
Mistral: fix 'em up

   Imaging meta-framework
   Multiple APIs can
    be used together
   Simplifies APIs
   Supports multicore,
    Jini, Sun Grid




                          www.javapolis.com
Open Problems for blueMarine

   Java still misses something on the desktop
        e.g. video streaming, USB support
        Can be worked around with JNI/JNA
        Java 7 is not too far
   Some NB RCP stuff not fully customizable
   Better integration NB RCP SwingLabs
   Compliance to Apple HIG
   Linux + JOGL issues
   No JAI native support for Mac OS X

                                                 52
A final point




  www.javapolis.com
Be efficient with innovation

   “Cool stuff„ often means complexity
        Go quickly from idea to prototype
        Integrate easily others' stuff
        NIH isn't a killer-idea, but an idea-killer
   Build cool demonstrators
        ... and cool applications soon after

   (stay tuned for some new cool stuff)



                                                       54
Concluding statement




    Most showstoppers are history now.




                   www.javapolis.com
Concluding statement




    Most showstoppers are history now.
      You CAN ship destkop apps.




                   www.javapolis.com
Concluding statement




    Most showstoppers are history now.
       You CAN ship destkop apps.
      There's a world beyond Swing.




                   www.javapolis.com
Concluding statement




    Most showstoppers are history now.
       You CAN ship destkop apps.
      There's a world beyond Swing.
    (SwingLabs, NetBeans RCP, etc...)




                   www.javapolis.com
Concluding statement




    Most showstoppers are history now.
       You CAN ship destkop apps.
      There's a world beyond Swing.
    (SwingLabs, NetBeans RCP, etc...)
         Be creative. Mix 'em up.




                   www.javapolis.com
Q&A
View JavaPolis talks @ www.parleys.com
Thank you for your
    attention

More Related Content

What's hot

IPT High Performance Reactive Java BGOUG 2016
IPT High Performance Reactive Java BGOUG 2016IPT High Performance Reactive Java BGOUG 2016
IPT High Performance Reactive Java BGOUG 2016Trayan Iliev
 
Cloud Camp Chicago Dec 2012 Slides
Cloud Camp Chicago Dec 2012 SlidesCloud Camp Chicago Dec 2012 Slides
Cloud Camp Chicago Dec 2012 SlidesRyan Koop
 
JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014Ryan Cuprak
 
Google Dev Day2007
Google Dev Day2007Google Dev Day2007
Google Dev Day2007lucclaes
 
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...Srijan Technologies
 
Reactive Java Robotics IoT - jPrime 2016
Reactive Java Robotics IoT - jPrime 2016Reactive Java Robotics IoT - jPrime 2016
Reactive Java Robotics IoT - jPrime 2016Trayan Iliev
 

What's hot (6)

IPT High Performance Reactive Java BGOUG 2016
IPT High Performance Reactive Java BGOUG 2016IPT High Performance Reactive Java BGOUG 2016
IPT High Performance Reactive Java BGOUG 2016
 
Cloud Camp Chicago Dec 2012 Slides
Cloud Camp Chicago Dec 2012 SlidesCloud Camp Chicago Dec 2012 Slides
Cloud Camp Chicago Dec 2012 Slides
 
JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014JavaFX Versus HTML5 - JavaOne 2014
JavaFX Versus HTML5 - JavaOne 2014
 
Google Dev Day2007
Google Dev Day2007Google Dev Day2007
Google Dev Day2007
 
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
 
Reactive Java Robotics IoT - jPrime 2016
Reactive Java Robotics IoT - jPrime 2016Reactive Java Robotics IoT - jPrime 2016
Reactive Java Robotics IoT - jPrime 2016
 

Viewers also liked

NOSQL also means RDF stores: an Android case study
NOSQL also means RDF stores: an Android case studyNOSQL also means RDF stores: an Android case study
NOSQL also means RDF stores: an Android case studyFabrizio Giudici
 
About Michael Ellowitz
About Michael EllowitzAbout Michael Ellowitz
About Michael Ellowitzellowim
 
Bretagne France
Bretagne FranceBretagne France
Bretagne Francepepa
 
blueMarine Or Why You Should Really Ship Swing Applications
blueMarine  Or Why You Should Really Ship Swing  Applications blueMarine  Or Why You Should Really Ship Swing  Applications
blueMarine Or Why You Should Really Ship Swing Applications Fabrizio Giudici
 
blueMarine a desktop app for the open source photographic workflow
blueMarine  a desktop app for the open source photographic workflowblueMarine  a desktop app for the open source photographic workflow
blueMarine a desktop app for the open source photographic workflowFabrizio Giudici
 
Designing a JavaFX Mobile application
Designing a JavaFX Mobile applicationDesigning a JavaFX Mobile application
Designing a JavaFX Mobile applicationFabrizio Giudici
 
Tools for an effective software factory
Tools for an effective software factoryTools for an effective software factory
Tools for an effective software factoryFabrizio Giudici
 

Viewers also liked (8)

NOSQL also means RDF stores: an Android case study
NOSQL also means RDF stores: an Android case studyNOSQL also means RDF stores: an Android case study
NOSQL also means RDF stores: an Android case study
 
Mercurial
MercurialMercurial
Mercurial
 
About Michael Ellowitz
About Michael EllowitzAbout Michael Ellowitz
About Michael Ellowitz
 
Bretagne France
Bretagne FranceBretagne France
Bretagne France
 
blueMarine Or Why You Should Really Ship Swing Applications
blueMarine  Or Why You Should Really Ship Swing  Applications blueMarine  Or Why You Should Really Ship Swing  Applications
blueMarine Or Why You Should Really Ship Swing Applications
 
blueMarine a desktop app for the open source photographic workflow
blueMarine  a desktop app for the open source photographic workflowblueMarine  a desktop app for the open source photographic workflow
blueMarine a desktop app for the open source photographic workflow
 
Designing a JavaFX Mobile application
Designing a JavaFX Mobile applicationDesigning a JavaFX Mobile application
Designing a JavaFX Mobile application
 
Tools for an effective software factory
Tools for an effective software factoryTools for an effective software factory
Tools for an effective software factory
 

Similar to blueMarine photographic workflow with Java

Session 02 - Elements of Java Language
Session 02 - Elements of Java LanguageSession 02 - Elements of Java Language
Session 02 - Elements of Java LanguagePawanMM
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum SlidesAbhishek Gupta
 
Great cup of java
Great  cup of javaGreat  cup of java
Great cup of javaCIB Egypt
 
blueMarine Sailing with NetBeans Platform
blueMarine Sailing with NetBeans PlatformblueMarine Sailing with NetBeans Platform
blueMarine Sailing with NetBeans PlatformFabrizio Giudici
 
Beyond The Buzz: Pluggable JavaFX Corporate Applications
Beyond The Buzz: Pluggable JavaFX Corporate ApplicationsBeyond The Buzz: Pluggable JavaFX Corporate Applications
Beyond The Buzz: Pluggable JavaFX Corporate ApplicationsJAX London
 
Eclipse vs Netbean vs Railo
Eclipse vs Netbean vs RailoEclipse vs Netbean vs Railo
Eclipse vs Netbean vs RailoMohd Safian
 
Elements of Java Language
Elements of Java Language Elements of Java Language
Elements of Java Language Hitesh-Java
 
Net Beans61 Platform
Net Beans61 PlatformNet Beans61 Platform
Net Beans61 Platformsatyajit_t
 
Netbeans 110511004930-phpapp01
Netbeans 110511004930-phpapp01Netbeans 110511004930-phpapp01
Netbeans 110511004930-phpapp01sagaroceanic11
 
Tackling Actual Problems on the Wings of the Netbeans Platform, Jure Polutnik
Tackling Actual Problems on the Wings of the Netbeans Platform, Jure PolutnikTackling Actual Problems on the Wings of the Netbeans Platform, Jure Polutnik
Tackling Actual Problems on the Wings of the Netbeans Platform, Jure PolutnikOpenBlend society
 
Rich Ajax Platform - theEdge 2012 conference presentation
Rich Ajax Platform - theEdge 2012 conference presentationRich Ajax Platform - theEdge 2012 conference presentation
Rich Ajax Platform - theEdge 2012 conference presentationNicko Borodachuk
 
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User ExperienceNagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User ExperienceNagios
 
Great Cup od Java
Great Cup od JavaGreat Cup od Java
Great Cup od JavaCIB Egypt
 

Similar to blueMarine photographic workflow with Java (20)

NetBeans IDE & Platform
NetBeans IDE & PlatformNetBeans IDE & Platform
NetBeans IDE & Platform
 
Session 02 - Elements of Java Language
Session 02 - Elements of Java LanguageSession 02 - Elements of Java Language
Session 02 - Elements of Java Language
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
 
Great cup of java
Great  cup of javaGreat  cup of java
Great cup of java
 
Django in the Real World
Django in the Real WorldDjango in the Real World
Django in the Real World
 
blueMarine Sailing with NetBeans Platform
blueMarine Sailing with NetBeans PlatformblueMarine Sailing with NetBeans Platform
blueMarine Sailing with NetBeans Platform
 
Beyond The Buzz: Pluggable JavaFX Corporate Applications
Beyond The Buzz: Pluggable JavaFX Corporate ApplicationsBeyond The Buzz: Pluggable JavaFX Corporate Applications
Beyond The Buzz: Pluggable JavaFX Corporate Applications
 
Eclipse vs Netbean vs Railo
Eclipse vs Netbean vs RailoEclipse vs Netbean vs Railo
Eclipse vs Netbean vs Railo
 
Elements of Java Language
Elements of Java Language Elements of Java Language
Elements of Java Language
 
Java 8 Lambda
Java 8 LambdaJava 8 Lambda
Java 8 Lambda
 
Net Beans61 Platform
Net Beans61 PlatformNet Beans61 Platform
Net Beans61 Platform
 
java new technology
java new technologyjava new technology
java new technology
 
NetBeans 6.5
NetBeans 6.5NetBeans 6.5
NetBeans 6.5
 
Guides To Analyzing WebKit Performance
Guides To Analyzing WebKit PerformanceGuides To Analyzing WebKit Performance
Guides To Analyzing WebKit Performance
 
Netbeans 110511004930-phpapp01
Netbeans 110511004930-phpapp01Netbeans 110511004930-phpapp01
Netbeans 110511004930-phpapp01
 
Tackling Actual Problems on the Wings of the Netbeans Platform, Jure Polutnik
Tackling Actual Problems on the Wings of the Netbeans Platform, Jure PolutnikTackling Actual Problems on the Wings of the Netbeans Platform, Jure Polutnik
Tackling Actual Problems on the Wings of the Netbeans Platform, Jure Polutnik
 
Netbeans IDE & Platform
Netbeans IDE & PlatformNetbeans IDE & Platform
Netbeans IDE & Platform
 
Rich Ajax Platform - theEdge 2012 conference presentation
Rich Ajax Platform - theEdge 2012 conference presentationRich Ajax Platform - theEdge 2012 conference presentation
Rich Ajax Platform - theEdge 2012 conference presentation
 
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User ExperienceNagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
 
Great Cup od Java
Great Cup od JavaGreat Cup od Java
Great Cup od Java
 

More from Fabrizio Giudici

Building Android apps with Maven
Building Android apps with MavenBuilding Android apps with Maven
Building Android apps with MavenFabrizio Giudici
 
DCI - Data, Context and Interaction @ Jug Lugano May 2011
DCI - Data, Context and Interaction @ Jug Lugano May 2011 DCI - Data, Context and Interaction @ Jug Lugano May 2011
DCI - Data, Context and Interaction @ Jug Lugano May 2011 Fabrizio Giudici
 
DCI - Data, Context and Interaction @ Jug Genova April 2011
DCI - Data, Context and Interaction @ Jug Genova April 2011DCI - Data, Context and Interaction @ Jug Genova April 2011
DCI - Data, Context and Interaction @ Jug Genova April 2011Fabrizio Giudici
 
Parallel Computing Scenarios and the new challenges for the Software Architect
Parallel Computing Scenarios  and the new challenges for the Software ArchitectParallel Computing Scenarios  and the new challenges for the Software Architect
Parallel Computing Scenarios and the new challenges for the Software ArchitectFabrizio Giudici
 
NASA World Wind for Java API Overview
NASA World Wind for Java  API OverviewNASA World Wind for Java  API Overview
NASA World Wind for Java API OverviewFabrizio Giudici
 
Rich Internet Applications con JavaFX e NetBeans
Rich Internet Applications  con JavaFX e NetBeans Rich Internet Applications  con JavaFX e NetBeans
Rich Internet Applications con JavaFX e NetBeans Fabrizio Giudici
 
Web Development with Apache Struts 2
Web Development with  Apache Struts 2Web Development with  Apache Struts 2
Web Development with Apache Struts 2Fabrizio Giudici
 
Android java fx-jme@jug-lugano
Android java fx-jme@jug-luganoAndroid java fx-jme@jug-lugano
Android java fx-jme@jug-luganoFabrizio Giudici
 

More from Fabrizio Giudici (10)

Building Android apps with Maven
Building Android apps with MavenBuilding Android apps with Maven
Building Android apps with Maven
 
DCI - Data, Context and Interaction @ Jug Lugano May 2011
DCI - Data, Context and Interaction @ Jug Lugano May 2011 DCI - Data, Context and Interaction @ Jug Lugano May 2011
DCI - Data, Context and Interaction @ Jug Lugano May 2011
 
DCI - Data, Context and Interaction @ Jug Genova April 2011
DCI - Data, Context and Interaction @ Jug Genova April 2011DCI - Data, Context and Interaction @ Jug Genova April 2011
DCI - Data, Context and Interaction @ Jug Genova April 2011
 
Netbeans+platform+maven
Netbeans+platform+mavenNetbeans+platform+maven
Netbeans+platform+maven
 
Parallel Computing Scenarios and the new challenges for the Software Architect
Parallel Computing Scenarios  and the new challenges for the Software ArchitectParallel Computing Scenarios  and the new challenges for the Software Architect
Parallel Computing Scenarios and the new challenges for the Software Architect
 
NASA World Wind for Java API Overview
NASA World Wind for Java  API OverviewNASA World Wind for Java  API Overview
NASA World Wind for Java API Overview
 
Rich Internet Applications con JavaFX e NetBeans
Rich Internet Applications  con JavaFX e NetBeans Rich Internet Applications  con JavaFX e NetBeans
Rich Internet Applications con JavaFX e NetBeans
 
The VRC Project
The VRC ProjectThe VRC Project
The VRC Project
 
Web Development with Apache Struts 2
Web Development with  Apache Struts 2Web Development with  Apache Struts 2
Web Development with Apache Struts 2
 
Android java fx-jme@jug-lugano
Android java fx-jme@jug-luganoAndroid java fx-jme@jug-lugano
Android java fx-jme@jug-lugano
 

Recently uploaded

Independent Call Girls Andheri Nightlaila 9967584737
Independent Call Girls Andheri Nightlaila 9967584737Independent Call Girls Andheri Nightlaila 9967584737
Independent Call Girls Andheri Nightlaila 9967584737Riya Pathan
 
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,noida100girls
 
Kenya’s Coconut Value Chain by Gatsby Africa
Kenya’s Coconut Value Chain by Gatsby AfricaKenya’s Coconut Value Chain by Gatsby Africa
Kenya’s Coconut Value Chain by Gatsby Africaictsugar
 
Future Of Sample Report 2024 | Redacted Version
Future Of Sample Report 2024 | Redacted VersionFuture Of Sample Report 2024 | Redacted Version
Future Of Sample Report 2024 | Redacted VersionMintel Group
 
Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...
Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...
Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...lizamodels9
 
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort ServiceCall US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Servicecallgirls2057
 
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
Keppel Ltd. 1Q 2024 Business Update  Presentation SlidesKeppel Ltd. 1Q 2024 Business Update  Presentation Slides
Keppel Ltd. 1Q 2024 Business Update Presentation SlidesKeppelCorporation
 
MAHA Global and IPR: Do Actions Speak Louder Than Words?
MAHA Global and IPR: Do Actions Speak Louder Than Words?MAHA Global and IPR: Do Actions Speak Louder Than Words?
MAHA Global and IPR: Do Actions Speak Louder Than Words?Olivia Kresic
 
Intro to BCG's Carbon Emissions Benchmark_vF.pdf
Intro to BCG's Carbon Emissions Benchmark_vF.pdfIntro to BCG's Carbon Emissions Benchmark_vF.pdf
Intro to BCG's Carbon Emissions Benchmark_vF.pdfpollardmorgan
 
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deck
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deckPitch Deck Teardown: Geodesic.Life's $500k Pre-seed deck
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deckHajeJanKamps
 
2024 Numerator Consumer Study of Cannabis Usage
2024 Numerator Consumer Study of Cannabis Usage2024 Numerator Consumer Study of Cannabis Usage
2024 Numerator Consumer Study of Cannabis UsageNeil Kimberley
 
Flow Your Strategy at Flight Levels Day 2024
Flow Your Strategy at Flight Levels Day 2024Flow Your Strategy at Flight Levels Day 2024
Flow Your Strategy at Flight Levels Day 2024Kirill Klimov
 
Lean: From Theory to Practice — One City’s (and Library’s) Lean Story… Abridged
Lean: From Theory to Practice — One City’s (and Library’s) Lean Story… AbridgedLean: From Theory to Practice — One City’s (and Library’s) Lean Story… Abridged
Lean: From Theory to Practice — One City’s (and Library’s) Lean Story… AbridgedKaiNexus
 
Global Scenario On Sustainable and Resilient Coconut Industry by Dr. Jelfina...
Global Scenario On Sustainable  and Resilient Coconut Industry by Dr. Jelfina...Global Scenario On Sustainable  and Resilient Coconut Industry by Dr. Jelfina...
Global Scenario On Sustainable and Resilient Coconut Industry by Dr. Jelfina...ictsugar
 
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...lizamodels9
 
Call Girls Miyapur 7001305949 all area service COD available Any Time
Call Girls Miyapur 7001305949 all area service COD available Any TimeCall Girls Miyapur 7001305949 all area service COD available Any Time
Call Girls Miyapur 7001305949 all area service COD available Any Timedelhimodelshub1
 
8447779800, Low rate Call girls in Tughlakabad Delhi NCR
8447779800, Low rate Call girls in Tughlakabad Delhi NCR8447779800, Low rate Call girls in Tughlakabad Delhi NCR
8447779800, Low rate Call girls in Tughlakabad Delhi NCRashishs7044
 
India Consumer 2024 Redacted Sample Report
India Consumer 2024 Redacted Sample ReportIndia Consumer 2024 Redacted Sample Report
India Consumer 2024 Redacted Sample ReportMintel Group
 
Case study on tata clothing brand zudio in detail
Case study on tata clothing brand zudio in detailCase study on tata clothing brand zudio in detail
Case study on tata clothing brand zudio in detailAriel592675
 
BEST Call Girls In Greater Noida ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In Greater Noida ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,BEST Call Girls In Greater Noida ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In Greater Noida ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,noida100girls
 

Recently uploaded (20)

Independent Call Girls Andheri Nightlaila 9967584737
Independent Call Girls Andheri Nightlaila 9967584737Independent Call Girls Andheri Nightlaila 9967584737
Independent Call Girls Andheri Nightlaila 9967584737
 
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In Old Faridabad ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
 
Kenya’s Coconut Value Chain by Gatsby Africa
Kenya’s Coconut Value Chain by Gatsby AfricaKenya’s Coconut Value Chain by Gatsby Africa
Kenya’s Coconut Value Chain by Gatsby Africa
 
Future Of Sample Report 2024 | Redacted Version
Future Of Sample Report 2024 | Redacted VersionFuture Of Sample Report 2024 | Redacted Version
Future Of Sample Report 2024 | Redacted Version
 
Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...
Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...
Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...
 
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort ServiceCall US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
 
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
Keppel Ltd. 1Q 2024 Business Update  Presentation SlidesKeppel Ltd. 1Q 2024 Business Update  Presentation Slides
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
 
MAHA Global and IPR: Do Actions Speak Louder Than Words?
MAHA Global and IPR: Do Actions Speak Louder Than Words?MAHA Global and IPR: Do Actions Speak Louder Than Words?
MAHA Global and IPR: Do Actions Speak Louder Than Words?
 
Intro to BCG's Carbon Emissions Benchmark_vF.pdf
Intro to BCG's Carbon Emissions Benchmark_vF.pdfIntro to BCG's Carbon Emissions Benchmark_vF.pdf
Intro to BCG's Carbon Emissions Benchmark_vF.pdf
 
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deck
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deckPitch Deck Teardown: Geodesic.Life's $500k Pre-seed deck
Pitch Deck Teardown: Geodesic.Life's $500k Pre-seed deck
 
2024 Numerator Consumer Study of Cannabis Usage
2024 Numerator Consumer Study of Cannabis Usage2024 Numerator Consumer Study of Cannabis Usage
2024 Numerator Consumer Study of Cannabis Usage
 
Flow Your Strategy at Flight Levels Day 2024
Flow Your Strategy at Flight Levels Day 2024Flow Your Strategy at Flight Levels Day 2024
Flow Your Strategy at Flight Levels Day 2024
 
Lean: From Theory to Practice — One City’s (and Library’s) Lean Story… Abridged
Lean: From Theory to Practice — One City’s (and Library’s) Lean Story… AbridgedLean: From Theory to Practice — One City’s (and Library’s) Lean Story… Abridged
Lean: From Theory to Practice — One City’s (and Library’s) Lean Story… Abridged
 
Global Scenario On Sustainable and Resilient Coconut Industry by Dr. Jelfina...
Global Scenario On Sustainable  and Resilient Coconut Industry by Dr. Jelfina...Global Scenario On Sustainable  and Resilient Coconut Industry by Dr. Jelfina...
Global Scenario On Sustainable and Resilient Coconut Industry by Dr. Jelfina...
 
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...
 
Call Girls Miyapur 7001305949 all area service COD available Any Time
Call Girls Miyapur 7001305949 all area service COD available Any TimeCall Girls Miyapur 7001305949 all area service COD available Any Time
Call Girls Miyapur 7001305949 all area service COD available Any Time
 
8447779800, Low rate Call girls in Tughlakabad Delhi NCR
8447779800, Low rate Call girls in Tughlakabad Delhi NCR8447779800, Low rate Call girls in Tughlakabad Delhi NCR
8447779800, Low rate Call girls in Tughlakabad Delhi NCR
 
India Consumer 2024 Redacted Sample Report
India Consumer 2024 Redacted Sample ReportIndia Consumer 2024 Redacted Sample Report
India Consumer 2024 Redacted Sample Report
 
Case study on tata clothing brand zudio in detail
Case study on tata clothing brand zudio in detailCase study on tata clothing brand zudio in detail
Case study on tata clothing brand zudio in detail
 
BEST Call Girls In Greater Noida ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In Greater Noida ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,BEST Call Girls In Greater Noida ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
BEST Call Girls In Greater Noida ✨ 9773824855 ✨ Escorts Service In Delhi Ncr,
 

blueMarine photographic workflow with Java

  • 1.
  • 2. blueMarine photographic workflow with Java or Why You Should Really Ship Swing Applications Fabrizio Giudici Senior Java Architect
  • 3. Overall Presentation Goal Talk about issues with Java Rich Client Applications A real project perspective Enumerate and introduce solutions www.javapolis.com
  • 4. Speaker’s Qualifications  Senior Java Architect with 12 years of Java experience  Project leading, mentoring, teaching  Member of JUG Milano, NetBeans Dream Team  Speaker at JavaPolis, Jazoon, JavaOne, Jini Meeting  Writer for NetBeans Magazine, Mokabyte  Blogger at Java.Net www.javapolis.com
  • 5. Java is mature for Rich Desktop Applications. Just look beyond Swing. www.javapolis.com
  • 6. Java is mature for Rich Desktop Applications. Just look beyond Swing. (beyond - not in another direction) www.javapolis.com
  • 7. The blueMarine project  Whole photographic workflow  Be creative with technology  Be open - more than some scripting APIs  FLOSS is not (only) a matter of freedom...  ... but of better stuff  Do special things for special communities  e.g. amateur astrophotographers, birdwatchers, ...  It all started in 2003 www.javapolis.com
  • 9. Java for Desktop Readiness Phases  Phase -1: prior 2005  Slow, poorly integrated, ugly L&F  Phase 0: 2005  JDK 5 spreads, “Extreme GUI Makeover” starts  Phase +1: 2006-2007  JDK 6, Aerith, SwingLabs matures  TimingFramework, Nimbus, Filthy Rich Clients  Phase +2: 2008  Add NetBeans RCP: Filthy Rich Platform Clients  Ready for complex applications - anyone? www.javapolis.com
  • 10. Java for Desktop Readiness Phases   blueMarine Phase -1: prior 2005 Slow, poorly integrated, ugly L&F 0.8  Phase 0: 2005 died here  JDK 5 spreads, “Extreme GUI Makeover” starts  Phase +1: 2006-2007  JDK 6, Aerith, SwingLabs matures  TimingFramework, Nimbus, Filthy Rich Clients  Phase +2: 2008  Add NetBeans RCP: Filthy Rich Platform Clients  Ready for complex applications - anyone? www.javapolis.com
  • 11. Java for Desktop Readiness Phases   blueMarine Phase -1: prior 2005 Slow, poorly integrated, ugly L&F 0.8  Phase 0: 2005 died here  JDK 5 spreads, “Extreme GUI Makeover” starts  Phase +1: 2006-2007  JDK 6, Aerith, Swing blueMarine 0.9  TimingFramework, Nimbus, Filthy Rich Clients  Phase +2: 2008 reborn here  Add NetBeans RCP: Filthy Rich Platform Clients  Ready for complex applications - anyone? www.javapolis.com
  • 12. Problems www.javapolis.com
  • 13. Solutions www.javapolis.com
  • 14. If you can just remember four points...  NetBeans RCP  NetBeans Visual Library  SwingLabs  NASA World Wind for Java www.javapolis.com
  • 15. OpenBlueSky  Where generic stuff spins off blueMarine  Can be used for other applications  Consolidated stuff will be submitted for standard APIs enhancement www.javapolis.com
  • 16. References  weblogs.java.net/blog/fabriziogiudici  bluemarine.tidalwave.it  openbluesky.dev.java.net  mistral.tidalwave.it  forceten.tidalwave.it www.javapolis.com
  • 17. References  www.netbeans.org/features/platform  www.netbeans.org/community/magazine  graph.netbeans.org  www.swinglabs.org  timingframework.dev.java.net  worldwind.arc.nasa.gov/java  quaqua.dev.java.net  nimbus.dev.java.net  personales.ya.com/nimrod www.javapolis.com
  • 18. NetBeans RCP www.javapolis.com
  • 19. Question What do you expect from a (desktop) framework? www.javapolis.com
  • 20. Desktop frameworks  Solid foundation to base your application  APIs working together, well tested  Service discovery and provider  Plugin support  Messaging infrastructure (via events)  Integrated help system  And more 20
  • 21. Swing is not a framework  Missing sophisticated components  date picker, tree+table, etc...  Neither service discovery nor providers  No plugins  No messaging (only simple listeners)  Threading issues  JSR-296 (Swing Application Framework) not good for large applications 21
  • 22. What is NetBeans RCP? NetBeans { NetBeans IDE NetBeans RCP 22
  • 23. What is NetBeans RCP? NetBeans { NetBeans IDE NetBeans RCP 23
  • 24. What is NetBeans RCP? NetBeans { NetBeans IDE NetBeans RCP Your Desktop Application 24
  • 25. NetBeans RCP  You start with a skeleton application  You populate it  panels, views  actions, menus, toolbars  etc..  Often declaratively  Based on Swing  You can integrate third parties' components  You can control the Look&Feel 25
  • 26. Most important NetBeans RCP APIs  Actions  Modules  DataObjects  Nodes  Dialogs  Options  Explorer  Progress  FileSystem  Visual Library  Lookup  Windowing/docking 26
  • 28. Lookup  Plays a fundamental role in many APIs  Repository for a bag of objects  Locator for services  Service service = Lookup.getDefault().lookup(Service.class);  Fires events  “Global” lookup can be used as a simple “event bus” 28
  • 29. DataObject represents a file-based entity 29
  • 30. You can extend DataObject 30
  • 32. A Node “represents” a DataObject 32
  • 33. A Node has “capabilities” too 33
  • 34. Representing set of selected (etc) Nodes 34
  • 35. A View renders Nodes 35
  • 36. An Action can be automatically enabled 36
  • 37. Some points  You don't need to always use everything  E.g. just Nodes, no DataObjects  Can use them “incrementally”  NetBeans RCP keeps objects in sync  E.g. updating a DataObject → bound Nodes  E.g. Nodes bound to the same DataObject 37
  • 38. NetBeans RCP stuff can be extended  What about a “cover flow” view?  Use JOGL for fast 3D  Just extend and create a new View  TimingFramework for animating stuff 38
  • 40. Update Centers  NetBeans components (.nbm)  can be added / removed on the fly  can declare dependencies  can be versioned  can add actions, menus, toolbars  Pretty good for plugins  (See demo in a few minutes) 40
  • 41. NetBeans Visual Library www.javapolis.com
  • 42. NetBeans Visual Library  Support for graph- add screenshot oriented modeling from UML or MIDP designer  Nodes  Arcs  Routing  Interaction  Can be creatively used  Whiteboard paradigm  Use interactivity: touch, drag, change objects  PS Can be used with plain Swing apps 42
  • 44. GeoSpatial Components www.javapolis.com
  • 45. JXMapViewer  A generic 2D, tile-based map renderer  See Joshua Marinacci's blog  Retrieves tiles from the web (or locally)  Part of Swing-WS (SwingLabs)  Can stick objects to the map  Hint: integrate it with the Visual Library www.javapolis.com
  • 47. NASA World Wind for Java  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 47
  • 49. Java Imaging APIs www.javapolis.com
  • 50. Java Imaging APIs  Many options (and dispersive?)  Java2D, JAI, ImageJ, JMagick, JHLabs, ...  Some too difficult  Wild behaviour and performance differences  Parallel Computing is a must  Multi Core  Small, local mini-grids  Massive Grid Computing  There's not a global community www.javapolis.com
  • 51. Mistral: fix 'em up  Imaging meta-framework  Multiple APIs can be used together  Simplifies APIs  Supports multicore, Jini, Sun Grid www.javapolis.com
  • 52. Open Problems for blueMarine  Java still misses something on the desktop  e.g. video streaming, USB support  Can be worked around with JNI/JNA  Java 7 is not too far  Some NB RCP stuff not fully customizable  Better integration NB RCP SwingLabs  Compliance to Apple HIG  Linux + JOGL issues  No JAI native support for Mac OS X 52
  • 53. A final point www.javapolis.com
  • 54. Be efficient with innovation  “Cool stuff„ often means complexity  Go quickly from idea to prototype  Integrate easily others' stuff  NIH isn't a killer-idea, but an idea-killer  Build cool demonstrators  ... and cool applications soon after  (stay tuned for some new cool stuff) 54
  • 55. Concluding statement Most showstoppers are history now. www.javapolis.com
  • 56. Concluding statement Most showstoppers are history now. You CAN ship destkop apps. www.javapolis.com
  • 57. Concluding statement Most showstoppers are history now. You CAN ship destkop apps. There's a world beyond Swing. www.javapolis.com
  • 58. Concluding statement Most showstoppers are history now. You CAN ship destkop apps. There's a world beyond Swing. (SwingLabs, NetBeans RCP, etc...) www.javapolis.com
  • 59. Concluding statement Most showstoppers are history now. You CAN ship destkop apps. There's a world beyond Swing. (SwingLabs, NetBeans RCP, etc...) Be creative. Mix 'em up. www.javapolis.com
  • 60. Q&A View JavaPolis talks @ www.parleys.com
  • 61. Thank you for your attention