The document provides an overview of Google Web Toolkit (GWT), summarizing its key features and components in 3 sentences or less:
GWT allows developers to write client-side applications in Java and compile them to JavaScript and HTML for cross-browser compatibility, providing widgets and UI components that handle browser inconsistencies as well as tools for AJAX communication between the client and server. GWT uses a Java-to-JavaScript compiler to translate Java code into optimized JavaScript and HTML that can run across browsers, handling details like cross-browser events, animations, and back button handling. SmartGWT extends GWT with additional widgets and data binding capabilities that simplify building rich internet applications through features like data sources that encapsulate domain
1. Prince Harry arrives in Sunset Valley hoping to start a new monarchy but finds that no one recognizes him. He gets a job in the military to earn money to build a palace. He slips on a treadmill at the gym and hopes it will make people notice him. He meets two women, Monika and her friend, and offends them by making rude comments about women. Monika points him to a neighbor's house where he meets Blair and they hit it off, but Harry can't stop thinking about Monika and her sassiness. The next day he decides to call Monika to apologize for his rude behavior.
This document discusses different stages of software development and abstraction. It covers Piaget's stages of cognitive development as they relate to programming. The key stages discussed are preoperational, concrete operational, and formal operational. The document advocates reducing problems to their essential parts through abstraction. It provides examples of abstract painting and emphasizes focusing on the problem being solved rather than the solution. It also discusses various software development principles like separation of concerns, single responsibility, and establishing clear communication through naming conventions and language.
My introductory presentation of Google Web Toolkit at Google IO Extended in Pordenone. What is GWT, what you can do with it. What are pros and cons of this toolkit.
Brian Polster of Credera gave a presentation on Smart GWT and Open Admin. The presentation covered what Open Admin and Smart GWT are, provided demos of them, and explained how to build a simple module in Open Admin. It also discussed security, dynamic form generation, and recapped the steps for adding a JPA data-driven section.
This document summarizes a presentation about Microsoft SharePoint Commerce Services and how it provides an integrated eCommerce solution when used together with Microsoft SharePoint and Commerce Server. It discusses the current eCommerce landscape, an overview of Commerce Server 2009 and SharePoint 2010 capabilities. It then outlines how SharePoint Commerce Services leverages the features of both to provide a more cost effective and flexible eCommerce solution compared to building a custom website on Commerce Server alone. The document concludes with a demonstration of SharePoint Commerce Services content management capabilities and notes that licensing considerations should be reviewed.
Dependency Injection and Aspect Oriented Programming presentationStephen Erdman
Dependency injection decouples code by injecting dependencies through interfaces rather than instantiating dependencies directly. This improves modularity, testability and replaceability. Aspect oriented programming further decouples cross-cutting concerns from the main code by injecting additional functionality at specific join points using pointcuts and advice. Examples show logging, caching, security and translation concerns injected as aspects into classes using annotations to specify join points.
Chris Griswold and Rick Gipson of Credera presented on Microsoft's xRM Development Framework. They discussed xRM and Microsoft Dynamics CRM, the business challenges of siloed applications, and the key components of the xRM framework, including easy data and UI creation, standard functionality, and web services. They demonstrated how the xRM framework allows organizations to build customized applications on top of Dynamics CRM to meet their specific needs.
1. Prince Harry arrives in Sunset Valley hoping to start a new monarchy but finds that no one recognizes him. He gets a job in the military to earn money to build a palace. He slips on a treadmill at the gym and hopes it will make people notice him. He meets two women, Monika and her friend, and offends them by making rude comments about women. Monika points him to a neighbor's house where he meets Blair and they hit it off, but Harry can't stop thinking about Monika and her sassiness. The next day he decides to call Monika to apologize for his rude behavior.
This document discusses different stages of software development and abstraction. It covers Piaget's stages of cognitive development as they relate to programming. The key stages discussed are preoperational, concrete operational, and formal operational. The document advocates reducing problems to their essential parts through abstraction. It provides examples of abstract painting and emphasizes focusing on the problem being solved rather than the solution. It also discusses various software development principles like separation of concerns, single responsibility, and establishing clear communication through naming conventions and language.
My introductory presentation of Google Web Toolkit at Google IO Extended in Pordenone. What is GWT, what you can do with it. What are pros and cons of this toolkit.
Brian Polster of Credera gave a presentation on Smart GWT and Open Admin. The presentation covered what Open Admin and Smart GWT are, provided demos of them, and explained how to build a simple module in Open Admin. It also discussed security, dynamic form generation, and recapped the steps for adding a JPA data-driven section.
This document summarizes a presentation about Microsoft SharePoint Commerce Services and how it provides an integrated eCommerce solution when used together with Microsoft SharePoint and Commerce Server. It discusses the current eCommerce landscape, an overview of Commerce Server 2009 and SharePoint 2010 capabilities. It then outlines how SharePoint Commerce Services leverages the features of both to provide a more cost effective and flexible eCommerce solution compared to building a custom website on Commerce Server alone. The document concludes with a demonstration of SharePoint Commerce Services content management capabilities and notes that licensing considerations should be reviewed.
Dependency Injection and Aspect Oriented Programming presentationStephen Erdman
Dependency injection decouples code by injecting dependencies through interfaces rather than instantiating dependencies directly. This improves modularity, testability and replaceability. Aspect oriented programming further decouples cross-cutting concerns from the main code by injecting additional functionality at specific join points using pointcuts and advice. Examples show logging, caching, security and translation concerns injected as aspects into classes using annotations to specify join points.
Chris Griswold and Rick Gipson of Credera presented on Microsoft's xRM Development Framework. They discussed xRM and Microsoft Dynamics CRM, the business challenges of siloed applications, and the key components of the xRM framework, including easy data and UI creation, standard functionality, and web services. They demonstrated how the xRM framework allows organizations to build customized applications on top of Dynamics CRM to meet their specific needs.
Rapid Prototyping and Usability Testing - HUXPADerrick Bowen
This document provides guidance on collecting early unbiased feedback on projects. It discusses how cognitive biases can prevent understanding user needs and recommends involving users throughout the design process. User experience design approaches are outlined including discovering user needs, designing, developing, and user testing prototypes and designs. Paper wireframes and clickable prototypes are suggested for early user testing. The System Usability Scale is presented as a method to measure user satisfaction. The key message is that early unbiased feedback from actual users will help ensure designs meet user needs and drive quicker adoption.
This document provides an agenda for a workshop on Google Web Toolkit (GWT). The agenda includes an introduction to Ajax and GWT's history. It discusses the main principles of GWT, including that Java code is compiled to JavaScript to run in browsers. It highlights advantages like ease of use, speed, and beautiful UIs. Usage statistics show GWT is widely used, including at Google. The document demonstrates GWT in action through samples and tutorials and leaves time for questions.
This document discusses morality and heresy. It argues that people are not inherently rational and are driven more by narratives and subconscious biases. Strict moral divisions can lead to problems. It examines how morality is used to dehumanize out-groups and how perceptions of good and evil are reductionist. Western religion paradoxically decreases empathy while increasing donations. Moral development is descriptive among hunter-gatherers rather than proscriptive.
Culture is something we take pride in at LinkedIn. As the collective personality of our organization, it sets us apart, defines who we are and shapes what we aspire to be.
Hundreds of companies have defined their unique cultures on SlideShare as part of the Culture Code campaign. We thought it was important for LinkedIn to join in this effort; we want everyone, including our current and our future employees, to know exactly what it’s like to work here.
This document discusses Vaadin component composition and extension points. It provides examples of composing a basic Address component from TextField components. It also discusses wrapping GWT widgets as Vaadin components using a connector architecture, creating extensions to add client-side features to existing components, and wrapping JavaScript functionality in Vaadin using a JavaScript extension.
GWT.create 2013: Themeing GWT Applications with the Appearance Patternniloc132
The document discusses theming in GWT applications using the appearance pattern. It covers responsibilities of appearances, examples of button, text field, and panel appearances, the appearance contract and exceptions, constructing and replacing appearances using module rules, tips for the API, implementing appearances, composing themes, and automating theme generation from CSS3 to images.
Accessible UIs with jQuery and Infusioncolinbdclark
Overview of accessible Web development techniques with jQuery and Fluid's Infusion application framework. This talk gives developers a primer in DHTML accessibility techniques such as keyboard navigation and ARIA, while teaching them the strengths of Infusion for building large applications in JavaScript.
Presented at 2009 Ajax Experience, Boston.
This document discusses using PHP for both web and desktop applications. It introduces PHP-GTK, which allows PHP to create graphical desktop applications with a native look and feel across platforms. It provides examples of creating windows, containers, working with signals and the main loop. The document also discusses installing PHP-GTK, some key considerations for desktop applications, and examples of creating widgets like trees and working with models.
GUI Programming using Tkinter-converted.pptxdvarshitha04
The document provides an introduction to GUI programming using Tkinter. It discusses:
- Tkinter is Python's default GUI library, which is based on the Tk toolkit. Tkinter allows building GUI applications that run on most platforms.
- The key steps to build a GUI app with Tkinter are: import Tkinter, create a top-level window, build GUI components within the window, connect components to code, and enter the main event loop.
- Tkinter provides widgets like buttons, labels, entries etc. that can be organized on the top-level window using geometry managers like grid, pack or place. Events and callbacks allow widgets to trigger application functions.
Java AWT (Abstract Windowing Toolkit) is an API for developing GUI applications in Java. It contains components like buttons, text fields, labels etc. that are platform-dependent and heavyweight. The AWT hierarchy includes containers like Frame and Panel that can hold other components. Common methods like add(), setSize() and setLayout() are used to manage components. Event handling in AWT involves implementing listener interfaces, registering components with listeners, and placing event code in the same class, a separate class, or anonymously.
The document outlines an agenda for a session on HTML, CSS, and UI/UX design. It includes a quick revision of HTML and CSS standards and practices. It introduces HTML5 best practices regarding semantic elements. It defines what UI/UX is and why it is important. It discusses some UI principles to follow, such as keeping designs simple, straightforward, and focused on context while guiding users and providing feedback.
This document provides an introduction to HTML5 and its new features. It discusses HTML5 as the successor to HTML 4.01 and XHTML 1.1, bringing new tags, features, and APIs. These include new structural elements, forms and validation, native audio and video, canvas, web storage, offline applications, geolocation, and drag and drop. It also outlines some of the new and updated HTML5 elements and semantic elements such as article, aside, footer, nav, progress, and meter. Finally, it provides examples of applications that can utilize various HTML5 features.
This document provides an introduction to HTML5 and its new features. It discusses HTML5 as the successor to HTML 4.01 and XHTML 1.1, bringing new tags, features, and APIs. These include new structural elements, forms and validation, native audio and video, Canvas API, web storage, offline applications, geolocation, and drag and drop. It also outlines some of the new and updated HTML5 elements and semantic elements such as article, aside, footer, nav, progress, and meter. Examples are given of how to implement these new features in HTML5.
This document provides an overview of key concepts in web development including tools, version control, web servers, and application architecture. It discusses JavaScript and Node.js for programming, Git for version control, and the model-view-controller (MVC) pattern for application structure with models for data, views for display, and controllers for communication. HTTP is covered for browser-server interaction using requests and responses along standard methods and formats.
The document provides an overview of HTML5 features including new elements, APIs, and tags. It discusses several new HTML5 elements and APIs such as <dialog>, <output>, drag and drop, geolocation, and server-sent events. It provides examples and explanations of how to use these new features. It also discusses the history and standardization process of HTML5 and compares it to other technologies like WebSockets.
Making your jQuery Plugins More Accessiblecolinbdclark
An accessibility primer for jQuery developers. This presentation covered teaches how to make widgets and plugins navigable with the keyboard, as well as support for assistive technologies with ARIA.
Presented at the 2009 jQuery Conference in Boston.
HTML 5 is the latest version of HTML that includes new semantic elements, forms, audio/video playback, canvas, and geolocation. It introduces several new features like local storage, drag and drop, and cross document messaging. The document provides an introduction to HTML5 and describes some of its new elements and features including audio/video playback, canvas drawing, forms, and data storage APIs. It also compares HTML5 to older HTML versions and provides instructions on getting started with HTML5.
Building Rich Internet Applications with Ext JSMats Bryntse
Mats Bryntse gave a presentation on Ext JS, a JavaScript framework for building rich web applications. He discussed what Ext JS is, when it should and should not be used, its features like widgets, grids, forms and charts. He covered the Ext JS class system, data package and how to extend Ext JS classes. The presentation provided an overview of building applications with Ext JS and its benefits over traditional web development.
Flutter architecture consists of widgets, gestures, state management, and layers. The key components are:
- Widgets are the primary UI elements and make up the application structure. MaterialApp and Scaffold widgets provide common UI components.
- Gestures allow interaction through taps, swipes, etc. and are handled by GestureDetector.
- State management tracks data that can change using StatefulWidget and State classes.
- The framework layer provides rendering, widgets and animation services to build Flutter apps.
Rapid Prototyping and Usability Testing - HUXPADerrick Bowen
This document provides guidance on collecting early unbiased feedback on projects. It discusses how cognitive biases can prevent understanding user needs and recommends involving users throughout the design process. User experience design approaches are outlined including discovering user needs, designing, developing, and user testing prototypes and designs. Paper wireframes and clickable prototypes are suggested for early user testing. The System Usability Scale is presented as a method to measure user satisfaction. The key message is that early unbiased feedback from actual users will help ensure designs meet user needs and drive quicker adoption.
This document provides an agenda for a workshop on Google Web Toolkit (GWT). The agenda includes an introduction to Ajax and GWT's history. It discusses the main principles of GWT, including that Java code is compiled to JavaScript to run in browsers. It highlights advantages like ease of use, speed, and beautiful UIs. Usage statistics show GWT is widely used, including at Google. The document demonstrates GWT in action through samples and tutorials and leaves time for questions.
This document discusses morality and heresy. It argues that people are not inherently rational and are driven more by narratives and subconscious biases. Strict moral divisions can lead to problems. It examines how morality is used to dehumanize out-groups and how perceptions of good and evil are reductionist. Western religion paradoxically decreases empathy while increasing donations. Moral development is descriptive among hunter-gatherers rather than proscriptive.
Culture is something we take pride in at LinkedIn. As the collective personality of our organization, it sets us apart, defines who we are and shapes what we aspire to be.
Hundreds of companies have defined their unique cultures on SlideShare as part of the Culture Code campaign. We thought it was important for LinkedIn to join in this effort; we want everyone, including our current and our future employees, to know exactly what it’s like to work here.
This document discusses Vaadin component composition and extension points. It provides examples of composing a basic Address component from TextField components. It also discusses wrapping GWT widgets as Vaadin components using a connector architecture, creating extensions to add client-side features to existing components, and wrapping JavaScript functionality in Vaadin using a JavaScript extension.
GWT.create 2013: Themeing GWT Applications with the Appearance Patternniloc132
The document discusses theming in GWT applications using the appearance pattern. It covers responsibilities of appearances, examples of button, text field, and panel appearances, the appearance contract and exceptions, constructing and replacing appearances using module rules, tips for the API, implementing appearances, composing themes, and automating theme generation from CSS3 to images.
Accessible UIs with jQuery and Infusioncolinbdclark
Overview of accessible Web development techniques with jQuery and Fluid's Infusion application framework. This talk gives developers a primer in DHTML accessibility techniques such as keyboard navigation and ARIA, while teaching them the strengths of Infusion for building large applications in JavaScript.
Presented at 2009 Ajax Experience, Boston.
This document discusses using PHP for both web and desktop applications. It introduces PHP-GTK, which allows PHP to create graphical desktop applications with a native look and feel across platforms. It provides examples of creating windows, containers, working with signals and the main loop. The document also discusses installing PHP-GTK, some key considerations for desktop applications, and examples of creating widgets like trees and working with models.
GUI Programming using Tkinter-converted.pptxdvarshitha04
The document provides an introduction to GUI programming using Tkinter. It discusses:
- Tkinter is Python's default GUI library, which is based on the Tk toolkit. Tkinter allows building GUI applications that run on most platforms.
- The key steps to build a GUI app with Tkinter are: import Tkinter, create a top-level window, build GUI components within the window, connect components to code, and enter the main event loop.
- Tkinter provides widgets like buttons, labels, entries etc. that can be organized on the top-level window using geometry managers like grid, pack or place. Events and callbacks allow widgets to trigger application functions.
Java AWT (Abstract Windowing Toolkit) is an API for developing GUI applications in Java. It contains components like buttons, text fields, labels etc. that are platform-dependent and heavyweight. The AWT hierarchy includes containers like Frame and Panel that can hold other components. Common methods like add(), setSize() and setLayout() are used to manage components. Event handling in AWT involves implementing listener interfaces, registering components with listeners, and placing event code in the same class, a separate class, or anonymously.
The document outlines an agenda for a session on HTML, CSS, and UI/UX design. It includes a quick revision of HTML and CSS standards and practices. It introduces HTML5 best practices regarding semantic elements. It defines what UI/UX is and why it is important. It discusses some UI principles to follow, such as keeping designs simple, straightforward, and focused on context while guiding users and providing feedback.
This document provides an introduction to HTML5 and its new features. It discusses HTML5 as the successor to HTML 4.01 and XHTML 1.1, bringing new tags, features, and APIs. These include new structural elements, forms and validation, native audio and video, canvas, web storage, offline applications, geolocation, and drag and drop. It also outlines some of the new and updated HTML5 elements and semantic elements such as article, aside, footer, nav, progress, and meter. Finally, it provides examples of applications that can utilize various HTML5 features.
This document provides an introduction to HTML5 and its new features. It discusses HTML5 as the successor to HTML 4.01 and XHTML 1.1, bringing new tags, features, and APIs. These include new structural elements, forms and validation, native audio and video, Canvas API, web storage, offline applications, geolocation, and drag and drop. It also outlines some of the new and updated HTML5 elements and semantic elements such as article, aside, footer, nav, progress, and meter. Examples are given of how to implement these new features in HTML5.
This document provides an overview of key concepts in web development including tools, version control, web servers, and application architecture. It discusses JavaScript and Node.js for programming, Git for version control, and the model-view-controller (MVC) pattern for application structure with models for data, views for display, and controllers for communication. HTTP is covered for browser-server interaction using requests and responses along standard methods and formats.
The document provides an overview of HTML5 features including new elements, APIs, and tags. It discusses several new HTML5 elements and APIs such as <dialog>, <output>, drag and drop, geolocation, and server-sent events. It provides examples and explanations of how to use these new features. It also discusses the history and standardization process of HTML5 and compares it to other technologies like WebSockets.
Making your jQuery Plugins More Accessiblecolinbdclark
An accessibility primer for jQuery developers. This presentation covered teaches how to make widgets and plugins navigable with the keyboard, as well as support for assistive technologies with ARIA.
Presented at the 2009 jQuery Conference in Boston.
HTML 5 is the latest version of HTML that includes new semantic elements, forms, audio/video playback, canvas, and geolocation. It introduces several new features like local storage, drag and drop, and cross document messaging. The document provides an introduction to HTML5 and describes some of its new elements and features including audio/video playback, canvas drawing, forms, and data storage APIs. It also compares HTML5 to older HTML versions and provides instructions on getting started with HTML5.
Building Rich Internet Applications with Ext JSMats Bryntse
Mats Bryntse gave a presentation on Ext JS, a JavaScript framework for building rich web applications. He discussed what Ext JS is, when it should and should not be used, its features like widgets, grids, forms and charts. He covered the Ext JS class system, data package and how to extend Ext JS classes. The presentation provided an overview of building applications with Ext JS and its benefits over traditional web development.
Flutter architecture consists of widgets, gestures, state management, and layers. The key components are:
- Widgets are the primary UI elements and make up the application structure. MaterialApp and Scaffold widgets provide common UI components.
- Gestures allow interaction through taps, swipes, etc. and are handled by GestureDetector.
- State management tracks data that can change using StatefulWidget and State classes.
- The framework layer provides rendering, widgets and animation services to build Flutter apps.
Twitter Bootstrap is an open-source front-end framework that provides HTML, CSS, and JavaScript design templates for typography, forms, buttons, navigation, and other interface components as well as optional JavaScript extensions. It aims to aid web development and promote responsive design. Developed by developers at Twitter, Bootstrap is one of the most popular front-end frameworks, featuring a grid system, extensive pre-built components, and responsive design capabilities for a variety of screen sizes.
1. The document provides an introduction to HTML, CSS, and Git for setting up a development environment and submitting assignments. It includes explanations of common HTML tags, exercises to practice using HTML tags, and introductions to CSS box model properties and flexbox layout.
2. The second section focuses on CSS, explaining how to link CSS to HTML, add IDs and classes, and basic CSS syntax. It includes exercises to select elements using IDs and classes and use box model properties to layout elements.
3. The third section covers the CSS box model in more detail and introduces flexbox for layout. It includes exercises to use padding, borders, and flexbox properties to layout elements on a page. Additional flexbox resources are
Python provides several options for developing graphical user interfaces (GUIs), with Tkinter being the most commonly used. Tkinter is a standard Python interface that allows creating GUI applications in Python easily. To create a Tkinter app, one imports Tkinter, creates the main window, adds widgets to it, and applies event triggers to the widgets. Common widgets in Tkinter include buttons, canvases, checkbuttons, entries, frames, labels, listboxes, menus, messages, and radiobuttons.
Leveraging the Chaos tool suite for module developmentzroger
CTools, aka the Chaos tool suite is one of the most popular and arguably least understood modules in the contributions repository. While most users will enable it only because of a dependency (i.e. panels), there are some wonderful gems in this tool kit that simplify module development.
Similar to Google web toolkit web conference presenation (20)
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
CAKE: Sharing Slices of Confidential Data on BlockchainClaudio Di Ciccio
Presented at the CAiSE 2024 Forum, Intelligent Information Systems, June 6th, Limassol, Cyprus.
Synopsis: Cooperative information systems typically involve various entities in a collaborative process within a distributed environment. Blockchain technology offers a mechanism for automating such processes, even when only partial trust exists among participants. The data stored on the blockchain is replicated across all nodes in the network, ensuring accessibility to all participants. While this aspect facilitates traceability, integrity, and persistence, it poses challenges for adopting public blockchains in enterprise settings due to confidentiality issues. In this paper, we present a software tool named Control Access via Key Encryption (CAKE), designed to ensure data confidentiality in scenarios involving public blockchains. After outlining its core components and functionalities, we showcase the application of CAKE in the context of a real-world cyber-security project within the logistics domain.
Paper: https://doi.org/10.1007/978-3-031-61000-4_16
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceIndexBug
Imagine a world where machines not only perform tasks but also learn, adapt, and make decisions. This is the promise of Artificial Intelligence (AI), a technology that's not just enhancing our lives but revolutionizing entire industries.
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
7. Code Handling
• Compiler is upgradeable and customizable
• Deployed app detects browser and locale and serves
appropriate code
• Speed
• Incorporating other JavaScript libraries
8. Compiler
• There are periodic updates to GWT that generally add on
features, but can also alter underlying implementation
details
• You can customize the compiler yourself, but that’s far
outside the scope of this talk
9. Browser and Locale detection
• Compiles separate files for browser/locale combination
• Detects combos on initial communication and serves up
only appropriate file
• Works for all major browsers and iOS and Android agents
• Allows user configuration
10. Overriding detection and
serving
XML in module file
Example from TextBox.gwt.xml
<replace-with class=“com.google.gwt.user.client.ui.impl.TextBoxImplIE6”>
<when-type-is class=“com.google.gwt.user.client.ui.impl.TextBoxImpl” />
<when-property-is name=“user.agent” value=“ie6” />
</replace-with>
11. If the web page drops below 50 mph, it will explode!!!
12. Speed
• Code pruning
• Compression and inlining
• Caching (*cache.js files)
• Reduces number of js files
• Bundling (Advanced topic)
17. Extensions
• Near full replacement of standard GWT
• 3 options for full extensions
o Ext GWT (http://www.sencha.com/products/extgwt/)
o GWT-Ext (http://gwt-ext.com/)
o SmartGWT
(http://www.smartclient.com/product/sgwtOverview.jsp)
• gwtQuery (http://code.google.com/p/gwtquery/)
18. Google APIs
Tightly integrated wrappers to Google libraries
(http://code.google.com/p/gwt-google-apis/)
• Gears
• Gadgets
• AJAX search
• Maps
• Chart Tools (Visualization)
• Language
• AJAX loader
• …Many more
21. Widgets
Work like blue prints – set up spaces and the things to put
into those spaces, magic elves actually construct it
Types of widgets:
• Panels
• Static Components
• Form Components
• Complex Componets
22. Panels
Act like the rooms in the blue print – set up the spaces and
how they relate to each other
Types of panels:
• Simple Layout
• Complex Layout
• Containers
• FormPanel
• Popups
23. Layout Panels
• Do the main work of setting up how every thing is laid out
• Exist in quirks and standards mode
o Standards requires HTML files to start with <!DOCTYPE html>
o Quirks class <Type>Panel, Standards <Type>LayoutPanel
• Often nested to get full layout
• Widgets are generally added with
examplePanel.add(aWidget);
24. Simple Layouts
• RootPanel
• FlowPanel
• HorizontalPanel and VerticalPanel
• SplitPanels (Horizontal and Vertical)
• DockPanel
• DeckPanel
• HTMLPanel
• Tables (Grid and FlexTable)
25. RootPanel
This is a special panel is used to load your layouts into the
HTML page. It can be used either to insert at the document
root or inside a div tag.
To use it, you just call the static get method on the RootPanel
class, like this:
RootPanel docRootPanel = RootPanel.get();
or
RootPanel divPanel = RootPanel(“div-id”);
26. Flow Panel
Lays out the widgets to it linearly (by default from left to right)
until it reaches the end of “line” and then wraps around to the
next “line”
28. Split Panels
• A panel that is split into two sections with a moveable
divider between them.
• It can be either a HorizontalSplitPanel or
VerticalSplitPanel.
• Widgets are added with setTopWidget(aWidget),
setBottomWidget(aWidget), setLeftWidget(aWidget), or
setRightWidget(aWidget)
29. DockPanel
• Splits its area into 5 sections: North, South, East, West,
and Center
• Widgets are added with exampleDockPanel.add(aWidget,
DockPanel.NORTH); with the appropriate section name
• If no widget is added to a section, the other sections take
over its area
30. DeckPanel
• Deck as in a deck of cards
• Can have any number of widgets added to it, but only
shows one at a time
• TabPanel is a specialize case of this panel
• Visible widget is set using
exampleDeckPanel.showWidget(index); where index is the
order (starting at 0) that the widget was added
• Widgets can be inserted at specific index with
exampleDeckPanel.insert(aWidget, insertIndex);
31. HTMLPanel
• Used to mix HTML with widgets
• You’re generally not going to be using this
32. Table Panels: Grid and
FlexTable
• Uses the html table tag to lay out widgets in rows and
columns – ultimately cells
• Grid has fixed number of rows and columns (set on
creation) and no spanning
• FlexTable can add and remove rows and columns and can
span
• A cell’s contents can be a Widget, HTML, or Text and is set
by the set<Type>(row, column, <Widget, HTML, or Text>);
method
36. Container Panels
These are panels that contain widgets so as to add some
behavior to them
Types:
• Composite and Simple
• ScrollPanel
• DisclosurePanel
40. FormPanel
Sort of what you would expect in that it encapsulates an
HTML form, but there are a few automatic enhancements
• It submits the form and handles the return using AJAX
• It uses a FormHandler (we’ll get to handlers) to run code
right before the form is submitted to the server, including
cancelling submission. This is great for form validation.
• The FormHandler also runs code when the server responds
to the form submission
41. Popups: PopupPanel and
DialogBox
• Pops up a panel
• DialogBox differs from PopupPanel in that it has a
draggable caption bar
• PopupPanels are used for things like tooltips, drop down
lists, pull down menus, etc.
• DialogBoxes are used for…dialogs
42. Static Widgets
• These are like your signs and artwork that are going to be
put up in the house you’re building.
• They include what you would expect:
o Labels for displaying simple text
o HTML
o Images
43. Hyperlinks
• Hyperlinks are generally also considered static widgets,
although they’re more like really fast elevators than pieces
of information like the others
• These are not like HTML hyperlinks. They link to things
within the GWT application, not to external resources that
will cause a page reload
o You’d use an HTML widget with an HTML hyperlink in it or an
Anchor component to do this, but it will cause the GWT application
to be unloaded
• They work by pushing a new token onto the History stack
(more on that later)
44. Form Widgets
• These are all the widgets which take user input, whether
they are used in a form or not
• It includes all the usual suspects: textboxes, checkboxes,
radio buttons, etc.
• It also has some new kids that achieve common tasks
46. SuggestBox
• A TextBox that responds to user input by matching against
a list and suggesting matching values
• This is achieved by associating an instance of the
SuggestOracle with it – we’ll cover this later when we look
at coding
• Suggestions from a defined list of strings have a default
MultiWordSuggestOracle that takes a an array of strings
• Almost all other cases will involve submitting the term to a
search service and displaying the results
49. Tree
• For simple display and interaction with hierarchical data
• Nodes are represented by TreeItem objects
• You can add text, a widget, or a TreeItem to the tree with
the addItem method
• Calling addItem on the tree will add to the hidden root
node, calling it on a TreeItem will place the added item
under that TreeItem
51. Cell Widgets
For complex structured rendering/editing, GWT provides
widgets that center around using cells
Types of cell widgets:
• CellTable
• CellTree
• CellBrowser
52. Cells
Used to display a unit of data
Predefined types:
• Text
• Number
• Date
• Button
• Image
53. Text Cells
• TextCell – just displays text
• ClickableTextCell – can be clicked on
• TextInputCell – basically a TextBox cell
• EditTextCell – click to edit
55. Date Cells
• DateCell – displays a date based on the passed in
DateFormat object
• DatePickerCell – DateCell with a popup calendar editor for
choosing date
56. Button Cells
• ButtonCell – a cell with a button in it
• ActionCell – a button cell that takes a delegate to perform
the action
• CheckBoxCell – a cell with a checkbox in it
• SelectionCell – a cell with a drop down menu
57. Image Cells
• ImageCell – renders an image based on URL
• ImageResourceCell – renders a defined ImageResouce –
don’t worry about what this is right now
• ImageLoadingCell – initially displays a loading indicator
until the image is loaded
58. Other Cells
• A CompositeCell is a container for child cells that are laid
out vertically by default
• An IconCellDecorator adds an icon to another Cell
59. Styling UI Widgets
• GWT itself doesn’t style widgets, instead it relies on CSS
styles
• Widgets are created with default css classes
• Styles can be set, added, or removed at any point with
setStyleName, addStyleName, and removeStyleName,
respectively
60. Themes
• GWT ships with defined themes that use the default
widget styles to present a unified look and feel to an
application
• Other open source themes are available
• Themes can be custom built
61. Animations
It is possible to hand code the animations you want, but I
recommend using one of the available wrappers for effects
libraries. My suggestion would be gwt-fx
(http://code.google.com/p/gwt-fx/)
In gwt-fx, you create an effect object that takes the DOM
element of a widget (retrieved with the getElement method)
and then call theEffect.play();
62. Handling the back button
The browser navigation buttons are difficulties when using
AJAX applications. The default behavior is to unload the
application and load the previous page in the browser history.
GWT deals with this by using anchors for internal browsing
and the History class to add and remove application states
that don’t come from Hyperlink navigation
63. History Stack
• Primary way to navigate the application
• Tokens get pushed onto the History stack
o Automatically with Hyperlink click
o Explicitly with a call to History.newItem(tokenString);
• Handled by ValueChangeHandler
Code:
History.addValueChangeHandler(new ValueChangeHandler<String>() {
public void onValueChange(ValueChangeEvent<String> event) {
String historyToken = event.getValue();
…set up the state change
}
});
64. GWT Widgets Examples
• GWT Showcase
(http://gwt.google.com/samples/Showcase/Showcase.ht
ml)
• Example Mail app
(http://gwt.google.com/samples/Mail/Mail.html)
66. HTTP Module
• GWT ships with the HTTP Module, which provides a simple
way to communicate with asynchronous HTTP requests
and responses
• To use it, you need to include <inherits
name=“com.google.gwt.http.HTTP” /> in your module file
(will be explained later)
67. RequestBuilder
Has direct support for GET and POST requests
Syntax to create:
RequestBuilder(RequestBuilder.<METHOD>, url);
to send:
senderRequest(queryString, RequestCallBack);
69. PUT and DELETE calls
RequestBuilder methods are only GET and POST but if can
get PUT and DELETE using the X-HTTP-Method-Override
header
Example:
RequestBuilder builder =
RequestBuilder(RequestBuilder.POST, url);
builder.setHeader(“X-HTTP-Method-Override”, “PUT”);
builder.sendRequest(queryString, requestCallback);
70. Reading and Writing XML
• Reading you use an XMLParser.parse(xmlString); method
call to return a Document object that exposes the DOM.
• There are also XPath modules available, such as
jaxen4gwt (http://code.google.com/p/jaxen4gwt/)
• Writing you can either programmatically create a
Document object and add Elements to it or just write out
an XML String
71. Reading and Writing JSON
• The JSON module needs to be explicitly included in your
module file with the line: <inherits
name=“com.google.gwt.json.JSON” />
• You use JSONParser.parse(jsonString); method call, which
returns a JSONObject
73. What’s so smart about it
• DataSources
o Data Binding!
• Better Widgets
o They help with Data Binding!
74. DataSources
• These are the central concept of SmartGWT, pretty much
everything flows from them
• Encapsulates three aspects of data
o Domain model enhanced with things like validation, etc.
o Default UI field aspects like editors, formatting, etc.
o Communication with server and/or data source
• If you’re running a Java server, there are options, especially
if you choose to go with one of the pay versions, but we’re
going to focusing on the RestDataSource.
75. Enhanced Domain Model
• Very similar to setting up ORM entity
• Add typed fields with addField(dataSourceField); method
calls
• On the DataSourceFields:
o Set up validation with Validator objects
o Set up relationship to another DataSource
o Add a list of allowed values or allowed key -> value map
76. UI Details
• Set up default id, hidden, name, and details fields for
automating display of data
• On fields:
o Set up title label to display
o Set up editor to use to edit the field
o Set up hierarchical relationship with parent or children fields
77. Data Binding
• DataSources allow automatic data binding with ui
compents
• Can either explicitly set field to component or with some
(DynamicForm is most often used), just setDatasource() on
the widget and SmartGWT will do the rest
+
78. Communicating with the
Server and/or Data Store
• DataSources by default have the four CRUD operators set
up – as Add, Update, Fetch, and Delete
• Custom operations can be set up as well
• RestDataSource is set up to easily work with either XML or
JSON in a specific format
• Other formats are possible through overriding the
transformRequest and transformResponse methods
• Client-only DataSources are very good for prototyping,
testing, and local development
80. Expected JSON Format
{ response:
{ status:0,
startRow:0,
endRow:76,
totalRows:546,
data:[
{field1:"value", field2:"value"},
{field1:"value", field2:"value"},
... 75 total records ...
]
}
}
81. Extracting embedded
values
There may be times when the DataSource will not directly
match the structure of the returned XML or JSON. In that
case, there are a couple of ways of using methods on the
fields to extract the data.
• Use setXPath(xPathSelectorString); to specify the data
• For more complicated or computed situations use a
FieldValueExtractor object
82. Better Widgets
• ListGrid
• TreeListGrid
• DynamicForm
• DetailViewer
• Calendar Widgets
Also, built in cool effects
83. ListGrid and TreeGrid
• Primarily used with DataSource
• Can have data loaded into it with Record objects
• Tree must have hierarchical DataSource (have field that
has a foreign key reference to itself) and have the root set
• Highly recommend setting setLoadDataOnDemand(false);
and setAutoFetchData(true);
• Can control displayed fields either directly by adding
ListGridField or TreeGridField, all from DataSource by
setUseAllDataSourceFields(true);, or using
showXXXFields(true);
84. DynamicForm and
DetailViewer
• CRUD form and display view
• Usually have DataSource set on them, but can be
populated explicitly from Record object
• Same deal as Grids, can add fields directly, use all of them,
or showXXXFields(true);
85. Calendar Widgets
• A lot of effort was put into these, really need to look at
showcase
87. Structure of GWT
application project
• Main division between code and compiled html and
JavaScript
• Code is under src and then the top level package
• Deployable application of compiled html and JavaScript
under war
88. Code
• Under src/<top level package> there are three main
important areas
o Client folder
o Server folder
o Module file
89. Client folder/package
• This contains all the code that is going to be compiled into
the interface and supporting classes
• Basically, this is everything that the client is going to see
• Other folders can be set to be compiled like the client
folder in the module file
90. Server folder/package
• If you are running Java code on the server and/or setting
up resources that they are going to be pulling from the
server, this is where it would be put
• What is put in here shows up in the war deployable
application without any compilation or translation
• We’re not going to be using this much, but it’s very
important in other types of applications
• Server is just to be helpful. Any folder that is not client and
not set to be compiled in the module file will behave the
same
91. Module File
• This is the primary file that sets up the GWT application
• Usually will be called <application name>.gwt.xml
• Sections
o Inherits
• Core Web Toolkit - <inherits name='com.google.gwt.user.User'/>
• Theme Module
• Additional add-ons – for using SmartGWT, you would put in
<inherits name='com.smartgwt.SmartGwt' />
o Stylesheets - <stylesheet src=“url” />
o Entry Point - <entry-point class=“entry point class” />
o Source paths – optional, for when you want to compile other
folders like the client on
92. Entry Point
• One class in the client folder (or a subfolder) must be
designated as the Entry Point in the module file
• Needs to implement the EntryPoint interface
o this means it needs to have a onModuleLoad() method which is the
initial method that will get called when the module loads. This is
where you will do the main setup for the application.
93. Deployable application
• By default, is put under the war folder
• There’s a JavaScript folder in here and a web-inf for server
settings, but don’t worry about them
• Main important file is the <application name>.html file.
This needs to call the GWT application JavaScript file and
set up any divs that you are going to load into
• Also has code to allow back handling – just leave this
alone
• Can reference any css files you want
95. Tools we’re going to use
• Some version of Eclipse. I recommend the SpringToolSuite
from SpringSource
(http://www.springsource.com/developer/sts).
• The Google Plugin for Eclipse
(http://code.google.com/eclipse/)
• WindowBuilder Pro
(http://code.google.com/javadevtools/download-
wbpro.html)
• SmartGWT
(http://www.smartclient.com/product/sgwtOverview.jsp)
• A web browser (I recommend FireFox with Firebug
installed)
96. Create a project
• Go through File -> New menu or better yet, click on the
blue g button
• Fill in project name and top level package
o Top level package can be anything you want, but convention is for
it to start with your website backwards and then the project name,
so a UPenn one would be edu.upenn.<project name>
• Use Google Web Toolkit should be checked
• Use Google App Engine should not, unless you are planning
on deploying there
• Yes, you want the sample code included
97. Run/debug with IDE
• GWT plugin has hosted browser set up and the code will be
run as Java
• Right click on project -> select Run as… or Debug as… ->
Web Application
• Will start and bring up Development Mode if there are no
problems. Double click on URL.
• To load changes, compile project by clicking on red button
next to blue g button
• When done, click on red square in development mode tab
99. GWT Designer
• To use, right click on the file you want to edit and choose
Open With -> GWT Designer
• If you’re working with SmartGWT, it needs to be set up
once by right clicking on a file or folder in the src area and
choosing Google Web Toolkit -> Configure for using
SmartGWT
o You will have to then point it to your SmartGWT installation
directory so it can find the jar files
101. Generics <>
• You’ll see warnings for this, but you can ignore them if you
want
• For type safety, compiler hints are given for classes that
work from templates or generic utilities, like Collections
102. Collections
• Java arrays are set up how you would think, but they are
not extensible (can’t grow or shrink) and there aren’t
associative arrays
• You use Collections instead
o ArrayList = extensible array
o HashMap = associative array
103. Using objects in handlers
• If an object is defined outside a handler and you want to
use it inside, you must declare it final
o This does mean that you can’t change the value once it has been
set
Example:
final String finalizedString = “Hi”;
String nonFinalizedString = “Hello”;
Button.addClickListener(new ClickListener(){
public void onClick(Widget sender){
String message = finalizedString; //this is fine
String message = nonFinalizedString; //this won’t work
});
104. Checking for equality
• For objects, the = operator checks if they are the same
object (i.e. exist in the same spot in memory)
• To check if the values are equal, you have to use the
.equals(); method
• This is most important to remember with Strings
Example:
String strOne = “Hi”;
String strTwo = “Hi”;
strOne = strTwo; //this will be false
strOne.equals(strTwo); // this will be true
105. Follow up reading
• Google Web Toolkit project on Google code:
http://code.google.com/webtoolkit/
• Book: Google Web Toolkit Applications:
• SmartGWT forums:
http://forums.smartclient.com/forumdisplay.php?f=14
106. Thanks so much
• Stephen Erdman
• Email: serdman@wharton.upenn.edu