SlideShare a Scribd company logo
1 of 50
Download to read offline
JavaFX: Incorporating Media
and animation
   Raghavan N. Srinivas
   Technology Evangelist
   Sun Microsystems, Inc.     1
Speaker

> Rags
  ● CTO, Technology Evangelism
  ● Developing and deploying Java apps. for a decade
    (trying to anyway)
  ● HOL track lead for JavaOne; Author of JavaFX
    HOL for JavaOne 2007 and 2008




                                                       2
Agenda
• JavaFX Platform Overview
• JavaFX Script Language features
  > Binding
  > Animation
  > Media
  > JavaFX Script from Java
• Java SE 6 update 10 and Deployment basics
• Tools, Summary and References




                                              3
JavaFX Vision
JavaFX is THE platform for creating and delivering
            Rich Internet Applications
        across all the screens of your life




      JavaFX is Powered by Java

                                                     4
JavaFX roadmap
Desktop Product Line   JavaFX Desktop
                          (Fall 2008)

Mobile Product Line                 JavaFX Mobile
                                        (Spring 2009)
                                                  JavaFX TV
TV Product Line                                  (Summer 2009)


Other Platforms                         With Partner platforms/OSs



                                                                     5
JavaFX Script Programming Language
• Declarative, statically-typed scripting language
• Facilitates rapid GUI development
• Many cool, interesting language features
• Runs on Virtual Machine for the Java™ platform
• Deployment options same as Java programs
• Fully utilizes Java class libraries behind the scenes
• For content designers and Media engineers
• binding – the swiss army knife



                                                          6
Timing, Jgoodies Framework
public ControlPanel(AnimationView animationView) {
  this.animationView = animationView;
  setLayout(new GridBagLayout());
  intFormat = NumberFormat.getNumberInstance();
  intFormat.setParseIntegerOnly(true);
  doubleFormat = NumberFormat.getNumberInstance();
  setupCycleGUI();
  setupEnvelopeGUI();
  setupPropertySetterGUI();
  setupAccelerationGUI();
  setupActionsGUI();
  // Animation View
  JPanel panel = new JPanel(new BorderLayout());
  panel.add(animationView);
  ...
}
                                                     7
JavaFX code : Animation for everyone else
 var t = Timeline {
     repeatCount: bind rep
     autoReverse: bind autoRevCheckBox.selected
     toggle: bind toggleCheckBox.selected
     keyFrames: [
     KeyFrame {
         time: 0ms
         values: [
            x => 0,
            y => 0]
     },
     KeyFrame {
         time: 2000ms
         values: [
            x => 200 tween interpolate,
            y => 200 tween interpolate]
     }
     ]
 };                                               8
How to get started: Software Requirements

• Java SE 6 Update 10 SDK
• NetBeans IDE 6.1 with JavaFX Plugin OR pre-
  bundled NetBeans IDE 6.1 with JavaFX
• JavaFX Preview SDK (Already bundled with the
  plugin)
• Mozilla Firefox 3, Safari, Internet Explorer or
  Google Chrome




                                                    9
NetBeans IDE 6.1

• JavaFX Plugin for NetBeans IDE 6.1 OR pre-
  bundled NetBeans IDE 6.1 for JavaFX
  > Support development cycle
     ● edit, compile, run, test
  > JavaFX project system
  > Includes automatic installation of JavaFX Preview SDK




                                                            10
Components – JavaFX Preview SDK

                          /lib
                     javafxc.jar
      /docs         javafxrt.jar
                   javafxgui.jar       /bin
                javafx-swing.jar   javafxc.exe
                    Scenario.jar    javafx.exe
                  Decora-D3D.jar
     /samples      Decora-HW.jar
SmokeScreenSample       jmc.jar
    StopWatch          jogl.jar
                      jaxb*.jar


                                                 11
Command Line Development
•   include <javafx-sdk>/bin in PATH
•   javafxc to compile
•   javafx to run
•   Relevant library files in <javafx-sdk>/lib are
    automatically included in classpath as necessary.
    Rest can be included with the -classpath option
    > With packages
      ● javafxc -d . simple/Main.fx
      ● javafx simple.Main
    > Without packages
      ● javafxc Main.fx
      ● javafx Main



                                                        12
Agenda
• JavaFX Platform Overview
• JavaFX Script Language features
  > Binding
  > Animation
  > Media
  > JavaFX Script from Java
• Java SE 6 & Deployment Basics
• Summary and References




                                    13
Binding in JavaFX Script
  > Cause and Effect—Responding to change
  > The JavaFX Script bind operator—Allows
      dynamic content to be expressed
      declaratively
  >   Dependency-based evaluation of any
      expression
  >   Automated by the system—Rather than
      manually wired by the programmer
  >   You just declare dependencies and the
      JavaFX runtime takes care of performing
      updates when things change
  >   Eliminates listener patterns
                                                14
Example: Binding in JavaFX Script
import javafx.application.*;
import javafx.ext.swing.*;
Frame {
  var a: String = quot;namequot;;
  title: quot;Hello Worldquot;
  width: 400
  stage: Stage {
    content: ComponentView {
        component: BorderPanel {
          bottom: TextField { text: bind a with inverse}
          top: Label { text: bind quot;Hello {a}quot; }
        }
    }
  }
  visible: true
}




                                                           15
More Binding Examples
public class User {
    public attribute userid: String;
    public attribute password: String;
}
// Create sequence
var users = [
    User {userid: quot;ragsquot; password: quot;everestquot; },
    User {userid: quot;sridharquot; password: quot;hyderabadquot; },
    User {userid: quot;inyoungquot; password: quot;koreaquot; },
];
// Bind list to sequence of users
var list = List{items: bind for (user in users)
              ListItem {text: bind quot;{user.userid}quot;}};

                                                        16
Agenda
• JavaFX Platform Overview
• JavaFX Script language features
  > Binding
  > Animation
  > Media
  > JavaFX Script from Java
• Java SE 6 & Deployment basics
• Summary and References




                                    17
Animation - javafx.animation.*

               KeyFrame
                action
  TimeLine
               canSkip
autoReverse               InterPolator
                 time
 INDEFINITE
              timelines
  keyFrames                DISCRETE
                values
repeatCount                EASEBOTH
   running                   EASEIN
    toggle                  EASEOUT
                             LINEAR




                                         18
Animation
• Timelines handles the animation in JavaFX
• Timelines are first-class citizen in the language
    along with the duration time constants (1s, 10s)
•   They can have one or more KeyFrames
•   Methods: start(), stop(), pause(), resume()
•   Properties: autoReverse, repeatCount, toggle
•   BigDeal: Timelines are nestable!




                                                       19
Animation
var t = Timeline {
    repeatCount: bind rep
    autoReverse: bind autoRevCheckBox.selected
    toggle: bind toggleCheckBox.selected
    keyFrames: [
    KeyFrame {
        time: 0ms
        values: [
           x => 0,
           y => 0]
    },
    KeyFrame {
        time: 2000ms
        values: [
           x => 200 tween interpolate,
           y => 200 tween interpolate]
    }
    ]
};                                               20
The “=>” literal constructor

values: [x => 100 tween Interpolator.LINEAR]

is equivalent to

values: [KeyValue {target: pX, value: 100,
     interpolate: Interpolator.LINEAR}]

where pX is “pointer of x” (obtained magically :-))




                                                      21
Animation Controls
var buttons =
   FlowPanel {
     content: [
       Button {
          text: quot;Startquot;
          action: function():Void { t.start(); }
       },
       Button {
          text: quot;Stopquot;
          action: function():Void { t.stop(); }
       },
       Button {
          text: quot;Pausequot;
          action: function():Void { t.pause(); }
       }
     ]
};

                                                   22
JavaFX Animation demo




                        23
Agenda
• JavaFX Platform Overview
• JavaFX Script language features
  > Binding
  > Animation
  > Media
  > JavaFX Script from Java
• Java SE 6 & Deployment basics
• Summary and References




                                    24
Design Goals
• Media Playback is of primary importance
• Simple API: only a few lines of coded needed
• Cross platform A/V format required
• Native support also desirable
  > “Mash ups”
  > Viewing local media
• Zero Configuration plug in support
  > Drop in format support
• Going beyond rectangular video
  > Support lightweight rendering
  > Integration with Scenegraph, FXScript, and 3D APIs

                                                         25
Architectural Overview, JMC
• Java Media Components
 > JMediaPlayer
    ● A JComponent that provides media playback
 > JMediaPane
    ● A JComponent that provided media playback
     without UI controls
 > MediaProvider
   ● Low level media player
 > Media Class
   ● For getting information about the media
        – Tracks
        – Metadata
 > Events and Exceptions


                                                  26
Code Sample: Java Player
  class MediaDemo extends JFrame {
     MediaDemo() {
         JmediaPlayer mediaPlayer;
         try {
             mediaPlayer = new JMediaPlayer(
              new URI(quot;movie.movquot;));
         } catch (Exception e) {
             System.out.println(quot;Error opening mediaquot; + e);
             System.exit(0);
         }
         add(mediaPlayer);
         mediaPlayer.play();
         setVisible(true);
     } ...

                                                              27
Media - javafx.scene.media.*

               MediaPlayer
              media
   Media
              autoPlay
source                          MediaView
              volume
resolutionX                    fullScreen
              REPEAT_FOREVER
resoultionY                    mediaPlayer
                               clip
                               rotate
                               transform
                               effect




                                             28
Media in JavaFX
• Media classes are part of javafx.scene.media
  package
• Media, MediaPlayer and MediaView
  > MediaView is a Node
    ● has a MediaPlayer
     ● MediaPlayer has a Media object.
  > MediaView may be rotated, translated, sheared, and
    have filter effects applied to it.
  > Multiple views may be bound to single player.
• MediaTimers allow functions to be invoked at key
  points in Media.
• Other media events may be triggered
                                                         29
Code Sample: JavaFX™ MediaPlayer
var media = Media{source:”movie.mov”};
var player = MediaPlayer{media: media, autoPlay:true};
var mediaView = MediaView{mediaPlayer: player};

// To enable audio only, don't create MediaView

MediaView{mediaPlayer:player,
    onMouseClicked: function(e) {
        if (player.paused) {
            player.play();
        } else {
            player.pause();
        }
     }
     // Add a clip and rotate
     clip: c;
     rotate: 90;
}
                                                         30
JavaFX Media demo




                    31
Agenda
• JavaFX Platform Overview
• JavaFX Script language features
  > Binding
  > Animation
  > Media
  > JavaFX Script from Java
• Java SE 6 & Deployment basics
• Tools, Summary and References




                                    32
Code Sample: JavaFX™ from Java
// evaluate the FX script

Object fxobject = scrEng.eval(script.toString());

// you could use the FXAdapter method
// or use pure reflection

Method method=
    fxobject.getClass().getMethod(quot;getJComponentquot;);

JComponent component = (Jcomponent)
    method.invoke(fxobject);

frame.add(component);



                                                      33
Agenda
• JavaFX Platform Overview
• JavaFX Script language features
  > Binding
  > Animation
  > Media
  > JavaFX Script from Java
• Java SE 6 & Deployment basics
• Tools, Summary and References




                                    34
Consumer JRE

  Project Hamburg

Java SE 6, Update X

Java SE 6, Update N

Java SE 6, Update 10

                       35
Features
• Java Quick Starter
  > Faster cold starts on most systems
• Java Kernel
  > Shorter download + install + launch times
• Deployment Toolkit
  > Simplifies using Java technology in a web browser




                                                        36
Quickstarter
• “Coldstart” vs. “Warmstart”
• Root problem:
  > Large files + Disk access speed
• Solution: QuickStarter
  > Pre-warm the disk cache
• Note: QuickStarter != running VM
  > Smaller footprint, more targeted disk pages




                                                  37
Install Time
• Java's not small
  > J2SE 5.0: 7.1 MB
  > Java SE 6: 10+ MB
  > rt.jar: 40+ MB on disk
• Lots of bits being moved around
  > Download, Unzip, Unpack200, Copying
• Solution: Java Kernel
  > Download only core dependencies first
  > Launch application
  > Download and install in the background



                                             38
JRE sizes




            39
Look Mom! We Shrunk the JRE




                              40
Architectural Overview


                         Java Applet 1


                         Java Applet 2


   HTML-Webpage          Java Applet 3




                                         41
Architectural Overview




                           Fat Client JVM 1
                                  OS Process 2
        Thin Server JVM


        OS Process 1
                          Fat Client JVM 2
                                OS Process 3
                                                 42
Applets Reloaded
• Ground-up rewrite of the Java Plug-In
  > Mostly in Java
• Advanced new architecture
  > Out-of-process execution
• Major benefits
  > Improved reliability
  > Support for larger Java heap sizes for applets
  > Better support for signed applets on Windows Vista
  > Support for per-applet JVM command-line arguments
  > Support for multiple simultaneous JRE versions



                                                         43
Agenda
• JavaFX Platform Overview
• JavaFX Script Language features
  > Binding
  > Animation
  > Media
  > JavaFX Script from Java
• Java SE 6 & Deployment basics
• Tools, Summary and References




                                    44
Ajax and Java compared (for RIA)


             Ajax                         Java

     • Javascript-based             • Java-based
     • No plugins                   • Plugins required
     • Simple effects, transition   • Complex effects,
       and windows                   transition, windows
     • Does not work in             • Can work in
      disconnected mode              disconnected mode
     • Mobile phones?               • Plans for mobile phones
     • Designer/Developer           • Designer/Developer
      delineation is blurred         delineation can be clear


                                                                45
JavaFX Preview SDK

• JavaFX Preview SDK since 31st July 2008
  > http://openjfx.java.sun.com
  > http://www.javafx.com
  > available for Windows and MacOS
• NetBeans 6.1 IDE and JavaFX Plugin
  > Available now and since 31st July 2008
• Desktop SDK 1.0 later this year
• Project Nile



                                             46
Project Nile (Designer + Developer)


•     Photoshop and Illustrator plugins
•     FXD File Format
•     FXD Viewer
•     SVG Converter
•     Designer / Developer Collaboration


                                           47
JavaFX Summary

• JavaFX is a Platform for creating rich internet
    applications (RIA) with immersive media and
    content, across all the screens of your life
•   JavaFX has familiarity with Java developers
    aimed at designers
•   Easier to write UI and Graphics programs
•   Timelines make animations very easy
•   Binding and other features make it easier
•   Possible to use JavaFX Script in Java
•   Java SE 6 update 10 is the deployment platform


                                                     48
JavaFX References

• http://javafx.com/
• https://openjfx.dev.java.net/
• http://openjfx-compiler.dev.java.net
• http://scenegraph.dev.java.net
• http://java.sun.com/javafx/
•   http://java.sun.com/javafx/tutorials   /project_nile_integrating_graphics/
• http://openjfx.java.sun.com/current-build/doc/index.html
• http://www.netbeans.org



                                                                                 49
Thank You!!

Raghavan N. Srinivas
Incorporating Media and
animation into JavaFX and
Java

rags@sun.com




                        50

More Related Content

What's hot

JavaOne - The JavaFX Community and Ecosystem
JavaOne - The JavaFX Community and EcosystemJavaOne - The JavaFX Community and Ecosystem
JavaOne - The JavaFX Community and EcosystemAlexander Casall
 
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...Vadym Kazulkin
 
Java 10 New Features
Java 10 New FeaturesJava 10 New Features
Java 10 New FeaturesAli BAKAN
 
Enabling White-Box Reuse in a Pure Composition Language
Enabling White-Box Reuse in a Pure Composition LanguageEnabling White-Box Reuse in a Pure Composition Language
Enabling White-Box Reuse in a Pure Composition Languageelliando dias
 
Head toward Java 14 and Java 15
Head toward Java 14 and Java 15Head toward Java 14 and Java 15
Head toward Java 14 and Java 15Yuji Kubota
 
JShell: An Interactive Shell for the Java Platform
JShell: An Interactive Shell for the Java PlatformJShell: An Interactive Shell for the Java Platform
JShell: An Interactive Shell for the Java PlatformJavaDayUA
 
Head toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMHead toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMYuji Kubota
 
Interactive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and ArchitectureInteractive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and ArchitectureJavaDayUA
 
Java 9 Modularity and Project Jigsaw
Java 9 Modularity and Project JigsawJava 9 Modularity and Project Jigsaw
Java 9 Modularity and Project JigsawComsysto Reply GmbH
 
Java fx smart code econ
Java fx smart code econJava fx smart code econ
Java fx smart code econTom Schindl
 
Developing Plug-Ins for NetBeans
Developing Plug-Ins for NetBeansDeveloping Plug-Ins for NetBeans
Developing Plug-Ins for NetBeanselliando dias
 
Introduction maven3 and gwt2.5 rc2 - Lesson 01
Introduction maven3 and gwt2.5 rc2 - Lesson 01Introduction maven3 and gwt2.5 rc2 - Lesson 01
Introduction maven3 and gwt2.5 rc2 - Lesson 01rhemsolutions
 
Java 9 New Features
Java 9 New FeaturesJava 9 New Features
Java 9 New FeaturesAli BAKAN
 
Java11 New Features
Java11 New FeaturesJava11 New Features
Java11 New FeaturesHaim Michael
 

What's hot (20)

What's new in Java 11
What's new in Java 11What's new in Java 11
What's new in Java 11
 
JavaOne - The JavaFX Community and Ecosystem
JavaOne - The JavaFX Community and EcosystemJavaOne - The JavaFX Community and Ecosystem
JavaOne - The JavaFX Community and Ecosystem
 
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
Highlights from Java 10, 11 and 12 and Future of Java at Javaland 2019 By Vad...
 
drmaatutggf12
drmaatutggf12drmaatutggf12
drmaatutggf12
 
Java 10 New Features
Java 10 New FeaturesJava 10 New Features
Java 10 New Features
 
Enabling White-Box Reuse in a Pure Composition Language
Enabling White-Box Reuse in a Pure Composition LanguageEnabling White-Box Reuse in a Pure Composition Language
Enabling White-Box Reuse in a Pure Composition Language
 
OSGi Presentation
OSGi PresentationOSGi Presentation
OSGi Presentation
 
Head toward Java 14 and Java 15
Head toward Java 14 and Java 15Head toward Java 14 and Java 15
Head toward Java 14 and Java 15
 
Desiging for Modularity with Java 9
Desiging for Modularity with Java 9Desiging for Modularity with Java 9
Desiging for Modularity with Java 9
 
JShell: An Interactive Shell for the Java Platform
JShell: An Interactive Shell for the Java PlatformJShell: An Interactive Shell for the Java Platform
JShell: An Interactive Shell for the Java Platform
 
Head toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMHead toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DM
 
Interactive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and ArchitectureInteractive Java Support to your tool -- The JShell API and Architecture
Interactive Java Support to your tool -- The JShell API and Architecture
 
Extending and scripting PDT
Extending and scripting PDTExtending and scripting PDT
Extending and scripting PDT
 
Java 9 Modularity and Project Jigsaw
Java 9 Modularity and Project JigsawJava 9 Modularity and Project Jigsaw
Java 9 Modularity and Project Jigsaw
 
Java fx smart code econ
Java fx smart code econJava fx smart code econ
Java fx smart code econ
 
Developing Plug-Ins for NetBeans
Developing Plug-Ins for NetBeansDeveloping Plug-Ins for NetBeans
Developing Plug-Ins for NetBeans
 
Introduction maven3 and gwt2.5 rc2 - Lesson 01
Introduction maven3 and gwt2.5 rc2 - Lesson 01Introduction maven3 and gwt2.5 rc2 - Lesson 01
Introduction maven3 and gwt2.5 rc2 - Lesson 01
 
Java 9 New Features
Java 9 New FeaturesJava 9 New Features
Java 9 New Features
 
Intro To OSGi
Intro To OSGiIntro To OSGi
Intro To OSGi
 
Java11 New Features
Java11 New FeaturesJava11 New Features
Java11 New Features
 

Viewers also liked

Web 2 0 Data Visualization With Jsf
Web 2 0 Data Visualization With JsfWeb 2 0 Data Visualization With Jsf
Web 2 0 Data Visualization With Jsfrajivmordani
 
Presentaciòn Plataforma Urbana
Presentaciòn Plataforma UrbanaPresentaciòn Plataforma Urbana
Presentaciòn Plataforma Urbanaguest94b8ce
 
Recuperación de Información Distribuida y Paralela
Recuperación de Información Distribuida y ParalelaRecuperación de Información Distribuida y Paralela
Recuperación de Información Distribuida y ParalelaDavid Ramírez
 
Slide Maria Rosa
Slide Maria RosaSlide Maria Rosa
Slide Maria RosaDalia88
 
Leptospirosis
LeptospirosisLeptospirosis
Leptospirosisaylusas
 
Прогулки по Петербургу. Часть 5.
Прогулки по Петербургу. Часть 5.Прогулки по Петербургу. Часть 5.
Прогулки по Петербургу. Часть 5.innash
 
Ajax World2008 Eric Farrar
Ajax World2008 Eric FarrarAjax World2008 Eric Farrar
Ajax World2008 Eric Farrarrajivmordani
 
08 10 12 Meebo Ajaxworld Preso
08 10 12 Meebo Ajaxworld Preso08 10 12 Meebo Ajaxworld Preso
08 10 12 Meebo Ajaxworld Presorajivmordani
 
Ajax Integration Guide
Ajax Integration GuideAjax Integration Guide
Ajax Integration Guiderajivmordani
 
I Phone Presentation Jan Linden Gips
I Phone Presentation Jan Linden GipsI Phone Presentation Jan Linden Gips
I Phone Presentation Jan Linden Gipsrajivmordani
 
Ajax World West I Phone Summit
Ajax World West I Phone SummitAjax World West I Phone Summit
Ajax World West I Phone Summitrajivmordani
 
Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008rajivmordani
 
Ajax World Oct2008 Jrd
Ajax World Oct2008 JrdAjax World Oct2008 Jrd
Ajax World Oct2008 Jrdrajivmordani
 
Communi Gate Web 3 0 Ajax World 08 V2
Communi Gate Web 3 0 Ajax World 08 V2Communi Gate Web 3 0 Ajax World 08 V2
Communi Gate Web 3 0 Ajax World 08 V2rajivmordani
 
Turbo Enterprise Web 2.0 Ajax World 20081
Turbo Enterprise Web 2.0 Ajax World 20081Turbo Enterprise Web 2.0 Ajax World 20081
Turbo Enterprise Web 2.0 Ajax World 20081rajivmordani
 

Viewers also liked (20)

Web 2 0 Data Visualization With Jsf
Web 2 0 Data Visualization With JsfWeb 2 0 Data Visualization With Jsf
Web 2 0 Data Visualization With Jsf
 
Presentaciòn Plataforma Urbana
Presentaciòn Plataforma UrbanaPresentaciòn Plataforma Urbana
Presentaciòn Plataforma Urbana
 
Vida De Pablo
Vida De PabloVida De Pablo
Vida De Pablo
 
Recuperación de Información Distribuida y Paralela
Recuperación de Información Distribuida y ParalelaRecuperación de Información Distribuida y Paralela
Recuperación de Información Distribuida y Paralela
 
Slide Maria Rosa
Slide Maria RosaSlide Maria Rosa
Slide Maria Rosa
 
Leptospirosis
LeptospirosisLeptospirosis
Leptospirosis
 
Прогулки по Петербургу. Часть 5.
Прогулки по Петербургу. Часть 5.Прогулки по Петербургу. Часть 5.
Прогулки по Петербургу. Часть 5.
 
Ajax World2008 Eric Farrar
Ajax World2008 Eric FarrarAjax World2008 Eric Farrar
Ajax World2008 Eric Farrar
 
08 10 12 Meebo Ajaxworld Preso
08 10 12 Meebo Ajaxworld Preso08 10 12 Meebo Ajaxworld Preso
08 10 12 Meebo Ajaxworld Preso
 
Ajax Integration Guide
Ajax Integration GuideAjax Integration Guide
Ajax Integration Guide
 
Design Based Dev
Design Based DevDesign Based Dev
Design Based Dev
 
I Phone Presentation Jan Linden Gips
I Phone Presentation Jan Linden GipsI Phone Presentation Jan Linden Gips
I Phone Presentation Jan Linden Gips
 
Ajax World West I Phone Summit
Ajax World West I Phone SummitAjax World West I Phone Summit
Ajax World West I Phone Summit
 
Ajax World Fall08
Ajax World Fall08Ajax World Fall08
Ajax World Fall08
 
Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008Laird Best Practices Ajax World West2008
Laird Best Practices Ajax World West2008
 
Ajax World Oct2008 Jrd
Ajax World Oct2008 JrdAjax World Oct2008 Jrd
Ajax World Oct2008 Jrd
 
Communi Gate Web 3 0 Ajax World 08 V2
Communi Gate Web 3 0 Ajax World 08 V2Communi Gate Web 3 0 Ajax World 08 V2
Communi Gate Web 3 0 Ajax World 08 V2
 
Jsf Ajax
Jsf AjaxJsf Ajax
Jsf Ajax
 
Ajaxworld West 08
Ajaxworld West 08Ajaxworld West 08
Ajaxworld West 08
 
Turbo Enterprise Web 2.0 Ajax World 20081
Turbo Enterprise Web 2.0 Ajax World 20081Turbo Enterprise Web 2.0 Ajax World 20081
Turbo Enterprise Web 2.0 Ajax World 20081
 

Similar to Java Fx Ajaxworld Rags V1

Hinkmond's JavaFX Mobile Dojo
Hinkmond's JavaFX Mobile DojoHinkmond's JavaFX Mobile Dojo
Hinkmond's JavaFX Mobile DojoStephen Chin
 
Ten Man-Years of JavaFX: Real World Project Experiences
Ten Man-Years of JavaFX: Real World Project ExperiencesTen Man-Years of JavaFX: Real World Project Experiences
Ten Man-Years of JavaFX: Real World Project ExperiencesHenrik Olsson
 
Core java over view basics introduction by quontra solutions
Core java over view basics introduction by quontra solutionsCore java over view basics introduction by quontra solutions
Core java over view basics introduction by quontra solutionsQUONTRASOLUTIONS
 
Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009Shankar Gowda
 
Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009shankar_mbn
 
Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009Shankar Gowda
 
Learn to Internationalize your Application
Learn to Internationalize your ApplicationLearn to Internationalize your Application
Learn to Internationalize your Applicationshankar_mbn
 
The Brainify App - JavaFx
The Brainify App - JavaFxThe Brainify App - JavaFx
The Brainify App - JavaFxMohd Shamweel
 
Scripting Oracle Develop 2007
Scripting Oracle Develop 2007Scripting Oracle Develop 2007
Scripting Oracle Develop 2007Tugdual Grall
 
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume LaforgeGroovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume LaforgeGuillaume Laforge
 
Java Fx - Return of client Java
Java Fx - Return of client JavaJava Fx - Return of client Java
Java Fx - Return of client JavaShuji Watanabe
 

Similar to Java Fx Ajaxworld Rags V1 (20)

Visage fx
Visage fxVisage fx
Visage fx
 
JavaFX Overview
JavaFX OverviewJavaFX Overview
JavaFX Overview
 
Os Ramani
Os RamaniOs Ramani
Os Ramani
 
Hinkmond's JavaFX Mobile Dojo
Hinkmond's JavaFX Mobile DojoHinkmond's JavaFX Mobile Dojo
Hinkmond's JavaFX Mobile Dojo
 
Ten Man-Years of JavaFX: Real World Project Experiences
Ten Man-Years of JavaFX: Real World Project ExperiencesTen Man-Years of JavaFX: Real World Project Experiences
Ten Man-Years of JavaFX: Real World Project Experiences
 
Introduction to JavaFX
Introduction to JavaFXIntroduction to JavaFX
Introduction to JavaFX
 
Javalecture 1
Javalecture 1Javalecture 1
Javalecture 1
 
JavaFX Mix
JavaFX MixJavaFX Mix
JavaFX Mix
 
Core java over view basics introduction by quontra solutions
Core java over view basics introduction by quontra solutionsCore java over view basics introduction by quontra solutions
Core java over view basics introduction by quontra solutions
 
Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009
 
Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009
 
Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009Learn to Internationalize your Applications - Sun Tech Days 2009
Learn to Internationalize your Applications - Sun Tech Days 2009
 
Learn to Internationalize your Application
Learn to Internationalize your ApplicationLearn to Internationalize your Application
Learn to Internationalize your Application
 
The Brainify App - JavaFx
The Brainify App - JavaFxThe Brainify App - JavaFx
The Brainify App - JavaFx
 
JavaFX Advanced
JavaFX AdvancedJavaFX Advanced
JavaFX Advanced
 
Scripting Oracle Develop 2007
Scripting Oracle Develop 2007Scripting Oracle Develop 2007
Scripting Oracle Develop 2007
 
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume LaforgeGroovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
 
GlassFish v3 : En Route Java EE 6
GlassFish v3 : En Route Java EE 6GlassFish v3 : En Route Java EE 6
GlassFish v3 : En Route Java EE 6
 
Gain more freedom when migrating from Camunda 7 to 8.pdf
Gain more freedom when migrating from Camunda 7 to 8.pdfGain more freedom when migrating from Camunda 7 to 8.pdf
Gain more freedom when migrating from Camunda 7 to 8.pdf
 
Java Fx - Return of client Java
Java Fx - Return of client JavaJava Fx - Return of client Java
Java Fx - Return of client Java
 

More from rajivmordani

X Aware Ajax World V1
X Aware Ajax World V1X Aware Ajax World V1
X Aware Ajax World V1rajivmordani
 
The Beauty Of Java Script V5a
The Beauty Of Java Script V5aThe Beauty Of Java Script V5a
The Beauty Of Java Script V5arajivmordani
 
Tripit Ajaxworld V5
Tripit Ajaxworld V5Tripit Ajaxworld V5
Tripit Ajaxworld V5rajivmordani
 
Sue Googe Spice Up Ux
Sue Googe Spice Up UxSue Googe Spice Up Ux
Sue Googe Spice Up Uxrajivmordani
 
Social Networking Intranet
Social Networking IntranetSocial Networking Intranet
Social Networking Intranetrajivmordani
 
Practical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter SvenssonPractical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter Svenssonrajivmordani
 
Server Side Javascript
Server Side JavascriptServer Side Javascript
Server Side Javascriptrajivmordani
 
Slow Cool 20081009 Final
Slow Cool 20081009 FinalSlow Cool 20081009 Final
Slow Cool 20081009 Finalrajivmordani
 
Pushing Datatothe Browserwith Comet Ajax W
Pushing Datatothe Browserwith Comet Ajax WPushing Datatothe Browserwith Comet Ajax W
Pushing Datatothe Browserwith Comet Ajax Wrajivmordani
 
I Phone Dev Summit Prezo Guy Naor Final
I Phone Dev Summit Prezo Guy Naor FinalI Phone Dev Summit Prezo Guy Naor Final
I Phone Dev Summit Prezo Guy Naor Finalrajivmordani
 
Netapp Michael Galpin
Netapp Michael GalpinNetapp Michael Galpin
Netapp Michael Galpinrajivmordani
 
Mike Grushin Developing Ugc Sites That Scale
Mike Grushin    Developing Ugc Sites That ScaleMike Grushin    Developing Ugc Sites That Scale
Mike Grushin Developing Ugc Sites That Scalerajivmordani
 
Good Parts of JavaScript Douglas Crockford
Good Parts of JavaScript Douglas CrockfordGood Parts of JavaScript Douglas Crockford
Good Parts of JavaScript Douglas Crockfordrajivmordani
 
Flying Pixels Ent Apps Jeremy Chone
Flying Pixels Ent Apps Jeremy ChoneFlying Pixels Ent Apps Jeremy Chone
Flying Pixels Ent Apps Jeremy Chonerajivmordani
 
Flex Flash And On Demand
Flex Flash And On DemandFlex Flash And On Demand
Flex Flash And On Demandrajivmordani
 
I Phone Dev Summit Lefty 03 07 08
I Phone Dev Summit Lefty 03 07 08I Phone Dev Summit Lefty 03 07 08
I Phone Dev Summit Lefty 03 07 08rajivmordani
 
I Phone Summit Dmeeker Final
I Phone Summit Dmeeker FinalI Phone Summit Dmeeker Final
I Phone Summit Dmeeker Finalrajivmordani
 

More from rajivmordani (20)

X Aware Ajax World V1
X Aware Ajax World V1X Aware Ajax World V1
X Aware Ajax World V1
 
The Beauty Of Java Script V5a
The Beauty Of Java Script V5aThe Beauty Of Java Script V5a
The Beauty Of Java Script V5a
 
Tripit Ajaxworld V5
Tripit Ajaxworld V5Tripit Ajaxworld V5
Tripit Ajaxworld V5
 
Sue Googe Spice Up Ux
Sue Googe Spice Up UxSue Googe Spice Up Ux
Sue Googe Spice Up Ux
 
Social Networking Intranet
Social Networking IntranetSocial Networking Intranet
Social Networking Intranet
 
Ssjs Presentation
Ssjs PresentationSsjs Presentation
Ssjs Presentation
 
Practical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter SvenssonPractical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter Svensson
 
Server Side Javascript
Server Side JavascriptServer Side Javascript
Server Side Javascript
 
Ria Enterprise
Ria EnterpriseRia Enterprise
Ria Enterprise
 
Slow Cool 20081009 Final
Slow Cool 20081009 FinalSlow Cool 20081009 Final
Slow Cool 20081009 Final
 
Pushing Datatothe Browserwith Comet Ajax W
Pushing Datatothe Browserwith Comet Ajax WPushing Datatothe Browserwith Comet Ajax W
Pushing Datatothe Browserwith Comet Ajax W
 
I Phone Dev Summit Prezo Guy Naor Final
I Phone Dev Summit Prezo Guy Naor FinalI Phone Dev Summit Prezo Guy Naor Final
I Phone Dev Summit Prezo Guy Naor Final
 
Netapp Michael Galpin
Netapp Michael GalpinNetapp Michael Galpin
Netapp Michael Galpin
 
Mike Grushin Developing Ugc Sites That Scale
Mike Grushin    Developing Ugc Sites That ScaleMike Grushin    Developing Ugc Sites That Scale
Mike Grushin Developing Ugc Sites That Scale
 
Good Parts of JavaScript Douglas Crockford
Good Parts of JavaScript Douglas CrockfordGood Parts of JavaScript Douglas Crockford
Good Parts of JavaScript Douglas Crockford
 
Flying Pixels Ent Apps Jeremy Chone
Flying Pixels Ent Apps Jeremy ChoneFlying Pixels Ent Apps Jeremy Chone
Flying Pixels Ent Apps Jeremy Chone
 
I Phone Dev
I Phone DevI Phone Dev
I Phone Dev
 
Flex Flash And On Demand
Flex Flash And On DemandFlex Flash And On Demand
Flex Flash And On Demand
 
I Phone Dev Summit Lefty 03 07 08
I Phone Dev Summit Lefty 03 07 08I Phone Dev Summit Lefty 03 07 08
I Phone Dev Summit Lefty 03 07 08
 
I Phone Summit Dmeeker Final
I Phone Summit Dmeeker FinalI Phone Summit Dmeeker Final
I Phone Summit Dmeeker Final
 

Recently uploaded

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 

Recently uploaded (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

Java Fx Ajaxworld Rags V1

  • 1. JavaFX: Incorporating Media and animation Raghavan N. Srinivas Technology Evangelist Sun Microsystems, Inc. 1
  • 2. Speaker > Rags ● CTO, Technology Evangelism ● Developing and deploying Java apps. for a decade (trying to anyway) ● HOL track lead for JavaOne; Author of JavaFX HOL for JavaOne 2007 and 2008 2
  • 3. Agenda • JavaFX Platform Overview • JavaFX Script Language features > Binding > Animation > Media > JavaFX Script from Java • Java SE 6 update 10 and Deployment basics • Tools, Summary and References 3
  • 4. JavaFX Vision JavaFX is THE platform for creating and delivering Rich Internet Applications across all the screens of your life JavaFX is Powered by Java 4
  • 5. JavaFX roadmap Desktop Product Line JavaFX Desktop (Fall 2008) Mobile Product Line JavaFX Mobile (Spring 2009) JavaFX TV TV Product Line (Summer 2009) Other Platforms With Partner platforms/OSs 5
  • 6. JavaFX Script Programming Language • Declarative, statically-typed scripting language • Facilitates rapid GUI development • Many cool, interesting language features • Runs on Virtual Machine for the Java™ platform • Deployment options same as Java programs • Fully utilizes Java class libraries behind the scenes • For content designers and Media engineers • binding – the swiss army knife 6
  • 7. Timing, Jgoodies Framework public ControlPanel(AnimationView animationView) { this.animationView = animationView; setLayout(new GridBagLayout()); intFormat = NumberFormat.getNumberInstance(); intFormat.setParseIntegerOnly(true); doubleFormat = NumberFormat.getNumberInstance(); setupCycleGUI(); setupEnvelopeGUI(); setupPropertySetterGUI(); setupAccelerationGUI(); setupActionsGUI(); // Animation View JPanel panel = new JPanel(new BorderLayout()); panel.add(animationView); ... } 7
  • 8. JavaFX code : Animation for everyone else var t = Timeline { repeatCount: bind rep autoReverse: bind autoRevCheckBox.selected toggle: bind toggleCheckBox.selected keyFrames: [ KeyFrame { time: 0ms values: [ x => 0, y => 0] }, KeyFrame { time: 2000ms values: [ x => 200 tween interpolate, y => 200 tween interpolate] } ] }; 8
  • 9. How to get started: Software Requirements • Java SE 6 Update 10 SDK • NetBeans IDE 6.1 with JavaFX Plugin OR pre- bundled NetBeans IDE 6.1 with JavaFX • JavaFX Preview SDK (Already bundled with the plugin) • Mozilla Firefox 3, Safari, Internet Explorer or Google Chrome 9
  • 10. NetBeans IDE 6.1 • JavaFX Plugin for NetBeans IDE 6.1 OR pre- bundled NetBeans IDE 6.1 for JavaFX > Support development cycle ● edit, compile, run, test > JavaFX project system > Includes automatic installation of JavaFX Preview SDK 10
  • 11. Components – JavaFX Preview SDK /lib javafxc.jar /docs javafxrt.jar javafxgui.jar /bin javafx-swing.jar javafxc.exe Scenario.jar javafx.exe Decora-D3D.jar /samples Decora-HW.jar SmokeScreenSample jmc.jar StopWatch jogl.jar jaxb*.jar 11
  • 12. Command Line Development • include <javafx-sdk>/bin in PATH • javafxc to compile • javafx to run • Relevant library files in <javafx-sdk>/lib are automatically included in classpath as necessary. Rest can be included with the -classpath option > With packages ● javafxc -d . simple/Main.fx ● javafx simple.Main > Without packages ● javafxc Main.fx ● javafx Main 12
  • 13. Agenda • JavaFX Platform Overview • JavaFX Script Language features > Binding > Animation > Media > JavaFX Script from Java • Java SE 6 & Deployment Basics • Summary and References 13
  • 14. Binding in JavaFX Script > Cause and Effect—Responding to change > The JavaFX Script bind operator—Allows dynamic content to be expressed declaratively > Dependency-based evaluation of any expression > Automated by the system—Rather than manually wired by the programmer > You just declare dependencies and the JavaFX runtime takes care of performing updates when things change > Eliminates listener patterns 14
  • 15. Example: Binding in JavaFX Script import javafx.application.*; import javafx.ext.swing.*; Frame { var a: String = quot;namequot;; title: quot;Hello Worldquot; width: 400 stage: Stage { content: ComponentView { component: BorderPanel { bottom: TextField { text: bind a with inverse} top: Label { text: bind quot;Hello {a}quot; } } } } visible: true } 15
  • 16. More Binding Examples public class User { public attribute userid: String; public attribute password: String; } // Create sequence var users = [ User {userid: quot;ragsquot; password: quot;everestquot; }, User {userid: quot;sridharquot; password: quot;hyderabadquot; }, User {userid: quot;inyoungquot; password: quot;koreaquot; }, ]; // Bind list to sequence of users var list = List{items: bind for (user in users) ListItem {text: bind quot;{user.userid}quot;}}; 16
  • 17. Agenda • JavaFX Platform Overview • JavaFX Script language features > Binding > Animation > Media > JavaFX Script from Java • Java SE 6 & Deployment basics • Summary and References 17
  • 18. Animation - javafx.animation.* KeyFrame action TimeLine canSkip autoReverse InterPolator time INDEFINITE timelines keyFrames DISCRETE values repeatCount EASEBOTH running EASEIN toggle EASEOUT LINEAR 18
  • 19. Animation • Timelines handles the animation in JavaFX • Timelines are first-class citizen in the language along with the duration time constants (1s, 10s) • They can have one or more KeyFrames • Methods: start(), stop(), pause(), resume() • Properties: autoReverse, repeatCount, toggle • BigDeal: Timelines are nestable! 19
  • 20. Animation var t = Timeline { repeatCount: bind rep autoReverse: bind autoRevCheckBox.selected toggle: bind toggleCheckBox.selected keyFrames: [ KeyFrame { time: 0ms values: [ x => 0, y => 0] }, KeyFrame { time: 2000ms values: [ x => 200 tween interpolate, y => 200 tween interpolate] } ] }; 20
  • 21. The “=>” literal constructor values: [x => 100 tween Interpolator.LINEAR] is equivalent to values: [KeyValue {target: pX, value: 100, interpolate: Interpolator.LINEAR}] where pX is “pointer of x” (obtained magically :-)) 21
  • 22. Animation Controls var buttons = FlowPanel { content: [ Button { text: quot;Startquot; action: function():Void { t.start(); } }, Button { text: quot;Stopquot; action: function():Void { t.stop(); } }, Button { text: quot;Pausequot; action: function():Void { t.pause(); } } ] }; 22
  • 24. Agenda • JavaFX Platform Overview • JavaFX Script language features > Binding > Animation > Media > JavaFX Script from Java • Java SE 6 & Deployment basics • Summary and References 24
  • 25. Design Goals • Media Playback is of primary importance • Simple API: only a few lines of coded needed • Cross platform A/V format required • Native support also desirable > “Mash ups” > Viewing local media • Zero Configuration plug in support > Drop in format support • Going beyond rectangular video > Support lightweight rendering > Integration with Scenegraph, FXScript, and 3D APIs 25
  • 26. Architectural Overview, JMC • Java Media Components > JMediaPlayer ● A JComponent that provides media playback > JMediaPane ● A JComponent that provided media playback without UI controls > MediaProvider ● Low level media player > Media Class ● For getting information about the media – Tracks – Metadata > Events and Exceptions 26
  • 27. Code Sample: Java Player class MediaDemo extends JFrame { MediaDemo() { JmediaPlayer mediaPlayer; try { mediaPlayer = new JMediaPlayer( new URI(quot;movie.movquot;)); } catch (Exception e) { System.out.println(quot;Error opening mediaquot; + e); System.exit(0); } add(mediaPlayer); mediaPlayer.play(); setVisible(true); } ... 27
  • 28. Media - javafx.scene.media.* MediaPlayer media Media autoPlay source MediaView volume resolutionX fullScreen REPEAT_FOREVER resoultionY mediaPlayer clip rotate transform effect 28
  • 29. Media in JavaFX • Media classes are part of javafx.scene.media package • Media, MediaPlayer and MediaView > MediaView is a Node ● has a MediaPlayer ● MediaPlayer has a Media object. > MediaView may be rotated, translated, sheared, and have filter effects applied to it. > Multiple views may be bound to single player. • MediaTimers allow functions to be invoked at key points in Media. • Other media events may be triggered 29
  • 30. Code Sample: JavaFX™ MediaPlayer var media = Media{source:”movie.mov”}; var player = MediaPlayer{media: media, autoPlay:true}; var mediaView = MediaView{mediaPlayer: player}; // To enable audio only, don't create MediaView MediaView{mediaPlayer:player, onMouseClicked: function(e) { if (player.paused) { player.play(); } else { player.pause(); } } // Add a clip and rotate clip: c; rotate: 90; } 30
  • 32. Agenda • JavaFX Platform Overview • JavaFX Script language features > Binding > Animation > Media > JavaFX Script from Java • Java SE 6 & Deployment basics • Tools, Summary and References 32
  • 33. Code Sample: JavaFX™ from Java // evaluate the FX script Object fxobject = scrEng.eval(script.toString()); // you could use the FXAdapter method // or use pure reflection Method method= fxobject.getClass().getMethod(quot;getJComponentquot;); JComponent component = (Jcomponent) method.invoke(fxobject); frame.add(component); 33
  • 34. Agenda • JavaFX Platform Overview • JavaFX Script language features > Binding > Animation > Media > JavaFX Script from Java • Java SE 6 & Deployment basics • Tools, Summary and References 34
  • 35. Consumer JRE Project Hamburg Java SE 6, Update X Java SE 6, Update N Java SE 6, Update 10 35
  • 36. Features • Java Quick Starter > Faster cold starts on most systems • Java Kernel > Shorter download + install + launch times • Deployment Toolkit > Simplifies using Java technology in a web browser 36
  • 37. Quickstarter • “Coldstart” vs. “Warmstart” • Root problem: > Large files + Disk access speed • Solution: QuickStarter > Pre-warm the disk cache • Note: QuickStarter != running VM > Smaller footprint, more targeted disk pages 37
  • 38. Install Time • Java's not small > J2SE 5.0: 7.1 MB > Java SE 6: 10+ MB > rt.jar: 40+ MB on disk • Lots of bits being moved around > Download, Unzip, Unpack200, Copying • Solution: Java Kernel > Download only core dependencies first > Launch application > Download and install in the background 38
  • 39. JRE sizes 39
  • 40. Look Mom! We Shrunk the JRE 40
  • 41. Architectural Overview Java Applet 1 Java Applet 2 HTML-Webpage Java Applet 3 41
  • 42. Architectural Overview Fat Client JVM 1 OS Process 2 Thin Server JVM OS Process 1 Fat Client JVM 2 OS Process 3 42
  • 43. Applets Reloaded • Ground-up rewrite of the Java Plug-In > Mostly in Java • Advanced new architecture > Out-of-process execution • Major benefits > Improved reliability > Support for larger Java heap sizes for applets > Better support for signed applets on Windows Vista > Support for per-applet JVM command-line arguments > Support for multiple simultaneous JRE versions 43
  • 44. Agenda • JavaFX Platform Overview • JavaFX Script Language features > Binding > Animation > Media > JavaFX Script from Java • Java SE 6 & Deployment basics • Tools, Summary and References 44
  • 45. Ajax and Java compared (for RIA) Ajax Java • Javascript-based • Java-based • No plugins • Plugins required • Simple effects, transition • Complex effects, and windows transition, windows • Does not work in • Can work in disconnected mode disconnected mode • Mobile phones? • Plans for mobile phones • Designer/Developer • Designer/Developer delineation is blurred delineation can be clear 45
  • 46. JavaFX Preview SDK • JavaFX Preview SDK since 31st July 2008 > http://openjfx.java.sun.com > http://www.javafx.com > available for Windows and MacOS • NetBeans 6.1 IDE and JavaFX Plugin > Available now and since 31st July 2008 • Desktop SDK 1.0 later this year • Project Nile 46
  • 47. Project Nile (Designer + Developer) • Photoshop and Illustrator plugins • FXD File Format • FXD Viewer • SVG Converter • Designer / Developer Collaboration 47
  • 48. JavaFX Summary • JavaFX is a Platform for creating rich internet applications (RIA) with immersive media and content, across all the screens of your life • JavaFX has familiarity with Java developers aimed at designers • Easier to write UI and Graphics programs • Timelines make animations very easy • Binding and other features make it easier • Possible to use JavaFX Script in Java • Java SE 6 update 10 is the deployment platform 48
  • 49. JavaFX References • http://javafx.com/ • https://openjfx.dev.java.net/ • http://openjfx-compiler.dev.java.net • http://scenegraph.dev.java.net • http://java.sun.com/javafx/ • http://java.sun.com/javafx/tutorials /project_nile_integrating_graphics/ • http://openjfx.java.sun.com/current-build/doc/index.html • http://www.netbeans.org 49
  • 50. Thank You!! Raghavan N. Srinivas Incorporating Media and animation into JavaFX and Java rags@sun.com 50