Вы находитесь на странице: 1из 20

openui5

OpenUI5: UI Development Toolkit for HTML5


OpenUI5 Version for the OpenUI5 Demo Kit
• OpenUI5: UI Development Toolkit for HTML5
– What’s New in OpenUI5
• What’s New in OpenUI5 1.71
– Read Me First
• Compatibility Rules
• Browser and Platform Support
– Visual Degradations
• Supported Library Combinations
• Supported Combinations of Themes and Libraries
• Versioning of OpenUI5
• Upgrading
– Upgrading from a Version Below 1.40
– Upgrading from a Version Below 1.38
• Deprecated Themes and Libraries
• SAPUI5 vs. OpenUI5
– Get Started: Setup and Tutorials
• Development Environment
– App Development Using OpenUI5
– App Development Using SAP Web IDE
• Get a Trial Account and Access SAP Web IDE
• Start SAP Web IDE
• Create a neo-app.json Project Configuration File
• Create an index.html File
• Run the App
• Create a Northwind Destination
– App Development Using SAPUI5 Tools for Eclipse
• Installing SAPUI5 Tools for Eclipse
• Using SAPUI5 Tools for Eclipse
– Create an SAPUI5 Application Project
– Add a Control to Your View
– Implement a Method in the Controller
– Create an Additional View
– Integrate a New View
– JavaScript Code Completion
– Linking your Eclipse Editor to the Demo Kit
– Use JavaScript and XML Templates
– SAPUI5 Snippets
– Running an App in the Application Preview
• Use a SimpleProxyServlet for Testing to
Avoid Cross-domain Requests
– Developing OpenUI5
– Development for Hybrid Web Containers
• Quick Start
– Step 1: Ready…
– Step 2: Steady…
– Step 3: Go!
• Walkthrough
– Step 1: Hello World!
– Step 2: Bootstrap
– Step 3: Controls
– Step 4: XML Views
– Step 5: Controllers
– Step 6: Modules
– Step 7: JSON Model
– Step 8: Translatable Texts
– Step 9: Component Configuration
– Step 10: Descriptor for Applications
– Step 11: Pages and Panels
– Step 12: Shell Control as Container
– Step 13: Margins and Paddings
– Step 14: Custom CSS and Theme Colors
– Step 15: Nested Views
– Step 16: Dialogs and Fragments
– Step 17: Fragment Callbacks
– Step 18: Icons
– Step 19: Reuse Dialogs
– Step 20: Aggregation Binding
– Step 21: Data Types
– Step 22: Expression Binding
– Step 23: Custom Formatters
– Step 24: Filtering
– Step 25: Sorting and Grouping
– Step 26: (Optional) Remote OData Service
– Step 27: Mock Server Configuration
– Step 28: Unit Test with QUnit
– Step 29: Integration Test with OPA
– Step 30: Debugging Tools
– Step 31: Routing and Navigation
– Step 32: Routing with Parameters
– Step 33: Routing Back and History
– Step 34: Custom Controls
– Step 35: Responsiveness
– Step 36: Device Adaptation
– Step 37: Content Density
– Step 38: Accessibility
• Troubleshooting
– Step 1: Browser Developer Tools
– Step 2: Technical Information Dialog
– Step 3: Support Assistant
– Step 4: Diagnostics Window
– Step 5: UI5 Inspector
– First-Aid Kit
• An Empty Page Comes Up
• Content or Control Is Not Visible
• Request Fails Due to Same-Origin Policy (Cross-Origin
Resource Sharing - CORS)
• App or Control Looks Odd
• Data Binding
– Step 1: No Data Binding
– Step 2: Creating a Model
– Step 3: Create Property Binding
– Step 4: Two-Way Data Binding
– Step 5: One-Way Data Binding
– Step 6: Resource Models
– Step 7: (Optional) Resource Bundles and Multiple Languages
– Step 8: Binding Paths: Accessing Properties in Hierarchically
Structured Models
– Step 9: Formatting Values
– Step 10: Property Formatting Using Data Types
– Step 11: Validation Using the Message Manager
– Step 12: Aggregation Binding Using Templates
– Step 13: Element Binding
– Step 14: Expression Binding
– Step 15: Aggregation Binding Using a Factory Function
• OData V4
– Step 1: The Initial App
– Step 2: Data Access and Client-Server Communication
– Step 3: Automatic Data Type Detection
– Step 4: Filtering, Sorting, and Counting
– Step 5: Batch Groups
– Step 6: Create and Edit
– Step 7: Delete
– Step 8: OData Operations
• Navigation and Routing
– Step 1: Set Up the Initial App
– Step 2: Enable Routing
– Step 3: Catch Invalid Hashes
– Step 4: Add a Back Button to Not Found Page
– Step 5: Display a Target Without Changing the Hash
– Step 6: Navigate to Routes with Hard-Coded Patterns
– Step 7: Navigate to Routes with Mandatory Parameters
– Step 8: Navigate with Flip Transition
– Step 9: Allow Bookmarkable Tabs with Optional Query
Parameters
– Step 10: Implement “Lazy Loading”
– Step 11: Assign Multiple Targets
– Step 12: Make a Search Bookmarkable
– Step 13: Make Table Sorting Bookmarkable
– Step 14: Make Dialogs Bookmarkable
– Step 15: Reuse an Existing Route
– Step 16: Handle Invalid Hashes by Listening to Bypassed Events
– Step 17: Listen to Matched Events of Any Route
• Testing
– Step 1: Overview and Testing Strategy
– Step 2: A First Unit Test
– Step 3: Adding the Price Formatter
– Step 4: Testing a New Module
– Step 5: Adding a Flag Button
– Step 6: A First OPA Test
– Step 7: Changing the Table to a Growing Table
– Step 8: Testing Navigation
– Step 9: Adding the Post Page
– Step 10: Test Suite and Automated Testing
– Step 11: Testing User Input
– Step 12: Adding a Search
– Step 13: Testing User Interaction
– Step 14: Adding Tabs
– Step 15: Writing a Short Date Formatter Using TDD
– Step 16: Adding the Date Formatter
• Mock Server
– Step 1: Initial App Without Data
– Step 2: Creating a Mock Server to Simulate Data
– Step 3: Handling Custom URL Parameters
– Step 4: Calling a Function Import
• Worklist App
– Step 1 (Option 1): Creating the Initial App with an App Template
in SAP Web IDE
– Step 1 (Option 2): Downloading the Code
– Step 1 (Result): The Initial App
– Step 2: Custom Mock Data
– Step 3: Extending the Worklist Table
– Step 4: Quick Filter for the Worklist
– Step 5: Adding Actions to the Worklist
– Step 6: Extending the Detail Page
– Step 7: Adding a Comments Section
• SAP Fiori 2.0 App
– Step 1: Setting Up the Initial App
– Step 2: Creating an Empty Flexible Column Layout
– Step 3: Using Dynamic Page for the Master View
– Step 4: Adding a Detail Page
– Step 5: Using Object Page Layout as a Detail Page
– Step 6: Adding a Floating Footer
– Step 7: Routing
– Step 8: Enhancing the Detail Page
– Step 9: Adding a Detail-Detail Page
– Step 10: Adding More Pages
– Step 11: Using the Flexible Column Layout Semantic Helper
– Step 12: Starting with Two Columns
– Step 13: Setting the Master-Detail Pattern
• Demo Apps
• Best Practices for App Developers
– Load Only What You Really Need
– Use the MVC Concept
– Keep Your Views Short and Simple
– Make Your App CSP Compliant
– Use Asynchronous Loading
– Is Your Application Ready for Asynchronous Loading?
– Essentials
• Bootstrapping: Loading and Initializing
– Standard Variant for Bootstrapping
– Variant for Bootstrapping from Content Delivery Network
– noJQuery Variant for Bootstrapping
– Initialization Process
• Loading of Additional Resources During Bootstrap
• Dynamic Loading of Libraries
– Configuration of the OpenUI5 Runtime
• Configuration Options and URL Parameters
• Compatibility Version Information
• Structuring: Components and Descriptor
– Components
• Component.js File
– Component Metadata
– Methods Controlling the Initial Instantiation
• Using and Nesting Components
• Declarative API for Initial Components
• Handling IDs in UI Components
• Advanced Concepts for OpenUI5 Components
– Descriptor for Applications, Components, and Libraries
• Migrating from Component Metadata to Descriptor
• Descriptor for Libraries
• Descriptor for Components (Inside Libraries)
• Resources.json File
• Creating a Descriptor File for Existing Apps
– Migration Information for Upgrading the
Descriptor File
• Descriptor Dependencies to Libraries and Components
• Manifest Model Preload
• Enabling the Automatic SAP Fiori 2.0 Header Adaptation
in the Descriptor
• Model View Controller (MVC)
– Models
– Views
• XML View
– Namespaces in XML Views
– Aggregation Handling in XML Views
– Control Properties and Associations in XML Views
– Using Native HTML in XML Views
– Using CSS Style Sheets in XML Views
– Handling Events in XML Views
– Preprocessing XML Views
– XML View Cache
– Require Modules in XML View and Fragment
• JSON View
• JS View
• HTML View
• Instantiating Views
• View Cloning
– Controller
• Using Controller Extension
– File Names and Locations (View and Controller)
– Typed Views and Controllers
– Support for Unique IDs
• Data Binding
– Binding Types
• Property Binding
• Context Binding (Element Binding)
• List Binding (Aggregation Binding)
– Using Factory Functions
– Sorting, Grouping, and Filtering for List Binding
– Lifecycle of Binding Templates
– Extended Change Detection
– Binding Syntax
• Binding Path
• Composite Binding
• Expression Binding
• Property Metadata Binding
• Examples for Data Binding in Different View Types
– Formatting, Parsing, and Validating Data
• Simple Data Types
– sap.ui.model.type.Boolean
– sap.ui.model.type.Date
– sap.ui.model.type.DateTime
– sap.ui.model.type.Float
– sap.ui.model.type.Integer
– sap.ui.model.type.String
– sap.ui.model.type.Time
– sap.ui.model.type.DateTimeInterval
• Formatter Classes
– Date Format
– Number Format
– File Size Format
– Unit Formatting
– Currency Formatting
– Models
• OData V2 Model
– Creating the Model Instance
– Service Metadata
– Adding Additional URL Parameters
– Custom HTTP Headers
– Addressing Entities: Binding Path Syntax
– Accessing Data from an OData Model
– Creating Entities
– CRUD Operations
– Concurrency Control and ETags
– XSRF Token
– Refreshing the Model
– Batch Processing
– Two-Way Binding
– Binding-specific Parameters
– Optimizing Dependent Bindings
– Function Import
– Language
– Meta Model for OData V2
• OData V4 Model
– Model Instantiation and Data Access
– Bindings
• Creating Bindings
• Path Syntax
• Initialization and Read Requests
• Parameters
• Binding Collection Inline Count
• Type Determination
• Binding Modes
• Suspend and Resume
• Context API
• Accessing Data in Controller Code
• Automatic determination of $expand and
$select
– Binding Events
– Filtering
– Sorting
– Value Lists
– OData Operations
– Batch Control
– Meta Model for OData V4
• OData V4 Metadata JSON Format
– Performance Aspects
– Unsupported Superclass Methods and Events
– Changes Compared to OData V2 Model
– Additional Annotation Files
– Creating an Entity
– Deleting an Entity
– Consuming OData V2 Services with the OData V4
Model
– Extension for Data Aggregation
– Server Messages in OData V4 Model
– Currencies and Units
• JSON Model
– Sorting and Filtering in JSON Models
– Binding Path Syntax for JSON Models
• XML Model
– Sorting and Filtering in XML Models
– XML Namespace Support
– Binding Path Syntax for XML Models
• Resource Model
– Binding Path Syntax for Resource Models
– Binding Texts to a Resource Bundle
• Custom Model
• Assigning the Model to the UI
• Setting the Default Binding Mode
– Using Data Binding for Data Export
• Reusing UI Parts: Fragments
– HTML Fragments
– XML Fragments
– JS Fragments
– Instantiation of Fragments
• Programmatically Instantiating JS Fragments
• Programmatically Instantiating XML Fragments
• Programmatically Instantiating HTML Fragments
• Instantiating Fragments in Declarative Views
• Using Other Objects Instead of Controllers
• Inline Definition and Instantiation of Fragments
– Unique IDs
• IDs in Declarative XML or HTML Fragments
• IDs in JS Fragments
• IDs of Fragments in Views
• Retrieving Control Instances by Their ID
• Example: JS Fragments Used in XML Views
– Dialogs and other Popups as Fragments
• Defining Dialogs as Fragments
• Using Dialogs Defined as Fragments
– Fragments with Multiple Root Nodes
• XML Templating
– Preprocessing Instructions
• with
• repeat
• if
• alias
• require
• Replacement of Bindings
• XML Fragments
• Extension Points
– Annotation Helper
– Debugging
• Working with Controls
– Custom Data - Attaching Data Objects to Controls
• Writing Data to the HTML DOM as DATA-* Attribute
– Using Predefined CSS Margin Classes
– Using Container Content Padding CSS Classes
• Responsive Paddings Enablement
– Field Groups
• Declarative Support
– Enabling Declarative Support
– Defining Controls
– Declarative Support: Properties
– Declarative Support: Associations
– Declarative Support: Events
– Declarative Support: Aggregations
– Declarative Support: Data Binding
– Compiling Declarative HTML
• Error, Warning, and Info Messages
– Validation Messages
– OData V2 Messages
– Message Model
– Implementing Your Own OData V2 Message Parser
• Routing and Navigation
– Routing Configuration
– Methods and Events for Navigation
– Initializing and Accessing a Routing Instance
– Working with Multiple Targets
– Using the title Property in Targets
– Enabling Routing in Nested Components
• Modules and Dependencies
– Loading a Module
– Multiple Module Locations
– Best Practices for Loading Modules
• Troubleshooting for Loading Modules
– Adapting to the Modularization of the Core
• Legacy jQuery.sap Replacement
• Legacy Factories Replacement
• Troubleshooting
• Optimizing Applications
– Resource Handling: Modularization and Localization
• OpenUI5 Library Location Used for Testing
– Cache Buster for OpenUI5
– Application Cache Buster
• Application Cache Buster: Index File
• Application Cache Buster: Configuration
• Application Cache Buster: Request Flow
• Application Cache Buster: Enhanced Concept
• Adapting to Operating Systems And Devices
– The Device API
– Controls with Built-In Device Adaptation
– Checking the Operating System your Application is Running on
– Content Densities
• How to Use Densities for Controls
– Options for Further Adaptation
• Testing
– Unit Testing with QUnit
• Creating a QUnit Test Page
• Executing a QUnit Test
• Code Coverage Measurement
• Sinon.JS: Spies, Stubs, Mocks, Faked Timers, and XHR
• How to Test OpenUI5 Controls with QUnit
– Cookbook for Testing Controls with QUnit
– Integration Testing with One Page Acceptance Tests (OPA5)
• Getting Started with OPA5
• Cookbook for OPA5
• Retrieving Controls
• Structuring OPA Tests With Page Objects
• Using the autoWait Parameter
• Extensions for OPA5
• Test Libraries for OPA5
• Simulating User Interactions on Controls
• Pitfalls and Troubleshooting
– Mock Server
• OData Features Supported by Mock Server
• Mock Server: Frequently Asked Questions
• Using Mock Data
– Test Automation
• Installing Karma for Automated Testing
• Continuous Integration With Headless Chrome
• Code Coverage with Istanbul and OPA5
– Behavior-driven Development with Gherkin
• Feature Files
– Additional Options for Feature Files
• Basic Example How to Use Gherkin
• Gherkin and OPA Page Objects
• Code Coverage
• Logging
• Frequently Asked Questions
• Theming
– Setting Themes
– Enhanced Theming Concepts
– Creating Themable User Interfaces
– CSS Classes for Theme Parameters
• List of Supported CSS Classes
– Theming FAQ
• Localization
– Identifying the Language Code / Locale
– Resource Bundles
– Use of Localized Texts in Applications
• Accessibility
– Keyboard Handling for OpenUI5 UI Elements
– Screen Reader Support for OpenUI5 Controls
– High Contrast Themes for OpenUI5 Controls
• Drag and Drop
– Drag-and-Drop Configuration
– Drag-and-Drop Metadata
– Drag-and-Drop Limitations
• Troubleshooting
– Debugging
• Loading Debug Sources
• Switching the OpenUI5 Version
• Setting Breakpoints
• Breakpoints on the Class Level
• Breakpoints on the Object Level
– Logging and Tracing
– Technical Information Dialog
• Loading Debug Sources
• Technical Information Dialog on Mobile Devices
– Diagnostics
• Technical Information
• Control Tree
• Breakpoints on the Object Level
• Debugging
• Switching the OpenUI5 Version
• Breakpoints on the Class Level
• XML View and Templating Support Tools
• Visualizing User Interaction
– Support Assistant
• Using the Support Assistant
– Rules Management
– Results and Analysis
– Execution Scope
– Analysis Report
– Integrating the Rules in OPA Tests
– Support Assistant API
– Running the Support Assistant on an Older
OpenUI5 Version
– Troubleshooting the Support Assistant
• Rule Development Guide
– Create a Ruleset for a Library
– Create a Rule
– Test a Rule
– Common Rule Patterns
– Guidelines and Best Practices
– UI5 Inspector
– Performance Measurement Using
sap/ui/performance/Measurement Module
– Interaction Tracking for Performance Measurement
– First-Aid Kit
• An Empty Page Comes Up
• Content or Control Is Not Visible
• Request Fails Due to Same-Origin Policy (Cross-Origin
Resource Sharing - CORS)
• App or Control Looks Odd
– Developing Apps
• Continuous Integration: Ensure Code Quality
• App Templates: Kick Start Your App Development
– Worklist Template
• Navigation
• Busy Indication
• Model Instantiation
• Send Email
• Testing
• Device Adaptation
• Stable IDs
– Master-Detail Template
• Navigation
• Busy Indication
• Model Instantiation
• Master List Filtering
• Send Email
• Testing
• Device Adaptation
• Stable IDs
– Basic Template
• App Overview: The Basic Files of Your App
• App Initialization: What Happens When an App Is Started?
• Folder Structure: Where to Put Your Files
• Device Adaptation: Using Device Models for Your App
• Performance: Speed Up Your App
• Stable IDs: All You Need to Know
• Reacting on User Input Events
• Coding Issues to Avoid
– JavaScript Code Issues
– CSS Styling Issues
– Performance Issues
• Securing Apps
– Browser Security
– Transport Security
– Server Security
– Third-Party Libraries
– Secure Programming Aspects
– Cross-Site Scripting
– URL Whitelist Filtering
– Whitelist Service
– Frame Options
– Content Security Policy
• Right-to-Left Support
– API Properties for Right-to-Left Support in Text-Displaying
Controls
• Accessibility
– General Recommendations
– Text Size and Fonts
– Colors and Theming
– Keyboard Handling
– Fast Navigation
– Screen Reader Support
• Control-Specific Behavior
– Dialog Controls
– User Action Controls
– User Input Controls
– Container Controls
– Display Controls
– List Controls
– Composite Controls
– Labeling and Tooltips
– Extending Apps
• Using Component Configuration
– Example: Component Configuration
– Providing Hooks in the Standard Controller
– View Extension
– View Modification
– View Replacement
– Controller Replacement
• Localized Texts for Extended Apps
• Limitations
• Caveats Regarding Stability Across Application Upgrades
• Supportability
– Developing Controls
• Development Conventions and Guidelines
– JavaScript Coding Guidelines
• JavaScript Namespaces
• Example for Defining a Class
– OpenUI5 Control Development Guidelines
• Control Development Guidelines: Theming/CSS
– Product Standards and Acceptance Criteria
• Annotations in Translation Files
– File Names and Encoding
– Git Guidelines
– JSDoc Guidelines
• Common Pitfalls in JSDoc
– Tools
• ESLint Code Checks
• ESLint Configuration File
• The library.js File
• Creating Control and Class Modules
• Defining the Control Metadata
– Object Metadata and Implementation
– Defining Control Properties
• Adding Method Implementations
– Normal Methods
– init() Method
– exit() Method
– Event Handler Methods
– Browser Events
– Mobile Events
– Windows 8 Support
• Windows 8 Support - Known Issues
• Adapting Event Handling to Support Windows 8 Devices
– Renderer Methods
• Device-specific Behavior of Controls
• Examples for Creating and Extending Controls
– Creating a Simple Control
– Creating a Simple Square Control
– Creating a Simple Container Control
– Extending Buttons with Additional Events
– Extending Input Rendering
• Writing a Control Renderer
– Prevention of Cross-site Scripting
• Implementing Animation Modes
• Implementing Focus Handling
– Convenience Functionality
• Item Navigation - Supporting Keyboard Handling in List-like Controls
– Integrating Item Navigation
• Right-to-Left Support in Controls
– Right-to-Left Support Guidelines for Control Development
– Programmatic Access to RTL
– Troubleshooting Common RTL Issues
• Defining Groups for Fast Navigation (F6)
• Composite Controls
– Standard Composite Controls
– XML Composite Controls
• Example of a Simple XML Composite Control
• Properties and Property Bindings
• Events
• Aggregations
– Aggregation Forwarding
• Accessibility Aspects
– Keyboard Handling for OpenUI5 Controls for Developers
• Keyboard Handling for Basic Navigation
• Keyboard Handling for One-Dimensional Navigation
• Keyboard Handling for Two-Dimensional Navigation
• Keyboard Handling for Triggering Actions on Item Level
• Keyboard Handling for Item Selection
• Keyboard Handling for Value Help and Auto-Complete
– Screen Reader Support for OpenUI5 Controls
• ARIA Attribute Mapping
• Keyboard Usage of ARIA Role Mapped Controls
• ARIA Mapping for Tooltips and Textual Alternatives
• ARIA Event Handling
• ARIA Labeling
• Best Practices for ARIA Labeling
• Writing a Control: FAQ
– More About Controls
• Busy Indicators
• Cards
• Date and Time Related Controls: Data Binding
• Grid Controls
– sap.f.GridContainer
– sap.f.GridList
– sap.ui.layout.cssgrid.CSSGrid
– sap.ui.layout.Grid
• Hyphenation for Text Controls
• Semantic Pages
– Semantic Page (sap.f)
– Semantic Page (sap.m)
• Tables: Which One Should I Choose?
• sap.f
– Building an App with the Flexible Column Layout and Related
Classes
• Flexible Column Layout
– Control Structure
– Types of Layout
– Layout Arrows
– Reacting to Layout Changes
– Changing the Layout and Loading Views (Best
Practices)
• Flexible Column Layout Semantic Helper
– Main Methods
• Router
• sap.m
– App and Nav Container
• Events Fired Centrally by the App or the NavContainer
• Events Fired on the Pages
• Passing Data when Navigating
– Facet Filter
• Facet Filter: Simple Type
• Facet Filter: Light Type
• Facet Filter List and Facet Filter Item
• Events for Facet Filters
• Data Binding for Facet Filters
• Filter Search
• Facet Filter Selection
• Dependent Facets
– Feed Input
– Feed List Item
– Flex Box
• Getting Started With FlexBox
• Important FlexBox Layout Concepts
– Generic Tile
– Image
– List, List Item, and Table
• Lists
– Custom List Item
• Swipe for Action
– Aggregation
– Events
– Methods
– Properties
• Creating Tables
• Configuring Responsive Behavior of a Table
• Defining Column Width
• Table Design
• List and Table Events
• Growing Feature for Table and List
• Grouping in a Table
• Table Personalization
• Performance of Lists and Tables
– Message Handling
– Message Popover
– PDF Viewer
– Personalization Dialog
– Scrolling
• Scrolling: Implementation Details
• Scrolling: Pull to Refresh
– Sliders
– Split App
– Text
– Upload Collection
– URL Helper
• Examples for Triggering Telephone, Text and E-Mail
Applications
• sap.tnt
• sap.ui.codeeditor
– Code Editor
• sap.ui.core
– Icon and Icon Pool
• sap.ui.table
• sap.uxap
– Object Page Layout
– Object Page Headers
• Object Page Classic Header
• Object Page Dynamic Header
• Object Page Headers Comparison
– Anchor Bar
– Object Page Blocks
– Creating Blocks
– Object Page Scrolling
– Glossary

Вам также может понравиться