SlideShare a Scribd company logo
© 2009 Marty Hall




            j
            jQuery Part III:
                 y
    Rich Interfaces with jQuery UI
                                (j
                                (jQuery 1.3, jQuery UI 1.7)
                                      y    ,j     y       )
            Originals of Slides and Source Code for Examples:
       http://courses.coreservlets.com/Course-Materials/ajax.html
          p                                              j
                  Customized Java EE Training: http://courses.coreservlets.com/
  Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6.
   Developed and taught by well-known author and developer. At public venues or onsite at your location.




                                                                                                                © 2009 Marty Hall




 For live Ajax & GWT training, see training
courses at http://courses.coreservlets.com/.
          t htt //                l t       /
      Taught by the author of Core Servlets and JSP, More
     Servlets and JSP and this tutorial. Available at public
                  JSP,          tutorial
     venues, or customized versions can be held on-site at
                       your organization.
   •C
    Courses d
            developed and t
                l   d d taught b M t H ll
                            ht by Marty Hall
          – Java 6, intermediate/beginning servlets/JSP, advanced servlets/JSP, Struts, JSF 1.x & 2.0, Ajax, GWT, custom mix of topics
                   Customized Java EE Training: http://courses.coreservlets.com/
          – Ajax courses can concentrate on one library (jQuery, Prototype/Scriptaculous, Ext-JS, Dojo) or survey several
   • Courses developed and taught by coreservlets.com experts (edited by Marty)
  Servlets, JSP, JSF 1.x & JSFEJB3, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6.
          – Spring, Hibernate/JPA, 2.0, Ruby/Rails
   Developed and taught by well-known author and developer. At public venues or onsite at your location.
                                        Contact hall@coreservlets.com for details
Topics in This Section
    • Overview
    • Installation and setup
    • Widgets
      –   Static tabbed panels
      –   Ajax tabbed panels
      –   Accordion panels
      –   Date picker
      –   Slider
      –   Progress bar



5




                                                                                                   © 2009 Marty Hall




                                 Introduction

                        Customized Java EE Training: http://courses.coreservlets.com/
          Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6.
           Developed and taught by well-known author and developer. At public venues or onsite at your location.
Overview
    • Set of rich GUI elements and effects
      – Tabbed panels, slider, etc
      – Effects similar to Scripaculous
      – Drag and drop API
    • Pros
      –   Official part of j
                   p       jQuery
                                y
      –   Well tested
      –   Very clean design
      –   Many still show meaningful results if JavaScript disabled
      –   Theming framework
    • Cons
      – No autocompleter (!)
7
      – Not as extensive as Dojo, ext/JS, or YUI




    Downloading
    • Download custom bundle
      – h //j
        http://jqueryui.com/download
                      i    /d    l d
      – Select widgets and effects you want
      – Press “Download” to download ZIP file of result
    • Unzip
      – Unzip result into location of your choice
    • D
      Download additional themes
          l d dditi     l th
      – http://jqueryui.com/download
      – Deselect all widgets and options, choose different theme
           • You can also interactively build a customized theme
      – Unzip and copy entries in “css” folder to “css” folder of
        original download
    • Bookmark the documentation
8
      – http://docs.jquery.com/UI/
Installing Files
     • Load normal jQuery as before
       – jQuery UI download gives an additional copy in “js”
         folder, so if you are using jQuery UI, one download from
         jq y
         jqueryui.com is sufficient
          • As discussed in previous sections, it is common to rename
            jQuery-1.3.x.min.js to jQuery.js to simplify upgrades
     • Copy jQuery ui 1.7.x.custom.min.js
            jQuery-ui-1.7.x.custom.min.js
       – E.g., copy download_folder/js/jQuery-ui-
         1.7.x.custom.min.js to WebContent/scripts
       – It is common to leave detailed name for this file, since UI
            i           t l     d t il d      f thi fil i
         capabilities change from version to version
     • Copy CSS “theme” folder
         py
       – E.g., copy download_folder/css/ui-lightness to
         WebContent/css/
9




     Setting Up Page: Overview
     • Load required jQuery UI files
       – jquery.js (renamed from jquery-1.3.2.min.js)
       – jquery-ui-1.7.1.custom.min.js
       – Any custom CSS files your app uses
     • Load your files that use jQuery UI
       – Any custom JavaScript files your app uses
       – themename/jquery-ui-1.7.1.custom.min.css




10
Setting Up Page: Example
     <link rel="stylesheet"
           href="./css/ui-lightness/jquery-ui-1.7.1.custom.css"
           href=" /css/ui lightness/jquery ui 1 7 1 custom css"
           type="text/css"/>
     <link rel="stylesheet"
           href="./css/sample-styles.css"
           href=" /css/sample styles css"
           type="text/css"/>
     <script src="./scripts/jquery.js"
             type="text/javascript"></script>
             t    "t t/j       i t"></    i t>
     <script src="./scripts/jquery-ui-1.7.1.custom.min.js"
             type="text/javascript"></script>
     <script src="./scripts/jquery-ui-examples.js"
         i t     " /   i t /j       i       l  j "
             type="text/javascript"></script>




11




                                                                                                   © 2009 Marty Hall




                Tabbed Panels with
                  Static Content

                        Customized Java EE Training: http://courses.coreservlets.com/
          Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6.
           Developed and taught by well-known author and developer. At public venues or onsite at your location.
Overview
     • Idea
        – T bb d panel where clicking tabs changes content inside
          Tabbed     l h      li ki t b h             t t i id
     • HTML
        – Make a div container to hold the tabs
           • <div id="main-tabbed-panel-div">…</div>
        – Include a ul list containing internal hyperlinks
           • <ul>
               <li><a href="#panel1">Go to Panel 1</a></li>
               <li><a href="#panel2">Go to Panel 2</a></li>
             </ul>
        – Include divs whose ids match the href values (minus “#”)
                                                               # )
           • <div id="panel1">Content for panel 1</div>
             <div id="panel2">Content for panel 2</div>
     • Basic JavaScript
        – Call “tabs()” on the div container
           • $("#main-tabbed-panel-div").tabs();
13




      Example: HTML
     <div id="static-tabbed-panel-div">
       <ul>
         <li><a href="#panel1">Panel 1</a></li>
         <li><a href="#panel2">Panel 2</a></li>
         <li><a href="#panel3">Panel 3</a></li>
       </ul>
       <div id="panel1">
         <p>Content for first panel.</p>
         <p>Foo, bar, baz.</p><p>Yadda, yadda, yadda.</p>
         <p>Foo bar baz </p><p>Yadda yadda yadda </p>
       </div>
       <div id="panel2">
         <p>Content for second panel.</p>
         <p>Foo, bar, baz.</p><p>Yadda, yadda, yadda.</p>
       </div>
       <div id="panel3">
         <p>Content for thi d panel.</p>
         < >C t t f     third     l </ >
         <p>Foo, bar, baz.</p><p>Yadda, yadda, yadda.</p>
       </div>
14   </div>
Example: JavaScript
     $(function() {
         $("#static-tabbed-panel-div").tabs();
         $("# t ti t bb d      l di ") t b ()
         …
     })
     });




15




     Example: Results




16
Options for jQuery UI Widgets
     • You can supply anonymous object
       – Object has optional fields
       – Fields specify configuration and operational options
     • Examples
       – $("#some-id").tabs();
       – $("#some-id") tabs({ option1: "foo",
         $( #some id ).tabs({            foo
                               option2: "bar",
                               option3: "baz" })
                                                           No t ili
                                                           N trailing
                                                           comma




17




     Main Options for tabs({…}) for
     Static Content
     • selected (default: 0)
       – T b to be selected initially
         Tab b       l    d i i i ll
     • collapsible (default: false)
       – Can you click selected tab to hide it (and thus all panels)?
            • $("#main-id").tabs({ collapsible: true });
     • disabled (default: empty array)
       – A array of t b numbers (0-based) that should be disabled
         An         f tab  b (0 b d) th t h ld b di bl d
         on startup
     • event (default: click)
             (              )
       – The type of event that should initiate tab selection
            • $("#main-id").tabs({ event: "mouseover" });
     • fx
       – Many options for specifying animation when tabs are
18
         selected. See docs for details.
© 2009 Marty Hall




         Tabbed Panels with
        Dynamic ( j ) Content
         y      (Ajax)

                       Customized Java EE Training: http://courses.coreservlets.com/
         Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6.
          Developed and taught by well-known author and developer. At public venues or onsite at your location.




     Overview
     • Idea
       – T bb d panel where clicking tabs gets server content
         Tabbed     l h      li ki     b
     • HTML
       – Make a div container to hold the tabs
          • <div id="main-tabbed-panel-div">…</div>
       – Include a ul list containing external relative hyperlinks
          • <ul>
              <li><a href="url1">Get Content for Panel 1</a></li>
              <li><a href="url2">Get Content for Panel 2</a></li>
            </ul>
       – That’s all!
     • Basic JavaScript
       – C ll “tabs()” on the div container
         Call “ b ()”      h di        i
          • $("#main-tabbed-panel-div").tabs();
20
Example: HTML
     <div id="ajax-tabbed-panel-div">
     <ul>
       <li><a href="time-panel.jsp">Show Time</a></li>
       <li><a href="list-panel.jsp?range=5">
            Show Small Numbers</a></li>
       <li><a href="list-panel.jsp?range=500">
            Show Big Numbers</a></li>
     </ul>
     </div>




21




      Example: JavaScript
     $(function() {
          $( #ajax tabbed panel div ).tabs({
          $("#ajax-tabbed-panel-div") tabs({ collapsible: true });
         …
     });




22
Example: JSP
     • time-panel.jsp
     <h3>It is now <%= new java.util.Date() %></h3>
     Do you know where your closures are doing?

     • list-panel.jsp
            p     j p
     <% double range = 10.0;
        try {
          String r = request.getParameter("range");
          range = I t
                  Integer.parseInt(r);
                               I t( )
        } catch(Exception e) {} %>
     <h3>Numbers from 0 to <%= range %></h3>
     <ul>
       <li><%= Math.random() * range %></li>
       <li><%= Math.random() * range %></li>
       <li><%= Math.random() * range %></li>
       <li><%= Math.random() * range %></li>
       <li><%= Math.random() * range %></li>
     </ul>
23




      Example: Results




24
Main Options for tabs({…}) for
     Ajax Content
     • ajaxOptions (default: {})
       – Any of the options used for $.ajax in first jQuery section
          • $("#main-id").tabs({ ajaxOptions: { error: errorHandler }});
     • cache (default: false)
       – Should jQuery remember content for previously-selected
         tabs? Very helpful if result is always the same for a given
                  y p                        y                 g
         URL.
     • spinner (default “<em>Loading…</em>”)
       – T to show in tab title after tab selected but before
         Text     h i b il f             b l     db b f
         content is received from server



25




                                                                                                  © 2009 Marty Hall




                    Accordion Panels

                       Customized Java EE Training: http://courses.coreservlets.com/
         Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6.
          Developed and taught by well-known author and developer. At public venues or onsite at your location.
Overview
     • Idea
        – Horizontally stacked panels with wide tabs
     • HTML
        – Make a div container to hold the tabs
           • <div id="main-accordion-panel-div">…</div>
        – Include alternating pairs of text with links and content
           •   <h2><a href="#">Panel 1</a></h2>
           •   <div>Content for Panel 1</div>
           •   <h2><a href="#">Panel 2</ ></h2>
               <h2>< h f "#">P       l 2</a></h2>
           •   <div>Content for Panel 2</div>
     • Basic Ja aSc pt
        as c JavaScript
        – Call “accordion()” on the div container
27
           • $("#main-accordion-panel-div").accordion();




      Example: HTML
     <div id="accordion-panel-div">
     <h2><a href="#">Panel 1</a></h2>
            href= # >Panel
     <div>
       <p>Content for first panel.</p>
       <p>Foo, bar, baz.</p><p>Yadda, yadda, yadda.</p>
     </div>
     <h2><a href="#">Panel 2</a></h2>
     <div>
       <p>Content for second panel.</p>
       <p>Foo, bar, baz.</p><p>Yadda, yadda, yadda.</p>
     </div>
     <h2><a href="#">Panel 3</a></h2>
     <div>
       <p>Content for third panel.</p>
       <p>Foo, bar, baz.</p><p>Yadda, yadda, yadda.</p>
     </div>
28   </div>
Example: JavaScript
     $(function() {
         $("#accordion-panel-div").accordion();
         $("#     di       l di ")      di ()
         …
     })
     });




29




     Example: Results




30
Main Options for accordion({…})
     • active (default: 0)
       – Index or selector for initially-selected item
     • collapsible, event
       – C you click to hide? Event to trigger selection.
         Can      li k hid ? E           i       l i
       – Same as with tabs()
     • animated (default: true)
       – Name of jQuery animation to use when showing content
          • $("#main-id").accordion({ animated: "fadeIn" });




31




                                                                                                  © 2009 Marty Hall




                                  Date Picker

                       Customized Java EE Training: http://courses.coreservlets.com/
         Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6.
          Developed and taught by well-known author and developer. At public venues or onsite at your location.
Overview
     • Idea
        – Click in textfield to pop up calendar. Choosing day from
          calendar puts date string into textfield
     • HTML
        – Make an input field
            • <input type="text" id="date-field"/>
                 p yp
     • Basic JavaScript
        – Call “datepicker()” on the textfield
            • $("#date-field").datepicker();




33




      Example: HTML
     <form action=#">
       <table>
         <tr><td align="right">
             From: <input type="text"/></td></tr>
         <tr><td align="right">
             Departure Date: <input type="text" id="start-date"/></td></tr>
                                                               / /     /
         <tr><td align="right">
             To: <input type="text"/></td></tr>
         <tr><td a g
          t    td align="right">
                           g t
             Return Date: <input type="text" id="end-date"/></td></tr>
         <tr><td align="center">
             <input type="button" value="Show Flights"/>
             <input type="button" value="Show Hotels"/>
                                                     /
             </td></tr>
       </table>
     </form>



34
Example: JavaScript
     $(function() {
           $("#start-date").datepicker();
           $("#start date") datepicker();
           $("#end-date").datepicker({ changeMonth: true,
                                       numberOfMonths: 2 });
         …
     });




35




      Example: Results




36
Main Options for
     datepicker({…})
     datepicker({ })
     • defaultDate (default: today)
       – I i i ll selected date
         Initially l     dd
     • changeMonth (default: false)
       changeYear (default: false)
       – Should jQuery include a dropdown list to let you choose
         the month or year?
     • dayNames (default Sunday Saturday)
                         Sunday…Saturday)
       monthNames (default January…December)
       – Names to use for the days and months. For other
                                 y
         languages. There are also various options for short
         versions of days.
     • numberOfMonths (default: 1)
       – How many months to show at a time
37




                                                                                                  © 2009 Marty Hall




                                               Slider

                       Customized Java EE Training: http://courses.coreservlets.com/
         Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6.
          Developed and taught by well-known author and developer. At public venues or onsite at your location.
Overview
     • Idea
        – Interactive slider to let user choose numeric values
            • Also supports double-handled sliders for choosing ranges
     • HTML
        – Make a placeholder div
            • <div id="div-for-slider"></div>
     • Basic JavaScript
        – Call “slider()” on the div, supply function to be called
          when slider moves
            • $("#div-for-slider").slider({ slide: sliderEventHandler });
        – Look up value later
            • Event handler takes two arguments: event and ui. Use
              ui.value to get current slider value
39




      Example: HTML
     <form action="#">
        <table>
        …
          <tr><td align="right">
                 Temperature:
              </td>
              <td align="left" width="300">
                 <div id="slider-div" style="margin-left: 10px"></div>
                 <div id="temp-display" align="center">32</div>
                                                          /
              </td></tr>
          <tr><td align="center" colspan="2">
              <input type="button" value="Order Coffee />
                      type= button value= Order Coffee"/>
              </td></tr>
        </table>
     </form>
      /



40
Example: JavaScript
     function showTemp(event, ui) {
       $("#temp-display").html(ui.value);
       $("#temp display") html(ui value);
     }

     $(function() {
         $("#slider-div").slider({ min: 32, max: 212,
                                   slide: showTemp });
         …
     });




41




      Example: Results




42
Main Options for slider({…})
     • min(default: 0)
       – V l corresponding t left or top
         Value        di to l ft t
     • max
       – Value corresponding to right or bottom
     • slide
       – Function to call every time value changes. Function takes two
         arguments: event and ui object. Use ui.value to get currently
           g                        j                    g           y
         selected value.
     • step (default: 1)
       – Granularity of changes
     • value (default: min)
       – The initial value
     • orientation (default: auto)
         i t ti (d f lt        t )
       – horizontal or vertical
43




                                                                                                   © 2009 Marty Hall




                               Progress Bar

                        Customized Java EE Training: http://courses.coreservlets.com/
          Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6.
           Developed and taught by well-known author and developer. At public venues or onsite at your location.
Overview
     • Idea
       – Sh
         Shows progress from 0% to 100%
                        f
          • Output only: does not accept user input
     • HTML
       – Make a placeholder div
          • <div id="div-for-progress-bar"></div>
     • Basic JavaScript
       – Call “progressbar()” on the div
          • $("#div-for-progress").progressbar();
       – Have another event that changes values of bar
          • Look up value with
            $("#div-for-progress").progressbar("option", "value");
          • Change value with
            $("#div-for-progress").progressbar("option", "value", num);
45




     Example: HTML
     <form action="#">
     <div id="progressbar-div"></div>
     <di id "          b   di "></di >
     <input type="button" value="Click 10 Times"
             id="progressbar-button"/>
     </form>




46
Example: JavaScript
     function updateProgressBar() {
       var currentVal =
         $("#progressbar-div").progressbar("option", "value");
       if (currentVal < 100) {
         currentVal += 10;
                    +
         $("#progressbar-div").progressbar("option", "value",
                                           currentVal);
       }
     }


     $(function() {
         $("#progressbar-div").progressbar();
         $("#progressbar-button").click(updateProgressBar);
       …
     });

47




      Example: Results




48
© 2009 Marty Hall




                                         Wrap-up

                       Customized Java EE Training: http://courses.coreservlets.com/
         Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6.
          Developed and taught by well-known author and developer. At public venues or onsite at your location.




     Summary
     • Setup
       – Load jquery.js, jquery-ui…js and themename/…css
     • Ajax tabbed panels
       – HTML
          • <div id="main">
            <ul><li><a href="relative-url-1">Panel 1</1></li>
             ul li a href relative url 1 Panel 1 /1 /li
                 <li><a href="relative-url-2">Panel 2</1></li>…
            </ul></div>
       – JavaScript
          • $("#main").tabs();
     • Others
       – Static tabbed panels, accordion panel, date picker, slider,
50
         progress bar
© 2009 Marty Hall




                         Questions?

              Customized Java EE Training: http://courses.coreservlets.com/
Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6.
 Developed and taught by well-known author and developer. At public venues or onsite at your location.
Ad

More Related Content

What's hot (15)

The Dojo Toolkit An Introduction
The Dojo Toolkit   An IntroductionThe Dojo Toolkit   An Introduction
The Dojo Toolkit An Introduction
Jeff Fox
 
Drupal Development
Drupal DevelopmentDrupal Development
Drupal Development
Jeff Eaton
 
Dojo tutorial
Dojo tutorialDojo tutorial
Dojo tutorial
Girish Srivastava
 
Drupal Camp Porto - Developing with Drupal: First Steps
Drupal Camp Porto - Developing with Drupal: First StepsDrupal Camp Porto - Developing with Drupal: First Steps
Drupal Camp Porto - Developing with Drupal: First Steps
Luís Carneiro
 
jQuery: Nuts, Bolts and Bling
jQuery: Nuts, Bolts and BlingjQuery: Nuts, Bolts and Bling
jQuery: Nuts, Bolts and Bling
Doug Neiner
 
Moodle 3.3 - API Change Overview #mootieuk17
Moodle 3.3 - API Change Overview #mootieuk17Moodle 3.3 - API Change Overview #mootieuk17
Moodle 3.3 - API Change Overview #mootieuk17
Dan Poltawski
 
Zero To Dojo
Zero To DojoZero To Dojo
Zero To Dojo
Peter Higgins
 
Rich Internet Applications con JavaFX e NetBeans
Rich Internet Applications  con JavaFX e NetBeans Rich Internet Applications  con JavaFX e NetBeans
Rich Internet Applications con JavaFX e NetBeans
Fabrizio Giudici
 
Introduction To Dojo
Introduction To DojoIntroduction To Dojo
Introduction To Dojo
yoavrubin
 
Drupal Javascript for developers
Drupal Javascript for developersDrupal Javascript for developers
Drupal Javascript for developers
Dream Production AG
 
Organizing Code with JavascriptMVC
Organizing Code with JavascriptMVCOrganizing Code with JavascriptMVC
Organizing Code with JavascriptMVC
Thomas Reynolds
 
Complete Dojo
Complete DojoComplete Dojo
Complete Dojo
Girish Srivastava
 
XUL - Mozilla Application Framework
XUL - Mozilla Application FrameworkXUL - Mozilla Application Framework
XUL - Mozilla Application Framework
Uldis Bojars
 
YAG - Yet another gallery (2012)
YAG - Yet another gallery (2012)YAG - Yet another gallery (2012)
YAG - Yet another gallery (2012)
Daniel Lienert
 
Dojo toolkit
Dojo toolkitDojo toolkit
Dojo toolkit
Vanessa Me Tonini
 
The Dojo Toolkit An Introduction
The Dojo Toolkit   An IntroductionThe Dojo Toolkit   An Introduction
The Dojo Toolkit An Introduction
Jeff Fox
 
Drupal Development
Drupal DevelopmentDrupal Development
Drupal Development
Jeff Eaton
 
Drupal Camp Porto - Developing with Drupal: First Steps
Drupal Camp Porto - Developing with Drupal: First StepsDrupal Camp Porto - Developing with Drupal: First Steps
Drupal Camp Porto - Developing with Drupal: First Steps
Luís Carneiro
 
jQuery: Nuts, Bolts and Bling
jQuery: Nuts, Bolts and BlingjQuery: Nuts, Bolts and Bling
jQuery: Nuts, Bolts and Bling
Doug Neiner
 
Moodle 3.3 - API Change Overview #mootieuk17
Moodle 3.3 - API Change Overview #mootieuk17Moodle 3.3 - API Change Overview #mootieuk17
Moodle 3.3 - API Change Overview #mootieuk17
Dan Poltawski
 
Rich Internet Applications con JavaFX e NetBeans
Rich Internet Applications  con JavaFX e NetBeans Rich Internet Applications  con JavaFX e NetBeans
Rich Internet Applications con JavaFX e NetBeans
Fabrizio Giudici
 
Introduction To Dojo
Introduction To DojoIntroduction To Dojo
Introduction To Dojo
yoavrubin
 
Drupal Javascript for developers
Drupal Javascript for developersDrupal Javascript for developers
Drupal Javascript for developers
Dream Production AG
 
Organizing Code with JavascriptMVC
Organizing Code with JavascriptMVCOrganizing Code with JavascriptMVC
Organizing Code with JavascriptMVC
Thomas Reynolds
 
XUL - Mozilla Application Framework
XUL - Mozilla Application FrameworkXUL - Mozilla Application Framework
XUL - Mozilla Application Framework
Uldis Bojars
 
YAG - Yet another gallery (2012)
YAG - Yet another gallery (2012)YAG - Yet another gallery (2012)
YAG - Yet another gallery (2012)
Daniel Lienert
 

Viewers also liked (6)

jQuery%20on%20Rails%20Presentation
jQuery%20on%20Rails%20PresentationjQuery%20on%20Rails%20Presentation
jQuery%20on%20Rails%20Presentation
guestcf600a
 
CUF30107 Mod AA2 OHS Presentation
CUF30107 Mod AA2 OHS PresentationCUF30107 Mod AA2 OHS Presentation
CUF30107 Mod AA2 OHS Presentation
amcmills
 
jQuery-3-UI
jQuery-3-UIjQuery-3-UI
jQuery-3-UI
guestcf600a
 
ADV or how to make life easier to the Administrators of computer classrooms.
ADV or how to make life easier to the Administrators of computer classrooms.ADV or how to make life easier to the Administrators of computer classrooms.
ADV or how to make life easier to the Administrators of computer classrooms.
GabrielOchoa
 
jQuery-1-Ajax
jQuery-1-AjaxjQuery-1-Ajax
jQuery-1-Ajax
guestcf600a
 
jQuery%20on%20Rails%20Presentation
jQuery%20on%20Rails%20PresentationjQuery%20on%20Rails%20Presentation
jQuery%20on%20Rails%20Presentation
guestcf600a
 
jQuery%20on%20Rails%20Presentation
jQuery%20on%20Rails%20PresentationjQuery%20on%20Rails%20Presentation
jQuery%20on%20Rails%20Presentation
guestcf600a
 
CUF30107 Mod AA2 OHS Presentation
CUF30107 Mod AA2 OHS PresentationCUF30107 Mod AA2 OHS Presentation
CUF30107 Mod AA2 OHS Presentation
amcmills
 
ADV or how to make life easier to the Administrators of computer classrooms.
ADV or how to make life easier to the Administrators of computer classrooms.ADV or how to make life easier to the Administrators of computer classrooms.
ADV or how to make life easier to the Administrators of computer classrooms.
GabrielOchoa
 
jQuery%20on%20Rails%20Presentation
jQuery%20on%20Rails%20PresentationjQuery%20on%20Rails%20Presentation
jQuery%20on%20Rails%20Presentation
guestcf600a
 
Ad

Similar to jQuery-3-UI (20)

&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />
tutorialsruby
 
Microsoft PowerPoint - &lt;b>jQuery&lt;/b>-1-Ajax.pptx
Microsoft PowerPoint - &lt;b>jQuery&lt;/b>-1-Ajax.pptxMicrosoft PowerPoint - &lt;b>jQuery&lt;/b>-1-Ajax.pptx
Microsoft PowerPoint - &lt;b>jQuery&lt;/b>-1-Ajax.pptx
tutorialsruby
 
JavaScript-Core
JavaScript-CoreJavaScript-Core
JavaScript-Core
tutorialsruby
 
JavaScript-Core
JavaScript-CoreJavaScript-Core
JavaScript-Core
tutorialsruby
 
Ajax Tags Advanced
Ajax Tags AdvancedAjax Tags Advanced
Ajax Tags Advanced
AkramWaseem
 
Java script core
Java script coreJava script core
Java script core
Vaishnu Vaishu
 
01 overview-and-setup
01 overview-and-setup01 overview-and-setup
01 overview-and-setup
snopteck
 
JS Essence
JS EssenceJS Essence
JS Essence
Uladzimir Piatryka
 
Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8
Angela Byron
 
Prototype-1
Prototype-1Prototype-1
Prototype-1
tutorialsruby
 
Prototype-1
Prototype-1Prototype-1
Prototype-1
tutorialsruby
 
01 html-introduction
01 html-introduction01 html-introduction
01 html-introduction
Mohsin Mushtaq
 
Json generation
Json generationJson generation
Json generation
Aravindharamanan S
 
Automatically generating-json-from-java-objects-java-objects268
Automatically generating-json-from-java-objects-java-objects268Automatically generating-json-from-java-objects-java-objects268
Automatically generating-json-from-java-objects-java-objects268
Ramamohan Chokkam
 
Drupal Theme Development - DrupalCon Chicago 2011
Drupal Theme Development - DrupalCon Chicago 2011Drupal Theme Development - DrupalCon Chicago 2011
Drupal Theme Development - DrupalCon Chicago 2011
Ryan Price
 
GWT-Basics
GWT-BasicsGWT-Basics
GWT-Basics
tutorialsruby
 
GWT-Basics
GWT-BasicsGWT-Basics
GWT-Basics
tutorialsruby
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
Doris Chen
 
Android intents-3 www.j2program.blogspot.com
Android intents-3 www.j2program.blogspot.comAndroid intents-3 www.j2program.blogspot.com
Android intents-3 www.j2program.blogspot.com
Mohamed Rimzan
 
02 servlet-basics
02 servlet-basics02 servlet-basics
02 servlet-basics
snopteck
 
&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />
tutorialsruby
 
Microsoft PowerPoint - &lt;b>jQuery&lt;/b>-1-Ajax.pptx
Microsoft PowerPoint - &lt;b>jQuery&lt;/b>-1-Ajax.pptxMicrosoft PowerPoint - &lt;b>jQuery&lt;/b>-1-Ajax.pptx
Microsoft PowerPoint - &lt;b>jQuery&lt;/b>-1-Ajax.pptx
tutorialsruby
 
Ajax Tags Advanced
Ajax Tags AdvancedAjax Tags Advanced
Ajax Tags Advanced
AkramWaseem
 
01 overview-and-setup
01 overview-and-setup01 overview-and-setup
01 overview-and-setup
snopteck
 
Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8
Angela Byron
 
Automatically generating-json-from-java-objects-java-objects268
Automatically generating-json-from-java-objects-java-objects268Automatically generating-json-from-java-objects-java-objects268
Automatically generating-json-from-java-objects-java-objects268
Ramamohan Chokkam
 
Drupal Theme Development - DrupalCon Chicago 2011
Drupal Theme Development - DrupalCon Chicago 2011Drupal Theme Development - DrupalCon Chicago 2011
Drupal Theme Development - DrupalCon Chicago 2011
Ryan Price
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
Doris Chen
 
Android intents-3 www.j2program.blogspot.com
Android intents-3 www.j2program.blogspot.comAndroid intents-3 www.j2program.blogspot.com
Android intents-3 www.j2program.blogspot.com
Mohamed Rimzan
 
02 servlet-basics
02 servlet-basics02 servlet-basics
02 servlet-basics
snopteck
 
Ad

Recently uploaded (20)

Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 

jQuery-3-UI

  • 1. © 2009 Marty Hall j jQuery Part III: y Rich Interfaces with jQuery UI (j (jQuery 1.3, jQuery UI 1.7) y ,j y ) Originals of Slides and Source Code for Examples: http://courses.coreservlets.com/Course-Materials/ajax.html p j Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Developed and taught by well-known author and developer. At public venues or onsite at your location. © 2009 Marty Hall For live Ajax & GWT training, see training courses at http://courses.coreservlets.com/. t htt // l t / Taught by the author of Core Servlets and JSP, More Servlets and JSP and this tutorial. Available at public JSP, tutorial venues, or customized versions can be held on-site at your organization. •C Courses d developed and t l d d taught b M t H ll ht by Marty Hall – Java 6, intermediate/beginning servlets/JSP, advanced servlets/JSP, Struts, JSF 1.x & 2.0, Ajax, GWT, custom mix of topics Customized Java EE Training: http://courses.coreservlets.com/ – Ajax courses can concentrate on one library (jQuery, Prototype/Scriptaculous, Ext-JS, Dojo) or survey several • Courses developed and taught by coreservlets.com experts (edited by Marty) Servlets, JSP, JSF 1.x & JSFEJB3, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. – Spring, Hibernate/JPA, 2.0, Ruby/Rails Developed and taught by well-known author and developer. At public venues or onsite at your location. Contact [email protected] for details
  • 2. Topics in This Section • Overview • Installation and setup • Widgets – Static tabbed panels – Ajax tabbed panels – Accordion panels – Date picker – Slider – Progress bar 5 © 2009 Marty Hall Introduction Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Developed and taught by well-known author and developer. At public venues or onsite at your location.
  • 3. Overview • Set of rich GUI elements and effects – Tabbed panels, slider, etc – Effects similar to Scripaculous – Drag and drop API • Pros – Official part of j p jQuery y – Well tested – Very clean design – Many still show meaningful results if JavaScript disabled – Theming framework • Cons – No autocompleter (!) 7 – Not as extensive as Dojo, ext/JS, or YUI Downloading • Download custom bundle – h //j http://jqueryui.com/download i /d l d – Select widgets and effects you want – Press “Download” to download ZIP file of result • Unzip – Unzip result into location of your choice • D Download additional themes l d dditi l th – http://jqueryui.com/download – Deselect all widgets and options, choose different theme • You can also interactively build a customized theme – Unzip and copy entries in “css” folder to “css” folder of original download • Bookmark the documentation 8 – http://docs.jquery.com/UI/
  • 4. Installing Files • Load normal jQuery as before – jQuery UI download gives an additional copy in “js” folder, so if you are using jQuery UI, one download from jq y jqueryui.com is sufficient • As discussed in previous sections, it is common to rename jQuery-1.3.x.min.js to jQuery.js to simplify upgrades • Copy jQuery ui 1.7.x.custom.min.js jQuery-ui-1.7.x.custom.min.js – E.g., copy download_folder/js/jQuery-ui- 1.7.x.custom.min.js to WebContent/scripts – It is common to leave detailed name for this file, since UI i t l d t il d f thi fil i capabilities change from version to version • Copy CSS “theme” folder py – E.g., copy download_folder/css/ui-lightness to WebContent/css/ 9 Setting Up Page: Overview • Load required jQuery UI files – jquery.js (renamed from jquery-1.3.2.min.js) – jquery-ui-1.7.1.custom.min.js – Any custom CSS files your app uses • Load your files that use jQuery UI – Any custom JavaScript files your app uses – themename/jquery-ui-1.7.1.custom.min.css 10
  • 5. Setting Up Page: Example <link rel="stylesheet" href="./css/ui-lightness/jquery-ui-1.7.1.custom.css" href=" /css/ui lightness/jquery ui 1 7 1 custom css" type="text/css"/> <link rel="stylesheet" href="./css/sample-styles.css" href=" /css/sample styles css" type="text/css"/> <script src="./scripts/jquery.js" type="text/javascript"></script> t "t t/j i t"></ i t> <script src="./scripts/jquery-ui-1.7.1.custom.min.js" type="text/javascript"></script> <script src="./scripts/jquery-ui-examples.js" i t " / i t /j i l j " type="text/javascript"></script> 11 © 2009 Marty Hall Tabbed Panels with Static Content Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Developed and taught by well-known author and developer. At public venues or onsite at your location.
  • 6. Overview • Idea – T bb d panel where clicking tabs changes content inside Tabbed l h li ki t b h t t i id • HTML – Make a div container to hold the tabs • <div id="main-tabbed-panel-div">…</div> – Include a ul list containing internal hyperlinks • <ul> <li><a href="#panel1">Go to Panel 1</a></li> <li><a href="#panel2">Go to Panel 2</a></li> </ul> – Include divs whose ids match the href values (minus “#”) # ) • <div id="panel1">Content for panel 1</div> <div id="panel2">Content for panel 2</div> • Basic JavaScript – Call “tabs()” on the div container • $("#main-tabbed-panel-div").tabs(); 13 Example: HTML <div id="static-tabbed-panel-div"> <ul> <li><a href="#panel1">Panel 1</a></li> <li><a href="#panel2">Panel 2</a></li> <li><a href="#panel3">Panel 3</a></li> </ul> <div id="panel1"> <p>Content for first panel.</p> <p>Foo, bar, baz.</p><p>Yadda, yadda, yadda.</p> <p>Foo bar baz </p><p>Yadda yadda yadda </p> </div> <div id="panel2"> <p>Content for second panel.</p> <p>Foo, bar, baz.</p><p>Yadda, yadda, yadda.</p> </div> <div id="panel3"> <p>Content for thi d panel.</p> < >C t t f third l </ > <p>Foo, bar, baz.</p><p>Yadda, yadda, yadda.</p> </div> 14 </div>
  • 7. Example: JavaScript $(function() { $("#static-tabbed-panel-div").tabs(); $("# t ti t bb d l di ") t b () … }) }); 15 Example: Results 16
  • 8. Options for jQuery UI Widgets • You can supply anonymous object – Object has optional fields – Fields specify configuration and operational options • Examples – $("#some-id").tabs(); – $("#some-id") tabs({ option1: "foo", $( #some id ).tabs({ foo option2: "bar", option3: "baz" }) No t ili N trailing comma 17 Main Options for tabs({…}) for Static Content • selected (default: 0) – T b to be selected initially Tab b l d i i i ll • collapsible (default: false) – Can you click selected tab to hide it (and thus all panels)? • $("#main-id").tabs({ collapsible: true }); • disabled (default: empty array) – A array of t b numbers (0-based) that should be disabled An f tab b (0 b d) th t h ld b di bl d on startup • event (default: click) ( ) – The type of event that should initiate tab selection • $("#main-id").tabs({ event: "mouseover" }); • fx – Many options for specifying animation when tabs are 18 selected. See docs for details.
  • 9. © 2009 Marty Hall Tabbed Panels with Dynamic ( j ) Content y (Ajax) Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Developed and taught by well-known author and developer. At public venues or onsite at your location. Overview • Idea – T bb d panel where clicking tabs gets server content Tabbed l h li ki b • HTML – Make a div container to hold the tabs • <div id="main-tabbed-panel-div">…</div> – Include a ul list containing external relative hyperlinks • <ul> <li><a href="url1">Get Content for Panel 1</a></li> <li><a href="url2">Get Content for Panel 2</a></li> </ul> – That’s all! • Basic JavaScript – C ll “tabs()” on the div container Call “ b ()” h di i • $("#main-tabbed-panel-div").tabs(); 20
  • 10. Example: HTML <div id="ajax-tabbed-panel-div"> <ul> <li><a href="time-panel.jsp">Show Time</a></li> <li><a href="list-panel.jsp?range=5"> Show Small Numbers</a></li> <li><a href="list-panel.jsp?range=500"> Show Big Numbers</a></li> </ul> </div> 21 Example: JavaScript $(function() { $( #ajax tabbed panel div ).tabs({ $("#ajax-tabbed-panel-div") tabs({ collapsible: true }); … }); 22
  • 11. Example: JSP • time-panel.jsp <h3>It is now <%= new java.util.Date() %></h3> Do you know where your closures are doing? • list-panel.jsp p j p <% double range = 10.0; try { String r = request.getParameter("range"); range = I t Integer.parseInt(r); I t( ) } catch(Exception e) {} %> <h3>Numbers from 0 to <%= range %></h3> <ul> <li><%= Math.random() * range %></li> <li><%= Math.random() * range %></li> <li><%= Math.random() * range %></li> <li><%= Math.random() * range %></li> <li><%= Math.random() * range %></li> </ul> 23 Example: Results 24
  • 12. Main Options for tabs({…}) for Ajax Content • ajaxOptions (default: {}) – Any of the options used for $.ajax in first jQuery section • $("#main-id").tabs({ ajaxOptions: { error: errorHandler }}); • cache (default: false) – Should jQuery remember content for previously-selected tabs? Very helpful if result is always the same for a given y p y g URL. • spinner (default “<em>Loading…</em>”) – T to show in tab title after tab selected but before Text h i b il f b l db b f content is received from server 25 © 2009 Marty Hall Accordion Panels Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Developed and taught by well-known author and developer. At public venues or onsite at your location.
  • 13. Overview • Idea – Horizontally stacked panels with wide tabs • HTML – Make a div container to hold the tabs • <div id="main-accordion-panel-div">…</div> – Include alternating pairs of text with links and content • <h2><a href="#">Panel 1</a></h2> • <div>Content for Panel 1</div> • <h2><a href="#">Panel 2</ ></h2> <h2>< h f "#">P l 2</a></h2> • <div>Content for Panel 2</div> • Basic Ja aSc pt as c JavaScript – Call “accordion()” on the div container 27 • $("#main-accordion-panel-div").accordion(); Example: HTML <div id="accordion-panel-div"> <h2><a href="#">Panel 1</a></h2> href= # >Panel <div> <p>Content for first panel.</p> <p>Foo, bar, baz.</p><p>Yadda, yadda, yadda.</p> </div> <h2><a href="#">Panel 2</a></h2> <div> <p>Content for second panel.</p> <p>Foo, bar, baz.</p><p>Yadda, yadda, yadda.</p> </div> <h2><a href="#">Panel 3</a></h2> <div> <p>Content for third panel.</p> <p>Foo, bar, baz.</p><p>Yadda, yadda, yadda.</p> </div> 28 </div>
  • 14. Example: JavaScript $(function() { $("#accordion-panel-div").accordion(); $("# di l di ") di () … }) }); 29 Example: Results 30
  • 15. Main Options for accordion({…}) • active (default: 0) – Index or selector for initially-selected item • collapsible, event – C you click to hide? Event to trigger selection. Can li k hid ? E i l i – Same as with tabs() • animated (default: true) – Name of jQuery animation to use when showing content • $("#main-id").accordion({ animated: "fadeIn" }); 31 © 2009 Marty Hall Date Picker Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Developed and taught by well-known author and developer. At public venues or onsite at your location.
  • 16. Overview • Idea – Click in textfield to pop up calendar. Choosing day from calendar puts date string into textfield • HTML – Make an input field • <input type="text" id="date-field"/> p yp • Basic JavaScript – Call “datepicker()” on the textfield • $("#date-field").datepicker(); 33 Example: HTML <form action=#"> <table> <tr><td align="right"> From: <input type="text"/></td></tr> <tr><td align="right"> Departure Date: <input type="text" id="start-date"/></td></tr> / / / <tr><td align="right"> To: <input type="text"/></td></tr> <tr><td a g t td align="right"> g t Return Date: <input type="text" id="end-date"/></td></tr> <tr><td align="center"> <input type="button" value="Show Flights"/> <input type="button" value="Show Hotels"/> / </td></tr> </table> </form> 34
  • 17. Example: JavaScript $(function() { $("#start-date").datepicker(); $("#start date") datepicker(); $("#end-date").datepicker({ changeMonth: true, numberOfMonths: 2 }); … }); 35 Example: Results 36
  • 18. Main Options for datepicker({…}) datepicker({ }) • defaultDate (default: today) – I i i ll selected date Initially l dd • changeMonth (default: false) changeYear (default: false) – Should jQuery include a dropdown list to let you choose the month or year? • dayNames (default Sunday Saturday) Sunday…Saturday) monthNames (default January…December) – Names to use for the days and months. For other y languages. There are also various options for short versions of days. • numberOfMonths (default: 1) – How many months to show at a time 37 © 2009 Marty Hall Slider Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Developed and taught by well-known author and developer. At public venues or onsite at your location.
  • 19. Overview • Idea – Interactive slider to let user choose numeric values • Also supports double-handled sliders for choosing ranges • HTML – Make a placeholder div • <div id="div-for-slider"></div> • Basic JavaScript – Call “slider()” on the div, supply function to be called when slider moves • $("#div-for-slider").slider({ slide: sliderEventHandler }); – Look up value later • Event handler takes two arguments: event and ui. Use ui.value to get current slider value 39 Example: HTML <form action="#"> <table> … <tr><td align="right"> Temperature: </td> <td align="left" width="300"> <div id="slider-div" style="margin-left: 10px"></div> <div id="temp-display" align="center">32</div> / </td></tr> <tr><td align="center" colspan="2"> <input type="button" value="Order Coffee /> type= button value= Order Coffee"/> </td></tr> </table> </form> / 40
  • 20. Example: JavaScript function showTemp(event, ui) { $("#temp-display").html(ui.value); $("#temp display") html(ui value); } $(function() { $("#slider-div").slider({ min: 32, max: 212, slide: showTemp }); … }); 41 Example: Results 42
  • 21. Main Options for slider({…}) • min(default: 0) – V l corresponding t left or top Value di to l ft t • max – Value corresponding to right or bottom • slide – Function to call every time value changes. Function takes two arguments: event and ui object. Use ui.value to get currently g j g y selected value. • step (default: 1) – Granularity of changes • value (default: min) – The initial value • orientation (default: auto) i t ti (d f lt t ) – horizontal or vertical 43 © 2009 Marty Hall Progress Bar Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Developed and taught by well-known author and developer. At public venues or onsite at your location.
  • 22. Overview • Idea – Sh Shows progress from 0% to 100% f • Output only: does not accept user input • HTML – Make a placeholder div • <div id="div-for-progress-bar"></div> • Basic JavaScript – Call “progressbar()” on the div • $("#div-for-progress").progressbar(); – Have another event that changes values of bar • Look up value with $("#div-for-progress").progressbar("option", "value"); • Change value with $("#div-for-progress").progressbar("option", "value", num); 45 Example: HTML <form action="#"> <div id="progressbar-div"></div> <di id " b di "></di > <input type="button" value="Click 10 Times" id="progressbar-button"/> </form> 46
  • 23. Example: JavaScript function updateProgressBar() { var currentVal = $("#progressbar-div").progressbar("option", "value"); if (currentVal < 100) { currentVal += 10; + $("#progressbar-div").progressbar("option", "value", currentVal); } } $(function() { $("#progressbar-div").progressbar(); $("#progressbar-button").click(updateProgressBar); … }); 47 Example: Results 48
  • 24. © 2009 Marty Hall Wrap-up Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Developed and taught by well-known author and developer. At public venues or onsite at your location. Summary • Setup – Load jquery.js, jquery-ui…js and themename/…css • Ajax tabbed panels – HTML • <div id="main"> <ul><li><a href="relative-url-1">Panel 1</1></li> ul li a href relative url 1 Panel 1 /1 /li <li><a href="relative-url-2">Panel 2</1></li>… </ul></div> – JavaScript • $("#main").tabs(); • Others – Static tabbed panels, accordion panel, date picker, slider, 50 progress bar
  • 25. © 2009 Marty Hall Questions? Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, JSF 1.x & JSF 2.0, Struts Classic & Struts 2, Ajax, GWT, Spring, Hibernate/JPA, Java 5 & 6. Developed and taught by well-known author and developer. At public venues or onsite at your location.