e(fx)clipse - JavaFX Tooling and Runtime



Similar documents
e(fx)clipse - JavaFX Tooling and Runtime

e(fx)clipse - JavaFX Tooling

e(fx)clipse - JavaFX Tooling and Runtime

Eclipse 4 Application Platform

Introduction to JavaFX. Tecniche di Programmazione A.A. 2012/2013

JavaFX Session Agenda

Outline. 1.! Development Platforms for Multimedia Programming!

How to use the Eclipse IDE for Java Application Development

Web Development with the Eclipse Platform

Entwicklung mit JavaFX

Java with Eclipse: Setup & Getting Started

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

JavaFX Die neue UI- Technologie im JDK 8

How To Write An Ria Application

Aspect Weaving for OSGi. Martin Lippert (akquinet it-agile GmbH)

Eclipse 4 RCP application Development COURSE OUTLINE

Rich Internet Applications

Java-based web-apps with the Rich Ajax Platform (RAP)

Hello! Let's adapt the Eclipse Data Binding library for Android App programming. It s great. Steffen Nowacki, PartMaster _Rostock/Germany_2011

ARM-BASED PERFORMANCE MONITORING FOR THE ECLIPSE PLATFORM

Eclipse Rich Client Platform. Kai Tödter Karsten Becker et al. Organized by:

Sabre Red Apps. Developer Toolkit Overview. October 2014

Eclipse with Mac OSX Getting Started Selecting Your Workspace. Creating a Project.

rich mobile applications made easy

QML and JavaScript for Native App Development

01. Introduction of Android

Using NetBeans IDE for Desktop Development. Geertjan Wielenga

Java Software Development Kit (JDK 5.0 Update 14) Installation Step by Step Instructions

Whitepaper. Rich Internet Applications. Frameworks Evaluation. Document reference: TSL-SES-WP0001 Januar

Duke University Program Design & Construction Course

E4 development: examples, methods and tools. Eclipse Con France 2014

Take full advantage of IBM s IDEs for end- to- end mobile development

Professional Test Automation. The GUI Test Tool for Java and Web

The Future of Java. Terrence Barr Senior Technologist, Oracle

File S1: Supplementary Information of CloudDOE

Lab 0 (Setting up your Development Environment) Week 1

Eclipse. Software Engineering with an Integrated Development Environment (IDE) Markus Scheidgen

Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010

<Insert Picture Here> Java, the language for the future

Equinox Framework: A Happier OSGi R6 Implementation

With a single download, the ADT Bundle includes everything you need to begin developing apps:

The Eclipse Scout Book Version 3.9 (Kepler)

JavaFX 3D Animation: Bringing Duke to Life

MSWL Development & Tool. Eclipse IDE

Using Eclipse to Run Java Programs

Installing IBM WDT with Web Development Extension for Power Systems Software

Java Application Development using Eclipse. Jezz Kelway Java Technology Centre, z/os Service IBM Hursley Park Labs, United Kingdom

1 Building, Deploying and Testing DPES application

The Decaffeinated Robot

Install Java Development Kit (JDK) 1.8

Crystal Reports for Eclipse

IRF2000 IWL3000 SRC1000 Application Note - Develop your own Apps with OSGi - getting started

Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months

Server-side OSGi with Apache Sling. Felix Meschberger Day Management AG 124

RIA Technologies Comparison

EMC Documentum Composer

1) SETUP ANDROID STUDIO

Practical Android Projects Lucas Jordan Pieter Greyling

Study of Development of Java Applications in Eclipse Environment and Development of Java Based Calendar Application with Notifications

Fahim Uddin 1. Java SDK

Next Generation Open Source Messaging with Apache Apollo

Demo: Embedding Windows Presentation Foundation elements inside a Java GUI application. Version 7.3

Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner

POOSL IDE Installation Manual

<Insert Picture Here> What's New in NetBeans IDE 7.2

Android Development Tools for Eclipse

Introduction to Eclipse, Creating Eclipse plug-ins and the Overture editor. David Holst Møller Engineering College of Aarhus

Practical Eclipse Rich Client Platform Projects

ANDROID APP DEVELOPMENT: AN INTRODUCTION CSCI /19/14 HANNAH MILLER

Selenium Automation set up with TestNG and Eclipse- A Beginners Guide

IBM Tivoli Workload Scheduler Integration Workbench V8.6.: How to customize your automation environment by creating a custom Job Type plug-in

Gyrex 0.10 Release Review

FUSE-ESB4 An open-source OSGi based platform for EAI and SOA

Smooks Dev Tools Reference Guide. Version: GA

Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy

Java Garbage Collection Basics

SETTING UP YOUR JAVA DEVELOPER ENVIRONMENT

Introduction to Android SDK Jordi Linares

Main Bullet #1 Main Bullet #2 Main Bullet #3

Java SE 6 Update 10. la piattaforma Java per le RIA. Corrado De Bari. Sun Microsystems Italia Spa. Software & Java Ambassador

Lecture 1 Introduction to Android

Installing Java. Table of contents

UI Performance Monitoring

Java ME & NetBeans Mobility. Petr Suchomel Architect, NetBeans Mobility Sun Microsystems

IDL. Get the answers you need from your data. IDL

Eclipse Platform Technical Overview

Production time profiling On-Demand with Java Flight Recorder

Applets, RMI, JDBC Exam Review

Cisco AnyConnect VPN Client Installation Guide for Single Factor Authentication: Windows

Transcription:

e(fx)clipse - JavaFX Tooling and Runtime Tom Schindl - BestSolution Systemhaus GmbH Cluj June 2012 (c) Tom Schindl - BestSolution Systemhaus GmbH

About Tom CEO BestSolution Systemhaus GmbH Eclipse Committer e4 Platform UI EMF Main developer of e(fx)clipse (c) Tom Schindl - BestSolution Systemhaus GmbH

What is JavaFX modern Graphics Toolkit for Java uses OpenGL and DirectX (when possible) Is almost cross-platform (Win & Mac GA, Linux is beta) Will get part of the JDK 8 Successor of Swing

What technologies are needed? Minimum Java or any other VM-Language (Scala, Groovy,...) Optimal Java or any other VM-Language CSS XML (FXML)

Why do we need e(fx)clipse package bsp; import javafx.application.application; import javafx.stage.stage; For Java we have JDT public class Example extends Application {! @Override! public void start(stage primarystage) {!! HBox root = FXMLLoader.load(getClass().getResource("Example.fxml"));!! Scene s = new Scene(root); s.getstylesheets().add(getclass().getresource("example.css").toexternalform());!! primarystage.setscene(s);! }! public static void main(string[] args) {!! launch(args);! } }

What does e(fx)clipse provide Enhancements for Java Tooling Wizards to create JavaFX projects (e.g. a specialized Classpath- Container) Packageing support for JavaFX applications

DEMO TIME JDT- Project

Why do we need e(fx)clipse For CSS we have WST #root {! -fx-background-color: linear-gradient(#686868 0%, #232723 25%, #373837 75%, #757575 100%), linear-gradient(#020b02, #3a3a3a), linear-gradient(#b9b9b9 0%, #c2c2c2 20%, #afafaf 80%, #c8c8c8 100%), linear-gradient(#f5f5f5 0%, #dbdbdb 50%, #cacaca 51%, #d7d7d7 100%);! } #button {! -fx-padding: 10;! -fx-background-color: red; }

What does e(fx)clipse provide CSS Provides auto-completion for JavaFX css properties Provides validation for JavaFX css properties Supports CSS 3 Selectors (which JavaFX itself doesn t fully) CSS-Editor based upon xtext Can be extended to teach it css new properties

Why do we need e(fx)clipse <?xml version="1.0" encoding="utf-8"?> <?import java.lang.*?> <?import javafx.scene.control.button?> <?import javafx.scene.layout.hbox?> <HBox xmlns:fx="http://javafx.com/fxml">! <children>!! <Button text="hello World"/>! </children> </HBox> For XML we have WST

What does e(fx)clipse provide FXML Is a serialization of an object graph (similar to XAML) Has NO fixed Schema or DTD FXML-Editor is a customized WST-XML-Editor provides auto-completion for attributes provides live preview of result SVG / FXG to FXML Converter

What does e(fx)clipse provide fxgraph JSON like object graph definition reduces the noise created by XML in FXML compiles to FXML no runtime libraries needed interopability with other tools like Scenebuilder, Netbeans,... No Expressions

Basic Structure package bsp import javafx.scene.layout.hbox import javafx.scene.control.button import bsp.examplecontroller component Example controlledby ExampleController styledwith "example.css" {! HBox {!! children : [!!! Button {!!!! text : "Hello World"!!! }!! ]! } }

Demo Time DEMO TIME FXML & FXGraph Tooling

RUNTIME

e(fx)clipse runtime Integration in Eclipse Databinding TextField f = new TextField(); IEMFValueProperty mprop = EMFProperties.value(MEDIA TITLE); IJFXBeanValueProperty tprop = JFXBeanProperties.value("text"); dbc.bindvalue(!! tprop.observe(f),!! mprop.observedetail(currentselection) ); Adapting to FX-Observable ObservableValue<Double> fxvalue = AdapterFactory.adapt(EMFProperties.value(PHOTO_AREA X).observe(eObject)) ObservableList<PhotoArea> fxlist = AdapterFactory.adapt(EMFProperties.list(PHOTO AREAS).observe(eObject));

e(fx)clipse runtime Adapting to FX-Observable is very nice e.g. for Tables photoareas = new TableView<PhotoArea>(); TableColumn<PhotoArea, String> col = new TableColumn<PhotoArea, String>(); col.settext("description"); col.setcellvaluefactory(new Callback<TableColumn.CellDataFeatures<PhotoArea,String>, ObservableValue<String>>() {!!!! @Override public ObservableValue<String> call(celldatafeatures<photoarea, String> param) {!! IObservableValue v = EMFProperties.value(PHOTO_AREA DESCRIPTION).observe(param.getValue());!! return AdapterFactory.adapt(v);! } }); ObservableList<PhotoArea> list = AdapterFactory.adapt(EMFProperties.list(PHOTO AREAS).observeDetail(currentSelection)); photoareas.setitems(list);

e(fx)clipse runtime Integration into Equinox-OSGi

e(fx)clipse runtime Integration into Equinox-OSGi public class Example extends Application {! @Override! public void start(stage primarystage) { // TODO Implement } }

e(fx)clipse runtime Integration into Equinox-OSGi public class Example extends Application {! @Override! public void start(stage primarystage) { // TODO Implement } } public class Example extends AbstractJFXApplication {! @Override! protected void jfxstart(iapplicationcontext context,!!! javafx.application.application jfxapplication,!!! Stage primarystage) {! // TODO Implement } }

e(fx)clipse runtime How does the integration work JavaFX does not directly support OSGi JavaFX 2.1 improved by providing the possibility to set classloaders e.g. when loading stuff using FXML Current integration uses Equinox Classloader Hooks Locate javafx.jar on the filesystem Bundle javafx.jar inside a bundle

DEMO TIME OSGi-App

Using JavaFX for Eclipse 3.x views JavaFX can be embedded into SWT and Swing Containers for SWT integration widget is FXCanvas FXCanvas canvas = new FXCanvas(parent, SWT.NONE); Button b = new Button("Hello SWT"); canvas.setscene(new Scene(b));

DEMO TIME Create 3.x View

Eclipse 4.1 Application Platform (c) Tom Schindl - BestSolution Systemhaus GmbH

Eclipse 4.1 Application Platform EMF Framework Eclipse 4 Application Platform OSGi (Equinox) JRE (c) Tom Schindl - BestSolution Systemhaus GmbH

Eclipse 4.1 Application Platform Services DI-Container Workbench Model EMF Framework Eclipse 4 Application Platform OSGi (Equinox) JRE (c) Tom Schindl - BestSolution Systemhaus GmbH

Eclipse 4.1 Application Platform App SWT-UI Core-Business-Logic Framework EAP-SWT Services DI-Container Workbench Model Eclipse 4 Application Platform OSGi (Equinox) JRE (c) Tom Schindl - BestSolution Systemhaus GmbH EMF

Eclipse 4.1 Application Platform App SWT-UI JFX-UI Core-Business-Logic Framework EAP-SWT EAP-JFX Services DI-Container Workbench Model Eclipse 4 Application Platform OSGi (Equinox) JRE (c) Tom Schindl - BestSolution Systemhaus GmbH EMF

DEMO TIME e4-app

What does the future hold? All major tooling feature are done with 0.0.13 CSS-Editor FXML and fxgraph-editor Integration with external tools (Scenebuilder, FXperience-Tools) All runtime features are done Maybe Felix support? e4 integration will stay in prototype stage longer

What does the future hold? Moveing to Eclipse Maybe after Juno Release done Freeing our bandwidth (last release ~2.400 downloads in 8 weeks) Problem that PDE has to be patched for now

Resources Homepage: http://www.efxclipse.org My blog: http://tomsondev.bestsolution.at e4-wiki: http://wiki.eclipse.org/e4 e4-newsgroup: eclipse.e4 e4-mailinglist: e4-dev@eclipse.org Twitter: @tomsontom (c) Tom Schindl - BestSolution Systemhaus GmbH