SlideShare a Scribd company logo
1 of 104
Quick Course into Vaadin
                                   Jeroen Benats
                            C4J - Java Consultant
                                   jeroen.benats@c4j.be




Thursday 4 October 12
Swing
Thursday 4 October 12
                        ?
Thursday 4 October 12
Thursday 4 October 12
JFrame




Thursday 4 October 12
JFrame
                        BoxLayout




Thursday 4 October 12
JFrame
                        BoxLayout
                          Components
                          FlowLayout




Thursday 4 October 12
Everything you
              already know ...



Thursday 4 October 12
Thursday 4 October 12
SpringLayout
                JButton
                                     JFrame
                        GridLayout
                                   JSlider
                JRadioButton         BorderLayout
                              JList
             JTable
                    JTree           GridBagLayout
                            JMenu
             JTextField                JCheckBox
                        FlowLayout
                            JComboBox    CardLayout
                                 BoxLayout

Thursday 4 October 12
... is VERY easily
       “translated” into
                Vaadin ...


Thursday 4 October 12
Thursday 4 October 12
Thursday 4 October 12
Window




Thursday 4 October 12
Window
                 VerticalLayout




Thursday 4 October 12
Window
                 VerticalLayout
                        Components
                        HorizontalLayout




Thursday 4 October 12
Thursday 4 October 12
CustomLayout
                                  Window
                     Button
                 HorizontalLayout   Slider
                                     AbsoluteLayout
                        RadioButton
               Table
                      Tree           VerticalLayout
                            MenuBar
               TextField                CheckBox
                         GridLayout
                           ComboBox      CssLayout
                                TextArea

Thursday 4 October 12
Contents

         Component
         overview
         Which are available?




Thursday 4 October 12
Contents

         Component
         overview
         Which are available?




         Layouts
         Putting all those
         Components together




Thursday 4 October 12
Contents

         Component
         overview
         Which are available?




         Layouts                Theming
                                Let’s make it all look nice!
         Putting all those
         Components together




Thursday 4 October 12
Contents

         Component
         overview                                      Binding
         Which are available?                          Automatic UI and
                                                       datasource updates



         Layouts                Theming
                                Let’s make it all look nice!
         Putting all those
         Components together




Thursday 4 October 12
Thursday 4 October 12
In Vaadin...

                   Everything is a Component (Interface)




Thursday 4 October 12
In Vaadin...

        Everything is an AbstractComponent (Class)




Thursday 4 October 12
In Vaadin...

            Components that are not bound to a data
            model inherit AbstractComponent directly




Thursday 4 October 12
Building your
         Application




Thursday 4 October 12
A basic Vaadin Application consists of...




                                         tekst




Thursday 4 October 12
A basic Vaadin Application consists of...


                          A Window, set as MainWindow
                          of the Application

                                         tekst




Thursday 4 October 12
A basic Vaadin Application consists of...


                          A Window, set as MainWindow
                          of the Application

                                         tekst
                          Hierarchy of Layout
                          Components




Thursday 4 October 12
A basic Vaadin Application consists of...


                          A Window, set as MainWindow
                          of the Application

                                         tekst
                          Hierarchy of Layout
                          Components


                          Bound and unbound Fields
                          and Components



Thursday 4 October 12
It all comes down to this




Thursday 4 October 12
Learning it
                            quickly
                        the Vaadin
                          Sampler

Thursday 4 October 12
contains
                 all
                 Vaadin
                 Components

Thursday 4 October 12
Immediate
                 demoes
                 of all these
                 Components

Thursday 4 October 12
ready to use
                 code examples
                 to get you going


Thursday 4 October 12
Let’s go through it


Thursday 4 October 12
Basic
                        Component
                          features


Thursday 4 October 12
Thursday 4 October 12
setCaption()
                        setDescription()




Thursday 4 October 12
setCaption()
                        setDescription()


                        attach()
                        detach()




Thursday 4 October 12
setCaption()
                        setDescription()


                        attach()
                        detach()


                        setIcon()
                        setStyleName()



Thursday 4 October 12
Thursday 4 October 12
setEnabled() setVisible()
                        setReadOnly()




Thursday 4 October 12
setEnabled() setVisible()
                        setReadOnly()


                        setLocale()




Thursday 4 October 12
setEnabled() setVisible()
                        setReadOnly()


                        setLocale()


                        setWidth() setSizeFull()
                        setHeight() setSizeUndefined()



Thursday 4 October 12
Thursday 4 October 12
Thursday 4 October 12
Now sit and
                        watch this demo
                        application

Thursday 4 October 12
Putting
                        Components
                        into Layouts


Thursday 4 October 12
Thursday 4 October 12
Seeing is
                        believing
                          And also remembering!




Thursday 4 October 12
In Vaadin...

                        All ComponentContainers have the
                         VerticalLayout as default Layout




Thursday 4 October 12
Theming
                        to make it look NICE




Thursday 4 October 12
Thursday 4 October 12
Completely separated
                        from logic




Thursday 4 October 12
Completely separated
                        from logic


                        Done with
                        CSS




Thursday 4 October 12
Completely separated
                        from logic


                        Done with
                        CSS


                        CustomLayouts, images and
                        other resources



Thursday 4 October 12
Thursday 4 October 12
Thursday 4 October 12
Name of the theme folder is
                        the name of your theme




Thursday 4 October 12
Name of the theme folder is
                        the name of your theme


                        styles.css, recourses
                        Layouts




Thursday 4 October 12
Name of the theme folder is
                        the name of your theme


                        styles.css, recourses
                        Layouts


                        setTheme(‘name’) in
                        Application



Thursday 4 October 12
In Vaadin...

          Images from themes can be loaded via the
                   ThemeResource object




Thursday 4 October 12
In Vaadin...

  They can then be used as Icon on a Component
        or directly in an Embedded object




Thursday 4 October 12
A demo




Thursday 4 October 12
Event driven
      development &
    bandwidth usage


Thursday 4 October 12
Thursday 4 October 12
Thursday 4 October 12
Thursday 4 October 12
Thursday 4 October 12
Thursday 4 October 12
Event driven
                        Application
                        Components

Thursday 4 October 12
Data
                        Binding



Thursday 4 October 12
Thursday 4 October 12
Coupling Components with a
                        datasource




Thursday 4 October 12
Coupling Components with a
                        datasource


                        Updated data in the Component
                        will also update the datasource




Thursday 4 October 12
Coupling Components with a
                        datasource


                        Updated data in the Component
                        will also update the datasource


                        And
                        vice versa



Thursday 4 October 12
Thursday 4 October 12
Property




Thursday 4 October 12
Property
                        Standardized API for a single
                        data object




Thursday 4 October 12
Property
                        Standardized API for a single
                        data object


                        Allows to read and write data
                        from and to this object




Thursday 4 October 12
Property
                        Standardized API for a single
                        data object


                        Allows to read and write data
                        from and to this object


                        Property value changes can be
                        catched with a ValueChangeListener



Thursday 4 October 12
Code fragment

              final	
  TextField	
  -	
  =	
  new	
  TextField("username:");

              -.addListener(new	
  Property.ValueChangeListener()	
  {
              	
  	
  	
  	
  public	
  void	
  valueChange(ValueChangeEvent	
  event)	
  {
              	
  	
  	
  	
  	
  	
  	
  	
  ...
              	
  	
  	
  	
  }
              });

              -.setValue("...");




Thursday 4 October 12
Property




Thursday 4 October 12
Property
                        Field Components implement
                        the Property interface




Thursday 4 October 12
Property
                        Field Components implement
                        the Property interface


                        And thereby the Property.Viewer
                        interface




Thursday 4 October 12
Property
                        Field Components implement
                        the Property interface


                        And thereby the Property.Viewer
                        interface

                        Which means they can be bound to any kind
                        of datasource and even to other Components
                        implementing the Viewer interface



Thursday 4 October 12
Code fragment

              TextField	
  editor	
  =	
  new	
  TextField("username");
              Label	
  viewer	
  =	
  new	
  Label();


              viewer.setPropertyDataSource(editor);
              editor.setImmediate(true);




                  Any change in the text field will immediatly update the Label




Thursday 4 October 12
Item




Thursday 4 October 12
Item
                        Provides access to a set of
                        named Properties




Thursday 4 October 12
Item
                        Provides access to a set of
                        named Properties


                        Defines inner Interfaces for
                        maintaining the Item Properties set




Thursday 4 October 12
Item
                        Provides access to a set of
                        named Properties


                        Defines inner Interfaces for
                        maintaining the Item Properties set

                        And Interfaces for listening
                        to changes made to it



Thursday 4 October 12
Code fragment 1
              public	
  class	
  My_vaadinApplicaOon	
  extends	
  ApplicaOon	
  {
              	
  	
  	
  	
  public	
  void	
  init()	
  {
              	
  	
  	
  	
  	
  	
  	
  	
  Window	
  main	
  =	
  new	
  Window("Countries	
  Window");

              	
  	
  	
  	
  	
  	
  	
  	
  PropertysetItem	
  setOfProperOes	
  =	
  new	
  PropertysetItem();
              	
  	
  	
  	
  	
  	
  	
  	
  setOfProperOes.addItemProperty("first	
  name”,	
  new	
  ObjectProperty("haim"));
              	
  	
  	
  	
  	
  	
  	
  	
  setOfProperOes.addItemProperty("last	
  name”,	
  new	
  ObjectProperty("michael"));
              	
  	
  	
  	
  	
  	
  	
  	
  setOfProperOes.addItemProperty("email”,	
  new	
  ObjectProperty("haim@gmaail.com"));

              	
  	
  	
  	
  	
  	
  	
  	
  Form	
  form	
  =	
  new	
  Form();
              	
  	
  	
  	
  	
  	
  	
  	
  form.setItemDataSource(setOfProperOes);

              	
  	
  	
  	
  	
  	
  	
  	
  setMainWindow(main);
              	
  	
  	
  	
  	
  	
  	
  	
  main.addComponent(form);
              	
  	
  	
  	
  }




Thursday 4 October 12
Code fragment 2
              public	
  class	
  My_vaadinApplicaOon	
  extends	
  ApplicaOon	
  {

              	
  	
  	
  	
  public	
  void	
  init()	
  {
              	
  	
  	
  	
  	
  	
  	
  	
  Window	
  main	
  =	
  new	
  Window("Countries	
  Window");

              	
  	
  	
  	
  	
  	
  	
  	
  Person	
  person	
  =	
  new	
  Person(”Jeroen",	
  ”Benats",	
  123123);

              	
  	
  	
  	
  	
  	
  	
  	
  BeanItem<Person>	
  data	
  =	
  new	
  BeanItem<Person>(person);
              	
  	
  	
  	
  	
  	
  	
  	
  Form	
  form	
  =	
  new	
  Form();
              	
  	
  	
  	
  	
  	
  	
  	
  form.setItemDataSource(data);

              	
  	
  	
  	
  	
  	
  	
  	
  setMainWindow(main);
              	
  	
  	
  	
  	
  	
  	
  	
  main.addComponent(form);
              	
  	
  	
  	
  }
              }




Thursday 4 October 12
Container




Thursday 4 October 12
Container
                        Flexible way for managing a set of
                        Items that share common properties




Thursday 4 October 12
Container
                        Flexible way for managing a set of
                        Items that share common properties


                        Each Item within a Container is
                        identified by an ID




Thursday 4 October 12
Container
                        Flexible way for managing a set of
                        Items that share common properties


                        Each Item within a Container is
                        identified by an ID

                        Tree, Table and Select can be bound on
                        Container Objects



Thursday 4 October 12
Code fragment
              public	
  class	
  My_vaadinApplicaOon	
  extends	
  ApplicaOon	
  {
              	
  	
  	
  	
  public	
  void	
  init()	
  {
              	
  	
  	
  	
  	
  	
  	
  	
  Window	
  main	
  =	
  new	
  Window("Countries	
  Window");
              	
  	
  	
  	
  	
  	
  	
  	
  setMainWindow(main);

                        BeanItemContainer<Bean> beans = new
                                                    BeanItemContainer<Bean>(Bean.class);
                  
                        beans.addBean(new                         Bean("Mung bean",   1452.0));
                        beans.addBean(new                         Bean("Chickpea",    686.0));
                        beans.addBean(new                         Bean("Lentil",     1477.0));
                        beans.addBean(new                         Bean("Common bean", 129.0));
                        beans.addBean(new                         Bean("Soybean",     1866.0));

                        Table table = new Table("Beans of All Sorts", beans);

                        }




Thursday 4 October 12
Thursday 4 October 12
A demo




Thursday 4 October 12
Vaadin Pizzeria



    Let’s try to create your
    first Vaadin
    Application




Thursday 4 October 12
Questions
              Comments




                          jeroe n.benats@c4j.be
                                http://www.c4j.be



Thursday 4 October 12

More Related Content

Recently uploaded

Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991RKavithamani
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxRoyAbrique
 

Recently uploaded (20)

Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
Industrial Policy - 1948, 1956, 1973, 1977, 1980, 1991
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
 

Featured

AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Featured (20)

AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 

Quick course into Vaadin

  • 1. Quick Course into Vaadin Jeroen Benats C4J - Java Consultant jeroen.benats@c4j.be Thursday 4 October 12
  • 6. JFrame BoxLayout Thursday 4 October 12
  • 7. JFrame BoxLayout Components FlowLayout Thursday 4 October 12
  • 8. Everything you already know ... Thursday 4 October 12
  • 10. SpringLayout JButton JFrame GridLayout JSlider JRadioButton BorderLayout JList JTable JTree GridBagLayout JMenu JTextField JCheckBox FlowLayout JComboBox CardLayout BoxLayout Thursday 4 October 12
  • 11. ... is VERY easily “translated” into Vaadin ... Thursday 4 October 12
  • 15. Window VerticalLayout Thursday 4 October 12
  • 16. Window VerticalLayout Components HorizontalLayout Thursday 4 October 12
  • 18. CustomLayout Window Button HorizontalLayout Slider AbsoluteLayout RadioButton Table Tree VerticalLayout MenuBar TextField CheckBox GridLayout ComboBox CssLayout TextArea Thursday 4 October 12
  • 19. Contents Component overview Which are available? Thursday 4 October 12
  • 20. Contents Component overview Which are available? Layouts Putting all those Components together Thursday 4 October 12
  • 21. Contents Component overview Which are available? Layouts Theming Let’s make it all look nice! Putting all those Components together Thursday 4 October 12
  • 22. Contents Component overview Binding Which are available? Automatic UI and datasource updates Layouts Theming Let’s make it all look nice! Putting all those Components together Thursday 4 October 12
  • 24. In Vaadin... Everything is a Component (Interface) Thursday 4 October 12
  • 25. In Vaadin... Everything is an AbstractComponent (Class) Thursday 4 October 12
  • 26. In Vaadin... Components that are not bound to a data model inherit AbstractComponent directly Thursday 4 October 12
  • 27. Building your Application Thursday 4 October 12
  • 28. A basic Vaadin Application consists of... tekst Thursday 4 October 12
  • 29. A basic Vaadin Application consists of... A Window, set as MainWindow of the Application tekst Thursday 4 October 12
  • 30. A basic Vaadin Application consists of... A Window, set as MainWindow of the Application tekst Hierarchy of Layout Components Thursday 4 October 12
  • 31. A basic Vaadin Application consists of... A Window, set as MainWindow of the Application tekst Hierarchy of Layout Components Bound and unbound Fields and Components Thursday 4 October 12
  • 32. It all comes down to this Thursday 4 October 12
  • 33. Learning it quickly the Vaadin Sampler Thursday 4 October 12
  • 34. contains all Vaadin Components Thursday 4 October 12
  • 35. Immediate demoes of all these Components Thursday 4 October 12
  • 36. ready to use code examples to get you going Thursday 4 October 12
  • 37. Let’s go through it Thursday 4 October 12
  • 38. Basic Component features Thursday 4 October 12
  • 40. setCaption() setDescription() Thursday 4 October 12
  • 41. setCaption() setDescription() attach() detach() Thursday 4 October 12
  • 42. setCaption() setDescription() attach() detach() setIcon() setStyleName() Thursday 4 October 12
  • 44. setEnabled() setVisible() setReadOnly() Thursday 4 October 12
  • 45. setEnabled() setVisible() setReadOnly() setLocale() Thursday 4 October 12
  • 46. setEnabled() setVisible() setReadOnly() setLocale() setWidth() setSizeFull() setHeight() setSizeUndefined() Thursday 4 October 12
  • 49. Now sit and watch this demo application Thursday 4 October 12
  • 50. Putting Components into Layouts Thursday 4 October 12
  • 52. Seeing is believing And also remembering! Thursday 4 October 12
  • 53. In Vaadin... All ComponentContainers have the VerticalLayout as default Layout Thursday 4 October 12
  • 54. Theming to make it look NICE Thursday 4 October 12
  • 56. Completely separated from logic Thursday 4 October 12
  • 57. Completely separated from logic Done with CSS Thursday 4 October 12
  • 58. Completely separated from logic Done with CSS CustomLayouts, images and other resources Thursday 4 October 12
  • 61. Name of the theme folder is the name of your theme Thursday 4 October 12
  • 62. Name of the theme folder is the name of your theme styles.css, recourses Layouts Thursday 4 October 12
  • 63. Name of the theme folder is the name of your theme styles.css, recourses Layouts setTheme(‘name’) in Application Thursday 4 October 12
  • 64. In Vaadin... Images from themes can be loaded via the ThemeResource object Thursday 4 October 12
  • 65. In Vaadin... They can then be used as Icon on a Component or directly in an Embedded object Thursday 4 October 12
  • 66. A demo Thursday 4 October 12
  • 67. Event driven development & bandwidth usage Thursday 4 October 12
  • 73. Event driven Application Components Thursday 4 October 12
  • 74. Data Binding Thursday 4 October 12
  • 76. Coupling Components with a datasource Thursday 4 October 12
  • 77. Coupling Components with a datasource Updated data in the Component will also update the datasource Thursday 4 October 12
  • 78. Coupling Components with a datasource Updated data in the Component will also update the datasource And vice versa Thursday 4 October 12
  • 81. Property Standardized API for a single data object Thursday 4 October 12
  • 82. Property Standardized API for a single data object Allows to read and write data from and to this object Thursday 4 October 12
  • 83. Property Standardized API for a single data object Allows to read and write data from and to this object Property value changes can be catched with a ValueChangeListener Thursday 4 October 12
  • 84. Code fragment final  TextField  -  =  new  TextField("username:"); -.addListener(new  Property.ValueChangeListener()  {        public  void  valueChange(ValueChangeEvent  event)  {                ...        } }); -.setValue("..."); Thursday 4 October 12
  • 86. Property Field Components implement the Property interface Thursday 4 October 12
  • 87. Property Field Components implement the Property interface And thereby the Property.Viewer interface Thursday 4 October 12
  • 88. Property Field Components implement the Property interface And thereby the Property.Viewer interface Which means they can be bound to any kind of datasource and even to other Components implementing the Viewer interface Thursday 4 October 12
  • 89. Code fragment TextField  editor  =  new  TextField("username"); Label  viewer  =  new  Label(); viewer.setPropertyDataSource(editor); editor.setImmediate(true); Any change in the text field will immediatly update the Label Thursday 4 October 12
  • 91. Item Provides access to a set of named Properties Thursday 4 October 12
  • 92. Item Provides access to a set of named Properties Defines inner Interfaces for maintaining the Item Properties set Thursday 4 October 12
  • 93. Item Provides access to a set of named Properties Defines inner Interfaces for maintaining the Item Properties set And Interfaces for listening to changes made to it Thursday 4 October 12
  • 94. Code fragment 1 public  class  My_vaadinApplicaOon  extends  ApplicaOon  {        public  void  init()  {                Window  main  =  new  Window("Countries  Window");                PropertysetItem  setOfProperOes  =  new  PropertysetItem();                setOfProperOes.addItemProperty("first  name”,  new  ObjectProperty("haim"));                setOfProperOes.addItemProperty("last  name”,  new  ObjectProperty("michael"));                setOfProperOes.addItemProperty("email”,  new  ObjectProperty("haim@gmaail.com"));                Form  form  =  new  Form();                form.setItemDataSource(setOfProperOes);                setMainWindow(main);                main.addComponent(form);        } Thursday 4 October 12
  • 95. Code fragment 2 public  class  My_vaadinApplicaOon  extends  ApplicaOon  {        public  void  init()  {                Window  main  =  new  Window("Countries  Window");                Person  person  =  new  Person(”Jeroen",  ”Benats",  123123);                BeanItem<Person>  data  =  new  BeanItem<Person>(person);                Form  form  =  new  Form();                form.setItemDataSource(data);                setMainWindow(main);                main.addComponent(form);        } } Thursday 4 October 12
  • 97. Container Flexible way for managing a set of Items that share common properties Thursday 4 October 12
  • 98. Container Flexible way for managing a set of Items that share common properties Each Item within a Container is identified by an ID Thursday 4 October 12
  • 99. Container Flexible way for managing a set of Items that share common properties Each Item within a Container is identified by an ID Tree, Table and Select can be bound on Container Objects Thursday 4 October 12
  • 100. Code fragment public  class  My_vaadinApplicaOon  extends  ApplicaOon  {        public  void  init()  {                Window  main  =  new  Window("Countries  Window");                setMainWindow(main); BeanItemContainer<Bean> beans = new BeanItemContainer<Bean>(Bean.class);      beans.addBean(new Bean("Mung bean", 1452.0)); beans.addBean(new Bean("Chickpea",    686.0)); beans.addBean(new Bean("Lentil",     1477.0)); beans.addBean(new Bean("Common bean", 129.0)); beans.addBean(new Bean("Soybean",     1866.0)); Table table = new Table("Beans of All Sorts", beans); } Thursday 4 October 12
  • 102. A demo Thursday 4 October 12
  • 103. Vaadin Pizzeria Let’s try to create your first Vaadin Application Thursday 4 October 12
  • 104. Questions Comments jeroe n.benats@c4j.be http://www.c4j.be Thursday 4 October 12