SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
Visage
Declarative Language for
expressing user interfaces
What is Visage ?

● Language Based on F3/JavaFX Script
● Statically Compiled Language
● A Domain Specific Language for writing
  GUI in a Natural way
Why Visage?
●   Make the UI design simpler and let the
    developer to work on more artistic things
●   You are documenting the code even
    though you are not aware of it.
●   Supports Closure
●   Application will run with the default values.
    Null & Undefined won't stop the App.
●   CSS Support
Visage the JavaFX Hybrid
● Foolproof Default Values.
● New variables:
       Angles: 90deg,18rad,5turn
       Colors: #FFF,#GDY53RT|AA
       Length:
● Null & undefined Value Checker.
Platforms to be Support
We are planning to Support these platforms,

● JavaFX2.0
● Vaadin
● Android
Advantages
● Any JavaFX script programmer would feel
  at home.
● Graphical Structure of writing is self
  contained and understandable.
● Easy to learn and implement
● Stable Compiler
● Easy Programming Constructs such as
  binding and transitions etc.
● Less code, More Productive.
Prerequisites
●   JDK1.7
●   JavaFX 2.0+
●   Visage Compiler
●   VisageFX.jar(Bindings for JAvaFX)
●   IDE(Netbeans,Sublime or Notepad)
Philosophy
Visage Datatypes
Visage Operators
Visage Operators
Access Modifiers
Introduction to Scene Graph
● Its a Tree Data Structure
● It maintains the internal model of graphical
  objects in an application(retained mode)
● To reduce code system automatically
  handles the rendering details using Scene
  Graph API
● Elements within scene graph are called as
  nodes and each can be treated
  individually.
Sample Node

                            Root,Branch and Leaf
                            Nodes




 Specific Root,Branch and
 Leaf Classes
Build Tools/IDE Support
● Ant
      i. Download the Test Project from the repository
     ii. Open it in Netbeans IDE
    iii. Add the lines mentioned below as a task in
         build.xml
    iv. <target name="jfxsa-run" depends="run"/>


Note:Ant must be installed and ANT_HOME
must be set as environment variable.
Build Tool/IDE Support
● Gradel
  a. Its a Gradel Plugin for building as well as running
     the VisageFX Application
  b. You just need to include build.gradel into your
     project folder
  c. Instructions related to Gradel is available on
     GitHub at
Prerequisites
1. JDK7
2. Gradel
3. VisageFX.jar / VIsage Compiler.
Build Tool/IDE Support
● Use your Favourite Code Editor
● We Recommend you to use Sublime or
  Vim Editor for your purpose.
● Since the language highlighting is
  supported in most of the JavaScript
  Editors
● Netbeans can also be used for the
  purpose of Development and
  enhancement.
Hello Visage
Stage {
    title: "Hello Beautiful Visage"
        Scene
        {    width: 700
             height: 600
             fill: Color.LIGHTGREY
            Group {
                   [Text{text:"Hello Visage" x: 500 y: 500 } ]
                  }
        }
   }
Hello Lazy JavaFX
public void start(Stage primaryStage) {
     Text t = new Text();
     t.setText("Hello Lazy JavaFX");
     StackPane root = new StackPane();
     root.getChildren().add(t);
     Scene scene = new Scene(root, 300, 250);
     primaryStage.setTitle("Hello Lazy JavaFx!");
     primaryStage.setScene(scene);
     primaryStage.show();
  }
Vaadin in Visage
Why Vaadin

  ○   Rich Set of UI Controls
  ○   Java->Javascript Compiler
          Write Custom UI Components in Visage
  ○   Vaadin Brings Visage to the Web!
Java Vaadin Application
public class SimpleApplication extends Application {
   @Override
   public void init() {
       Window mainWindow = new Window("Simple
Application");
       Label label = new Label("Hello 33rd Degrees!");
       mainWindow.addComponent(label);
       setMainWindow(mainWindow);
   }
}
Visage Vaadin App [Unoptimized]
public class VisagevaadinApplication extends
Application {
   override function init() {
       def mainWindow = new Window("Unoptimized
Visage Vaadin Application");
       def label = new Label("Hello Visage User");
       mainWindow.addComponent(label);
       setMainWindow(mainWindow);
   }
}
Visage Vaadin App [Optimized]
public class VisagevaadinApplication2 extends
Application {
   override var window = Window {
       caption: "Optimized Visage Vaadin Application"
       Label {
           content: "Hello Expert Visage Coder"
       }
   }
}
Visage Vaadin Address Book Demo
Visage For Android
Visage On Android



    Visage         Java Byte Code   Dalvik Byte Code




●   Visage Runs as a Native App on Android
●   Full Access to all the Android APIs
●   Declarative Layer on Top of Android APIs
Android XML Code
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.
com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Hello World, HelloVisage"
    />
</LinearLayout>
Java Code
public class HelloVisage extends Activity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedIS) {
     super.onCreate(savedIS);
     setContentView(R.layout.main);
  }
}
JavaFx Conversion
public class HelloVisage extends Activity {
  override function onCreate(savedInstanceState:
Bundle) {
    super.onCreate(savedInstanceState);
    def context = getApplicationContext();
    def layout = new LinearLayout(context);
    layout.setOrientation(LinearLayout.VERTICAL);
    def text = new TextView(context);
    text.setText("Hello World, Long Visage");
    layout.addView(text);
    setContentView(layout);
  }
}
Android JavaFX Code
public class HelloVisage extends Activity {
  override var view = LinearLayout {
     orientation: Orientation.VERTICAL
     view: TextView {
        text: "Hello World, Beautified Visage"
     }
  }
}
Working Hello Visage Application
Follow these people for VisageFX
●   @steveonjava
●   @William_Antonio
●   @rajonjava
●   @arivu86
●   @shivkumarganesh
Thank You
Contact Us
@shivkumarganesh-gshiv.sk@gmail.com
@arivu86-arivu86@gmail.com

Weitere ähnliche Inhalte

Was ist angesagt?

The Gist of React Native
The Gist of React NativeThe Gist of React Native
The Gist of React NativeDarren Cruse
 
Creating books app with react native
Creating books app with react nativeCreating books app with react native
Creating books app with react nativeAli Sa'o
 
How to Implement Basic Angular Routing and Nested Routing With Params in Angu...
How to Implement Basic Angular Routing and Nested Routing With Params in Angu...How to Implement Basic Angular Routing and Nested Routing With Params in Angu...
How to Implement Basic Angular Routing and Nested Routing With Params in Angu...Katy Slemon
 
React Native custom components
React Native custom componentsReact Native custom components
React Native custom componentsJeremy Grancher
 
45 Tools to Boost Your Front-End
45 Tools to Boost Your Front-End45 Tools to Boost Your Front-End
45 Tools to Boost Your Front-EndNicolas PENNEC
 
An Intro to Angular 2
An Intro to Angular 2An Intro to Angular 2
An Intro to Angular 2Ron Heft
 
Android Jump Start
Android Jump StartAndroid Jump Start
Android Jump StartHaim Michael
 
React Native Workshop - React Alicante
React Native Workshop - React AlicanteReact Native Workshop - React Alicante
React Native Workshop - React AlicanteIgnacio Martín
 
Top 7 Angular Best Practices to Organize Your Angular App
Top 7 Angular Best Practices to Organize Your Angular AppTop 7 Angular Best Practices to Organize Your Angular App
Top 7 Angular Best Practices to Organize Your Angular AppKaty Slemon
 
Reactjs Introduction - Virtual DOM
Reactjs Introduction - Virtual DOMReactjs Introduction - Virtual DOM
Reactjs Introduction - Virtual DOMTamir Azrab
 
Muhammad azamuddin introduction-to-reactjs
Muhammad azamuddin   introduction-to-reactjsMuhammad azamuddin   introduction-to-reactjs
Muhammad azamuddin introduction-to-reactjsPHP Indonesia
 
What's This React Native Thing I Keep Hearing About?
What's This React Native Thing I Keep Hearing About?What's This React Native Thing I Keep Hearing About?
What's This React Native Thing I Keep Hearing About?Evan Stone
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React NativePolidea
 
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...Olivier Destrebecq
 
React Native "A Bad Idea Or A Game Changer" at Code Mania 101
React Native "A Bad Idea Or A Game Changer" at Code Mania 101React Native "A Bad Idea Or A Game Changer" at Code Mania 101
React Native "A Bad Idea Or A Game Changer" at Code Mania 101Ranatchai Chernbamrung
 
Build a lego app with CocoaPods
Build a lego app with CocoaPodsBuild a lego app with CocoaPods
Build a lego app with CocoaPodsCocoaHeads France
 
Angular 2 vs React. What to chose in 2017?
Angular 2 vs React. What to chose in 2017?Angular 2 vs React. What to chose in 2017?
Angular 2 vs React. What to chose in 2017?TechMagic
 
End-to-end web-testing in ruby ecosystem
End-to-end web-testing in ruby ecosystemEnd-to-end web-testing in ruby ecosystem
End-to-end web-testing in ruby ecosystemAlex Mikitenko
 

Was ist angesagt? (20)

The Gist of React Native
The Gist of React NativeThe Gist of React Native
The Gist of React Native
 
Creating books app with react native
Creating books app with react nativeCreating books app with react native
Creating books app with react native
 
How to Implement Basic Angular Routing and Nested Routing With Params in Angu...
How to Implement Basic Angular Routing and Nested Routing With Params in Angu...How to Implement Basic Angular Routing and Nested Routing With Params in Angu...
How to Implement Basic Angular Routing and Nested Routing With Params in Angu...
 
React Native custom components
React Native custom componentsReact Native custom components
React Native custom components
 
45 Tools to Boost Your Front-End
45 Tools to Boost Your Front-End45 Tools to Boost Your Front-End
45 Tools to Boost Your Front-End
 
An Intro to Angular 2
An Intro to Angular 2An Intro to Angular 2
An Intro to Angular 2
 
Android Jump Start
Android Jump StartAndroid Jump Start
Android Jump Start
 
React Native Workshop - React Alicante
React Native Workshop - React AlicanteReact Native Workshop - React Alicante
React Native Workshop - React Alicante
 
Top 7 Angular Best Practices to Organize Your Angular App
Top 7 Angular Best Practices to Organize Your Angular AppTop 7 Angular Best Practices to Organize Your Angular App
Top 7 Angular Best Practices to Organize Your Angular App
 
Reactjs Introduction - Virtual DOM
Reactjs Introduction - Virtual DOMReactjs Introduction - Virtual DOM
Reactjs Introduction - Virtual DOM
 
Muhammad azamuddin introduction-to-reactjs
Muhammad azamuddin   introduction-to-reactjsMuhammad azamuddin   introduction-to-reactjs
Muhammad azamuddin introduction-to-reactjs
 
What's This React Native Thing I Keep Hearing About?
What's This React Native Thing I Keep Hearing About?What's This React Native Thing I Keep Hearing About?
What's This React Native Thing I Keep Hearing About?
 
Call ringout app
Call ringout appCall ringout app
Call ringout app
 
Introduction to React Native
Introduction to React NativeIntroduction to React Native
Introduction to React Native
 
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
 
React Native "A Bad Idea Or A Game Changer" at Code Mania 101
React Native "A Bad Idea Or A Game Changer" at Code Mania 101React Native "A Bad Idea Or A Game Changer" at Code Mania 101
React Native "A Bad Idea Or A Game Changer" at Code Mania 101
 
Build a lego app with CocoaPods
Build a lego app with CocoaPodsBuild a lego app with CocoaPods
Build a lego app with CocoaPods
 
Angular 2 vs React. What to chose in 2017?
Angular 2 vs React. What to chose in 2017?Angular 2 vs React. What to chose in 2017?
Angular 2 vs React. What to chose in 2017?
 
React native
React nativeReact native
React native
 
End-to-end web-testing in ruby ecosystem
End-to-end web-testing in ruby ecosystemEnd-to-end web-testing in ruby ecosystem
End-to-end web-testing in ruby ecosystem
 

Ähnlich wie Visage fx

Visage Android Hands-on Lab (OSCON)
Visage Android Hands-on Lab (OSCON)Visage Android Hands-on Lab (OSCON)
Visage Android Hands-on Lab (OSCON)Stephen Chin
 
Visage Android Hands-on Lab
Visage Android Hands-on LabVisage Android Hands-on Lab
Visage Android Hands-on LabStephen Chin
 
Visage Android - Cleaner APIs, Cleaner UIs
Visage Android - Cleaner APIs, Cleaner UIsVisage Android - Cleaner APIs, Cleaner UIs
Visage Android - Cleaner APIs, Cleaner UIsStephen Chin
 
The Brainify App - JavaFx
The Brainify App - JavaFxThe Brainify App - JavaFx
The Brainify App - JavaFxMohd Shamweel
 
Java Fx Ajaxworld Rags V1
Java Fx Ajaxworld Rags V1Java Fx Ajaxworld Rags V1
Java Fx Ajaxworld Rags V1rajivmordani
 
Griffon: Re-imaging Desktop Java Technology
Griffon: Re-imaging Desktop Java TechnologyGriffon: Re-imaging Desktop Java Technology
Griffon: Re-imaging Desktop Java TechnologyJames Williams
 
Developer Student Clubs NUK - Flutter for Beginners
Developer Student Clubs NUK - Flutter for BeginnersDeveloper Student Clubs NUK - Flutter for Beginners
Developer Student Clubs NUK - Flutter for BeginnersJiaxuan Lin
 
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web ToolkitJava Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web ToolkitIMC Institute
 
Applications use in Java GUIThe Java GUI consists of a separate, .pdf
Applications use in Java GUIThe Java GUI consists of a separate, .pdfApplications use in Java GUIThe Java GUI consists of a separate, .pdf
Applications use in Java GUIThe Java GUI consists of a separate, .pdfakshay1213
 
Ignite your app development with Angular, NativeScript and Firebase
Ignite your app development with Angular, NativeScript and FirebaseIgnite your app development with Angular, NativeScript and Firebase
Ignite your app development with Angular, NativeScript and FirebaseJen Looper
 
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache CordovaHazem Saleh
 
Javascript as a target language - GWT KickOff - Part 2/2
Javascript as a target language - GWT KickOff - Part 2/2Javascript as a target language - GWT KickOff - Part 2/2
Javascript as a target language - GWT KickOff - Part 2/2JooinK
 
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010JUG Lausanne
 
Scripting Oracle Develop 2007
Scripting Oracle Develop 2007Scripting Oracle Develop 2007
Scripting Oracle Develop 2007Tugdual Grall
 
Cross Platform Mobile App Development
Cross Platform Mobile App DevelopmentCross Platform Mobile App Development
Cross Platform Mobile App DevelopmentAnnmarie Lanesey
 
Vaadin 7 CN
Vaadin 7 CNVaadin 7 CN
Vaadin 7 CNjojule
 
Lecture android best practices
Lecture   android best practicesLecture   android best practices
Lecture android best practiceseleksdev
 
Rapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTRapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTManuel Carrasco Moñino
 

Ähnlich wie Visage fx (20)

Visage Android Hands-on Lab (OSCON)
Visage Android Hands-on Lab (OSCON)Visage Android Hands-on Lab (OSCON)
Visage Android Hands-on Lab (OSCON)
 
Visage Android Hands-on Lab
Visage Android Hands-on LabVisage Android Hands-on Lab
Visage Android Hands-on Lab
 
Visage Android - Cleaner APIs, Cleaner UIs
Visage Android - Cleaner APIs, Cleaner UIsVisage Android - Cleaner APIs, Cleaner UIs
Visage Android - Cleaner APIs, Cleaner UIs
 
The Brainify App - JavaFx
The Brainify App - JavaFxThe Brainify App - JavaFx
The Brainify App - JavaFx
 
Java Fx Ajaxworld Rags V1
Java Fx Ajaxworld Rags V1Java Fx Ajaxworld Rags V1
Java Fx Ajaxworld Rags V1
 
Griffon: Re-imaging Desktop Java Technology
Griffon: Re-imaging Desktop Java TechnologyGriffon: Re-imaging Desktop Java Technology
Griffon: Re-imaging Desktop Java Technology
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Developer Student Clubs NUK - Flutter for Beginners
Developer Student Clubs NUK - Flutter for BeginnersDeveloper Student Clubs NUK - Flutter for Beginners
Developer Student Clubs NUK - Flutter for Beginners
 
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web ToolkitJava Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
 
Applications use in Java GUIThe Java GUI consists of a separate, .pdf
Applications use in Java GUIThe Java GUI consists of a separate, .pdfApplications use in Java GUIThe Java GUI consists of a separate, .pdf
Applications use in Java GUIThe Java GUI consists of a separate, .pdf
 
Ignite your app development with Angular, NativeScript and Firebase
Ignite your app development with Angular, NativeScript and FirebaseIgnite your app development with Angular, NativeScript and Firebase
Ignite your app development with Angular, NativeScript and Firebase
 
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova
[JMaghreb 2014] Developing JavaScript Mobile Apps Using Apache Cordova
 
Javascript as a target language - GWT KickOff - Part 2/2
Javascript as a target language - GWT KickOff - Part 2/2Javascript as a target language - GWT KickOff - Part 2/2
Javascript as a target language - GWT KickOff - Part 2/2
 
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010
 
iOS App Using cordova
iOS App Using cordovaiOS App Using cordova
iOS App Using cordova
 
Scripting Oracle Develop 2007
Scripting Oracle Develop 2007Scripting Oracle Develop 2007
Scripting Oracle Develop 2007
 
Cross Platform Mobile App Development
Cross Platform Mobile App DevelopmentCross Platform Mobile App Development
Cross Platform Mobile App Development
 
Vaadin 7 CN
Vaadin 7 CNVaadin 7 CN
Vaadin 7 CN
 
Lecture android best practices
Lecture   android best practicesLecture   android best practices
Lecture android best practices
 
Rapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTRapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWT
 

Kürzlich hochgeladen

Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 

Kürzlich hochgeladen (20)

Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 

Visage fx

  • 2. What is Visage ? ● Language Based on F3/JavaFX Script ● Statically Compiled Language ● A Domain Specific Language for writing GUI in a Natural way
  • 3. Why Visage? ● Make the UI design simpler and let the developer to work on more artistic things ● You are documenting the code even though you are not aware of it. ● Supports Closure ● Application will run with the default values. Null & Undefined won't stop the App. ● CSS Support
  • 4. Visage the JavaFX Hybrid ● Foolproof Default Values. ● New variables: Angles: 90deg,18rad,5turn Colors: #FFF,#GDY53RT|AA Length: ● Null & undefined Value Checker.
  • 5. Platforms to be Support We are planning to Support these platforms, ● JavaFX2.0 ● Vaadin ● Android
  • 6. Advantages ● Any JavaFX script programmer would feel at home. ● Graphical Structure of writing is self contained and understandable. ● Easy to learn and implement ● Stable Compiler ● Easy Programming Constructs such as binding and transitions etc. ● Less code, More Productive.
  • 7. Prerequisites ● JDK1.7 ● JavaFX 2.0+ ● Visage Compiler ● VisageFX.jar(Bindings for JAvaFX) ● IDE(Netbeans,Sublime or Notepad)
  • 13. Introduction to Scene Graph ● Its a Tree Data Structure ● It maintains the internal model of graphical objects in an application(retained mode) ● To reduce code system automatically handles the rendering details using Scene Graph API ● Elements within scene graph are called as nodes and each can be treated individually.
  • 14. Sample Node Root,Branch and Leaf Nodes Specific Root,Branch and Leaf Classes
  • 15. Build Tools/IDE Support ● Ant i. Download the Test Project from the repository ii. Open it in Netbeans IDE iii. Add the lines mentioned below as a task in build.xml iv. <target name="jfxsa-run" depends="run"/> Note:Ant must be installed and ANT_HOME must be set as environment variable.
  • 16. Build Tool/IDE Support ● Gradel a. Its a Gradel Plugin for building as well as running the VisageFX Application b. You just need to include build.gradel into your project folder c. Instructions related to Gradel is available on GitHub at Prerequisites 1. JDK7 2. Gradel 3. VisageFX.jar / VIsage Compiler.
  • 17. Build Tool/IDE Support ● Use your Favourite Code Editor ● We Recommend you to use Sublime or Vim Editor for your purpose. ● Since the language highlighting is supported in most of the JavaScript Editors ● Netbeans can also be used for the purpose of Development and enhancement.
  • 18. Hello Visage Stage { title: "Hello Beautiful Visage" Scene { width: 700 height: 600 fill: Color.LIGHTGREY Group { [Text{text:"Hello Visage" x: 500 y: 500 } ] } } }
  • 19. Hello Lazy JavaFX public void start(Stage primaryStage) { Text t = new Text(); t.setText("Hello Lazy JavaFX"); StackPane root = new StackPane(); root.getChildren().add(t); Scene scene = new Scene(root, 300, 250); primaryStage.setTitle("Hello Lazy JavaFx!"); primaryStage.setScene(scene); primaryStage.show(); }
  • 21. Why Vaadin ○ Rich Set of UI Controls ○ Java->Javascript Compiler Write Custom UI Components in Visage ○ Vaadin Brings Visage to the Web!
  • 22. Java Vaadin Application public class SimpleApplication extends Application { @Override public void init() { Window mainWindow = new Window("Simple Application"); Label label = new Label("Hello 33rd Degrees!"); mainWindow.addComponent(label); setMainWindow(mainWindow); } }
  • 23. Visage Vaadin App [Unoptimized] public class VisagevaadinApplication extends Application { override function init() { def mainWindow = new Window("Unoptimized Visage Vaadin Application"); def label = new Label("Hello Visage User"); mainWindow.addComponent(label); setMainWindow(mainWindow); } }
  • 24. Visage Vaadin App [Optimized] public class VisagevaadinApplication2 extends Application { override var window = Window { caption: "Optimized Visage Vaadin Application" Label { content: "Hello Expert Visage Coder" } } }
  • 27. Visage On Android Visage Java Byte Code Dalvik Byte Code ● Visage Runs as a Native App on Android ● Full Access to all the Android APIs ● Declarative Layer on Top of Android APIs
  • 28. Android XML Code <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android. com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Hello World, HelloVisage" /> </LinearLayout>
  • 29. Java Code public class HelloVisage extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedIS) { super.onCreate(savedIS); setContentView(R.layout.main); } }
  • 30. JavaFx Conversion public class HelloVisage extends Activity { override function onCreate(savedInstanceState: Bundle) { super.onCreate(savedInstanceState); def context = getApplicationContext(); def layout = new LinearLayout(context); layout.setOrientation(LinearLayout.VERTICAL); def text = new TextView(context); text.setText("Hello World, Long Visage"); layout.addView(text); setContentView(layout); } }
  • 31. Android JavaFX Code public class HelloVisage extends Activity { override var view = LinearLayout { orientation: Orientation.VERTICAL view: TextView { text: "Hello World, Beautified Visage" } } }
  • 32. Working Hello Visage Application
  • 33. Follow these people for VisageFX ● @steveonjava ● @William_Antonio ● @rajonjava ● @arivu86 ● @shivkumarganesh