TLCPowerTalk.com Communication for Management Professionals QCon - - PowerPoint PPT Presentation

tlcpowertalk com
SMART_READER_LITE
LIVE PREVIEW

TLCPowerTalk.com Communication for Management Professionals QCon - - PowerPoint PPT Presentation

TLCPowerTalk.com Communication for Management Professionals QCon London 2009 (c) 12 March by Peter Pilgrim www.devoxx.com 1 Peter Pilgrim JAVAWUG.com,Sun Java Champion, Lloyds TSB Corporate Markets QCon London 2009 (c) 12 March by Peter


slide-1
SLIDE 1

www.devoxx.com

TLCPowerTalk.com

Communication for Management Professionals

QCon London 2009 (c) 12 March by Peter Pilgrim 1

slide-2
SLIDE 2

Peter Pilgrim

JAVAWUG.com,Sun Java Champion, Lloyds TSB Corporate Markets

QCon London 2009 (c) 12 March by Peter Pilgrim 2

slide-3
SLIDE 3

 Enterprise JavaFX for the Web Platform

  • -Peter Pilgrim

 Java Modularity OSGi

  • – Neil Bartlett

 Groovy and Grails

  • – Graeme Rocher

 Spring Today and Tomorrow

  • – Rod Johnson

 Data Grid Design Pattern

  • – Brian Oliver

QCon London 2009 (c) 12 March by Peter Pilgrim 3

slide-4
SLIDE 4

Peter Pilgrim

JAVAWUG.com,Sun Java Champion, Lloyds TSB Corporate Markets

QCon London 2009 (c) 12 March by Peter Pilgrim 4

slide-5
SLIDE 5

QCon London 2009 (c) 12 March by Peter Pilgrim 5

slide-6
SLIDE 6

 Rich Internet Applications and JavaFX  Deployment of JavaFX Clients  Integration Client with Server  The Way Forward

QCon London 2009 (c) 12 March by Peter Pilgrim 6

slide-7
SLIDE 7

Visual Metaphors HTML Independent Downloadable Runtime Graphics Engine Rich Media

QCon London 2009 (c) 12 March by Peter Pilgrim 7

slide-8
SLIDE 8

QCon London 2009 (c) 12 March by Peter Pilgrim 8

slide-9
SLIDE 9

 Object oriented scripting language  Stage  Scene  MediaView  MediaPlayer  Media

QCon London 2009 (c) 12 March by Peter Pilgrim 9

slide-10
SLIDE 10

 Leverages the Java Platform  Statically Compiled DSL for the JVM (SDK)  Runtime for Desktop & Mobile RIA  Java Media Component API  Java 6 update 12 JDK / JRE

QCon London 2009 (c) 12 March by Peter Pilgrim 10

slide-11
SLIDE 11

 Stage – container for

scene (JFrame, JApplet)

  • Desktop profile

supports translucency

  • Mobile profile

specialised UI container

 Scene – container for

the UI scenegraph

QCon London 2009 (c) 12 March by Peter Pilgrim 11

slide-12
SLIDE 12

Group Scene Custom Node Group Circle PolyLine Swing Label Image View Media View

QCon London 2009 (c) 12 March by Peter Pilgrim 12

slide-13
SLIDE 13

QCon London 2009 (c) 12 March by Peter Pilgrim 13

slide-14
SLIDE 14

 Expression based scripting language  Declarative and Object Oriented  Based on Chris Oliver ideas from JavaScript,

Miranda, SQL and Lisp

 However, integrates with Java

QCon London 2009 (c) 12 March by Peter Pilgrim 14

slide-15
SLIDE 15

abstract after and as assert at attribute before bind bound break catch class continue def delete else exclusive extends false finally first for from function if import indexof in init insert instanceof into inverse last lazy mod new not null on or override package postinit private protected public-init public public- read replace return reverse sizeof static step super then this throw trigger true try tween typeof var where while with

QCon London 2009 (c) 12 March by Peter Pilgrim 15

slide-16
SLIDE 16

 No primitives allowed. Wrapped Primitives.  Boolean, Character, Byte, Short, Integer,

Long, Number, Float and Double

  • Number defaults to a Float (for performance)

 String, Duration  Sequences element[index]  Void

QCon London 2009 (c) 12 March by Peter Pilgrim 16

slide-17
SLIDE 17

var red = Rectangle { fill:Color.RED x: 50; y: 50; width: 320 height: 240 arcWidth: 24 arcHeight: 24} var text = Text { x: 100 y: 100 font: Font { size: 64 } content: “The Red\nDevils” } var stage = Stage { width: 400 height: 300 scene: Scene { content: [ red, text ] } style: StageStyle.TRANSPARENT }

QCon London 2009 (c) 12 March by Peter Pilgrim 17

slide-18
SLIDE 18

 Live coding Example  NetBeans 6.5  Transparency

QCon London 2009 (c) 12 March by Peter Pilgrim 18

slide-19
SLIDE 19

// A sequence of Strings [ “red”, “green”, “gold” ] // A sequence of Integer [ 21, 31, 44, 65, 95 ] // Range of Integers from 0, 1, 2 to 100 [0 .. 100] // Range of Integers from 0, 1, 2 to 99 [0 .. <100]

QCon London 2009 (c) 12 March by Peter Pilgrim 19

slide-20
SLIDE 20

var fruits[] = { “Apple”, “Pear”, “Orange” }; // Prints “First element is Apple FX.println( “First element is {fruits[0]}” ); // Prints 3 FX.println( sizeof fruits ) var empty[]; // Prints 0 FX.println( sizeof empty );

QCon London 2009 (c) 12 March by Peter Pilgrim 20

slide-21
SLIDE 21

 Nested sequences are automatically

flattened var seq = [ [ 1,2,3, [4,5,6] ], [7, 8, 9] ]; for ( e in seq ) { FX.println( “{indexof e}-{e}” ); } // Prints 0-1 1-2 2-3 3-4 4-5 5-6 6-7 7-8 8-9

QCon London 2009 (c) 12 March by Peter Pilgrim 21

slide-22
SLIDE 22

var names=[ ”Khan”, ”Bush Jr”]; insert “Obama” into names; // [ “Khan”, “Bush Jr”, “Obama” ] insert [ “Reagan”, “Bush Sr” ] before names[0]; // [ “Reagan”, “Bush Sr”, “Khan”, “Bush Jr”, “Obama” ] delete names[2]; delete “Khan” from names; // [ “Reagan”, “Bush Sr”, “Bush Jr”, “Obama” ] insert “Clinton” after names[1];

QCon London 2009 (c) 12 March by Peter Pilgrim 22

slide-23
SLIDE 23

QCon London 2009 (c) 12 March by Peter Pilgrim 23

foo : Float bar: String var foo: Float = 3.14596527; var bar: String = bind “bar={foo}”; FX.println(bar); // bar=3.141596527 foo = 27.471; FX.println(bar); // bar=27.471

slide-24
SLIDE 24

var x = 7 on replace oldValue { FX.println("x was {oldValue} and is now: {x}") }; // Prints x was 7 and is now: 12 x = 12;

QCon London 2009 (c) 12 March by Peter Pilgrim 24

slide-25
SLIDE 25

var data: Float[] = {10.2, 74.4, 82.7 }

  • n replace oldValue[firstIdx .. lastIdx] = newElements {

println("replaced {oldValue}[{firstIdx}..{lastIdx}] by {newElements} yielding {data}") }; // Prints “replaced [10.2, 74.4, 82.7]{4..3} by 3.14 yielding [10.2, 74.4, 82.7, 3.14 ] insert 3.14 into data; // Prints “replaced [10.2, 74.4, 82.7, 3.14]{2..2} by null yielding [10.2, 74.4, 3.14 ] delete data[2];

QCon London 2009 (c) 12 March by Peter Pilgrim 25

slide-26
SLIDE 26

public class Dimension2D { public var width: Float; public var height: Float; public function override toString() { return "Dimension2D( width={width}, height={height} )"; } // Object literal syntax var prefSize = Dimension2D{ width: 640 height: 480 }; prefSize.width = 1920; prefSize.height = 1200;

QCon London 2009 (c) 12 March by Peter Pilgrim 26

slide-27
SLIDE 27

 Live Coding Example  RGB Color Mixer

QCon London 2009 (c) 12 March by Peter Pilgrim 27

slide-28
SLIDE 28

 HBox – Horizontal

layout container

 VBox –Vertical layout

container

 Custom layouts

  • Write your own
  • See JFXtras Project for

Grid and MigLayout

QCon London 2009 (c) 12 March by Peter Pilgrim 28

VBox 1 2 3 HBox 1 2 3

slide-29
SLIDE 29

 My Personal Layouts

  • Perspective Tabbed Pane
  • Animated Tabbed Pane
  • MigLayout Example

QCon London 2009 (c) 12 March by Peter Pilgrim 29

slide-30
SLIDE 30

QCon London 2009 (c) 12 March by Peter Pilgrim 30

Timeline Key Frame (0s) Key Value Interpolator Key Frame (1s) Key Value Interpolator 0..* 0..* 1..* 1..*

slide-31
SLIDE 31

var t1 = Timeline { repeatCount: Timeline.INDEFINITE keyFrames: [ KeyFrame { time: 0s values: [ angle => 180, xpos => 0 ] }, KeyFrame { time: 4s values: [ angle => -180, xpos => 400 tween Interpolator.EASEBOTH ] } ] }; t1.play();

QCon London 2009 (c) 12 March by Peter Pilgrim 31

slide-32
SLIDE 32

Here is one I partially prepared earlier. JavaFXTimeline

QCon London 2009 (c) 12 March by Peter Pilgrim 32

slide-33
SLIDE 33

 Animations for a single purpose

  • Translation/Scale/Rotation/Fade
  • Animation along a path
  • Containers for complex animation

▪ SequentialTransition ▪ ParallelTransition ▪ PauseTransition

QCon London 2009 (c) 12 March by Peter Pilgrim 33

slide-34
SLIDE 34

Transitions Fade Translate Rotate Scale Parallel Sequence

QCon London 2009 (c) 12 March by Peter Pilgrim 34

slide-35
SLIDE 35

QCon London 2009 (c) 12 March by Peter Pilgrim 35

slide-36
SLIDE 36

 Javafxpackager to generate a JAR  Write a Java Network Launching Protocol (JNLP) file  Upload the JARS and JNLP file  On the client side, theJavaFX Runtime will

download the appropriate JRE runtime e.g. “Consumer JRE”

QCon London 2009 (c) 12 March by Peter Pilgrim 36

slide-37
SLIDE 37

 Java Kernel

  • Sun Microsystems modularised JRE

 Java Quickstarter  Deployment Kit  Accelerated Graphics  DraggableApplets

QCon London 2009 (c) 12 March by Peter Pilgrim 37

slide-38
SLIDE 38

QCon London 2009 (c) 12 March by Peter Pilgrim 38

slide-39
SLIDE 39

 FX Libraries support XML / JSON Parsers  Asynchronous HTTP requests  Invoke RESTfulWeb Services

QCon London 2009 (c) 12 March by Peter Pilgrim 39

slide-40
SLIDE 40

def request = HttpRequest { location: “http://api.flick.com/.../rest/?method=...” method: HttpRequest.GET

  • nInput: function( is: InputStream ) {

try { // parse the content } finally { is.close(); } } } // Start the request, executes on the EDT request.enqueue();

QCon London 2009 (c) 12 March by Peter Pilgrim 40

slide-41
SLIDE 41

 Use the javafx.data.PullParser to parse XML

into data objects

 Or how about using Codehaus XStream in

JavaFX? Yes we can!

QCon London 2009 (c) 12 March by Peter Pilgrim 41

slide-42
SLIDE 42

QCon London 2009 (c) 12 March by Peter Pilgrim 42

slide-43
SLIDE 43

 HTML Web Pages  Applets  JavaScript / DOM

QCon London 2009 (c) 12 March by Peter Pilgrim 43

slide-44
SLIDE 44

 Corporate packagement of RIA (JavaFX)

application

 See WidgetFX (BSD license)

QCon London 2009 (c) 12 March by Peter Pilgrim 44

slide-45
SLIDE 45

 Lack of traction on the JSR 186 and 286

portal servers

 Lack of successful models may drive RIA

portals based on Flex and/or JavaFX

QCon London 2009 (c) 12 March by Peter Pilgrim 45

slide-46
SLIDE 46

QCon London 2009 (c) 12 March by Peter Pilgrim 46

slide-47
SLIDE 47

 Easy and Accessible Rich Media  Bindings, Triggers and Sequences  Write YOUR JavaFX applications today!

Deploy to desktop, target mobile phones

 In the Summer 2009 expect JavaFX 1.5

QCon London 2009 (c) 12 March by Peter Pilgrim 47

slide-48
SLIDE 48

 My Email peter.pilgrim at gmail dot com  My Blog roll http://jroller.com/peter_pilgrim  JavaFX main site http://javafx.com/  NetBeans 6.5 IDE

http://www.netbeans.org/features/javafx/index.html

 JFXtras Project http://code.google.com/p/jfxtras/  JavaFX Language Reference Docs

http://openjfx.java.sun.com/current- build/doc/reference/JavaFXReference.html

 JAVAWUG http://jroller.com/javawug

QCon London 2009 (c) 12 March by Peter Pilgrim 48