SlideShare a Scribd company logo
1 of 65
Download to read offline
Dojo grids in XPages
Tweet about this event: #xpages
and mention us: @teamstudio @TLCCLTD @Balassaitis
June 27, 2013
@teamstudio
teamstudio.com
@TLCCLTD
@Balassaitis
Taline Badrikian
Marketing Director
Who we are
• Our background is in creating tools for collaborative
computing in mid-size and large enterprises, primarily for
Lotus Notes
• Easy-to-use tools for developers and administrators
• 2300+ active customers, 47 countries
• Offices in US, UK and Japan
• Entered mobile space in 2010 with Unplugged – easy
mobilization of Notes apps to Blackberry, Android and iOS
Teamstudio Unplugged
• Your Mobile Domino Server – take your Notes
apps with you!
• End users access Notes applications from
mobile devices whether online or offline
• Leverages existing skills and technology –
XPages – Replication model you already know
• IBM Collaboration Solutions Award Winner 2013
Teamstudio Continuity
• Mobile BCM application for smartphones and tablets
– iOS, Android and BB
• Offline access to all your BCM and
Disaster Recovery data
• Store plans, contacts, call trees, and more
• Client available for download from app stores
Teamstudio
• Next webinar July 24th – Making Mobile Application
Development easy
• Visit us at MWLUG – August 21-23 in Indianapolis
• Visit us at ICON UK – September 2-3 in Brighton, UK
© 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC
Howard Greenberg
TLCC
@TLCCLtd
Dojo Data Grids in XPages
Your Hosts Today:
1
#XPages
Paul Della-Nebbia
TLCC
@paulDN
© 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC 2
Upcoming and Recorded Webinars
Next Webinar on July 24th
Making Mobile App Development Easy
Matt White and Rich Sharpe
www.tlcc.com/xpages-webinar
Same web page has a link to previous webinars
© 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC
• Seven XPages Courses!
‒ FREE !! Introduction to XPages Development
‒ JavaScript for XPages Development (8.5 and 9)
‒ Developing XPages Using Domino Designer 8.5 / XPages Development 1 for 9
‒ Rapid XPages Development using Application Layout and Dojo UI Controls (8.5 and 9)
‒ XPages Development 2 for Notes and Domino 8.5
‒ Mobile XPages for Domino 8.5 and 9
‒ Java 1 for XPages Developers
• Self Paced Training
– Learn anywhere!
– An Instructor is a click away
• Instructor Led (Private)
• TLCC Mentoring Services
3
TLCC XPages Offerings
Spring Sale Ends
Tomorrow!!!!
© 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC
ICON UK (used to be UK LUG) in Brighton, UK
September 1st and 2nd … FREE!!
www.iconuk.org
Both events feature a TLCC TackItOn
Rapid XPages Development using Application Layout and Dojo UI Controls
One full day with TLCC’s expert instructors
TLCC’s Rapid XPages Development course
A year of continued instructor support
All for only $499
www.tlcc.com/iconuktackiton or www.tlcc.com/mwlug
MWLug in Indianapolis
August 21st to 23rd
www.mwlug.com
4
Upcoming Events
© 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC
Asking Questions
5
Q & A at the end!
Type in your
questions as they
come up
© 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC
Your Presenter Today:
6
#XPages
Brad Balassaitis
@Balassaitis
http://xcellerant.net/
Dojo Grids in XPages
1
Brad Balassaitis
SeniorConsultant,PSCGroup
June27th,2013
Brad Balassaitis
• Notes/Domino developer for 17 years, XPages for 3 years
• Senior Consultant at PSC Group
• XPages Developer
• Project Lead
• Contact Information
• Blog: http://xcellerant.net
• Twitter: @Balassaitis
• Skype: brad.balassaitis
www.psclistens.com @pscgroup
2
Agenda
• Dojo Data Grid Control
• Creation and Default Features
• Dojo Data Grid – Additional Features
• Sorting, Opening Docs, Searching, Editing
• Dojo EnhancedGrid
• Conversion
• Plugins
• Dojo TreeGrid
• Categorization
• Counts and Totals
3
Dojo Data Grid Control
• Availability
• Extension Library
• 8.5.3 Upgrade Pack 1
• Notes 9
• Creates a Dojo DataGrid
4
Why Use the Dojo Data Grid?
• It’s not a view panel
• Feature-rich
• Adjustable columns, sorting, editing…
• Dojo is already on the Domino server
• Enhanced plugins available
5
Creating a Dojo Data Grid
1. Create REST Service to provide data
2. Add the Dojo Data Grid control and bind to the
REST service
3. Add Dojo Data Grid Columns
6
REST Service
• REST is a standard for client-server data exchange
on the web
• Common method for providing data to a grid
• REST Service Control (ExtLib, 8.5.3 UP1, R9)
• Data Access > REST Service
7
REST Service - Creation
1. Add REST Service control to the page
2. Select the service type
• basics > service > + > xe:viewJsonService
3. Set the contentType to application/json
• basics > service > contentType
4. Select the view
• basics > service > viewName
5. Set defaultColumns to true
• basics > service > defaultColumns 8
REST Service - Customization
• Compute columns
• System columns
• Roll your own
9
REST Service – Verification
• Set pathInfo
• All Properties > basics > pathInfo
• Test it
• Server.com/dbname.nsf/XPage.xsp/pathInfoName
10
Creating a Dojo Data Grid
1. Create REST Service to provide data
2. Add the Dojo Data Grid control and bind to the
REST service
3. Add Dojo Data Grid Columns
11
Default Grid Features
• Infinite scrolling
• Adjustable column widths
• Row highlighting
• Extended selection mode
• Sortable columns
• Multiple row entries
12
Additional Grid Properties
• rowSelector
• autoHeight
• rowsPerPage
• escapeHTMLInData
• loadingMessage
• errorMessage
• dir
13
Dojo Attributes
• More grid features are available, but not via
properties
• e.g. Column Reordering, Grid Width
• Dojo > Dojo attributes:
or
• All Properties > dojo > dojo attributes
14
Column Reordering
• Allows user to rearrange columns
• Set via dojo attribute
15
Column Reordering
• Alternate Method of Setting Attribute
16
Grid Width
• By default, takes up width of container
• autoWidth attribute sizes to required width
• Set via dojo attribute
17
Grid Column Properties
• label
• width
• hidden
• editable
• formatter
• Example: format to all upper case
function allUpper(value) {
return value.toUpperCase();
}
18
Sorting
• Automatically attempts to provide ascending and
descending sorting on all columns
• Each sort only works if enabled in underlying view
19
Preventing Sort Options
• Attach a function to the canSort property of grid
• Receives column index number
• 1-based index
• Ascending sort is positive number, descending is negative
• Returns true or false
• Run code onClientLoad of page to attach function
• Example: Allow even numbered columns to sort
dijit.byId('#{id:djxDataGrid1}').canSort = function(col){
if (col % 2 == 0) {
return true;
} else {
return false;
}
};
20
Opening Documents
• Link not built-in
• Row click events: onRowClick, onRowDblClick
• Client JavaScript
• Events receive an argument with many properties
• Code varies based on REST service type
21
REST Service Output
viewJsonService viewItemFileService
22
Open Doc - viewJsonService
var grid = arguments[0].grid;
var index = arguments[0].rowIndex;
var item = grid.getItem(index);
var unid = item[‘@unid’];
var url = ‘MyPageName.xsp?documentId=‘ + unid +
‘&action=openDocument’;
window.document.location.href = url;
23
Open Doc - viewItemFileService
var index = arguments[0].rowIndex;
var unid = REST_SERVICE_NAME._items[index].attributes[‘@unid’];
var url = ‘MyPageName.xsp?documentId=’ + unid +
‘&action=openDocument’;
window.document.location.href = url;
24
Search – Full Text
• Same steps as other display controls
• Steps:
1. Create search field and bind to scope var
2. Set REST service’s search property to scope var
3. Add button that triggers partial refresh on grid and
REST service
• Cannot sort results
• DB must be full-text indexed
25
Editable Columns
• Set column’s editable property to true
• Double-click cell to change to edit mode
• Save the changes – one line of client JavaScript
• REST_SERVICE_ID.save()
• Use the jsId property if defined (else, id)
• **Does not work without grid autoHeight set
• Undo changes – one line of JavaScript (in theory)
• REST_SERVICE_ID.revert()
• Partial refresh on grid has same effect
26
Editable Columns – Field Types
• cellType property
• Cell (default) – plain text
• Select – drop-down list (compute options w/ SSJS)
• Bool – checkbox
• AlwaysEdit – not a field type
• RowIndex – nothing to do with editing!
27
Editable Columns – Field Types
• Edit date field with date picker
• 1 – Include module: dojox.grid.cells.DateTextBox
• 2 – Set cell type: dojox.grid.cells.DateTextBox
• Only works in Notes 9
28
Editable Columns
• REST service’s save() function can accept callbacks
• Useful for displaying an error if save fails
var saveCallbacks = {onError: function()
{alert('There was an error saving your changes.');}};
restServiceID.save(saveCallbacks);
• Editable columns work with viewItemFileService,
but require a Web Site document to work with
viewJsonService
• Can only edit columns mapped to a single field
• Grid has singleClickEdit property
• Highlighting changes
29
HTML Columns
• Create custom column in REST service (or use
existing view column) with HTML content
• Add Grid Column to display HTML content column
• Set Grid property escapeHTMLInData = false
• Not a good idea – vulnerable to XSS
30
Icon Columns
• Doesn’t work as pass-thru HTML
• Requires column formatter function (client JS)
• Formatter can conditionally return <IMG> tag
• Does not require escapeHTMLInData property
• Much more secure for all passthru HTML
31
Dojo EnhancedGrid
• Dojo module that extends DataGrid
• Already available on the server
• Provides enhanced features via plugins
• Check for available features based on Domino/Dojo
version
• Domino 8.5.3 – Dojo 1.6
• Domino 9 – Dojo 1.8
• http://dojotoolkit.org/reference-
guide/1.6/dojox/grid/EnhancedGrid.html
32
Converting to EnhancedGrid
• Dojo Data Grid control creates a Dojo DataGrid
• You can modify to create a Dojo EnhancedGrid
1. Load the EnhancedGrid module
2. Set grid Dojo type
3. Load required style sheets 33
Converting to EnhancedGrid
• 1 - Load the EnhancedGrid module on the page
• Resources > Add > Dojo Module
• dojox.grid.EnhancedGrid
34
Converting to EnhancedGrid
• 2 - Set grid Dojo type to dojox.grid.EnhancedGrid
• Properties > Dojo > Dojo type
35
Converting to EnhancedGrid
• 3 - Load required style sheets
• Load relative to the Domino server path
<xp:styleSheet
href="/.ibmxspres/dojoroot/dojox/grid/resources/Grid.css">
</xp:styleSheet>
<xp:styleSheet
href="/.ibmxspres/dojoroot/dojox/grid/resources/EnhancedGrid.css">
</xp:styleSheet>
36
Verify EnhancedGrid
37
EnhancedGrid Plugin - DnD
• Provides ability to drag and drop columns, rows,
and cells
• Configuration object defines options
• Add a row selector to drag and drop rows
• Usage
1. Select content to drag
2. Release mouse button
3. Click on the data to move it
• IMPORTANT: When cells are moved, changes are
automatically saved 38
EnhancedGrid Plugin - DnD
1. Load the DnD plugin
• Properties > Resources > Add > Dojo Module
• dojox.grid.enhanced.plugins.DnD
39
EnhancedGrid Plugin - DnD
2. Add plugin to grid as an attribute
• Dojo > Add
• Name: plugins
• Value: {dnd: {dndConfig:{} } }
• All selection types enabled by default
40
EnhancedGrid Plugin - Filter
• Adds a filter bar
• Up to 3 Filtering rules
• Match all rules or any rule
• Select column to filter
• Select matching condition (is, contains, starts with…)
• No coding required!!
• Results are sortable
41
EnhancedGrid Plugin - Filter
1. Load the Filter plugin
• Properties > Resources > Add > Dojo Module
• dojox.grid.enhanced.plugins.Filter
42
EnhancedGrid Plugin - Filter
2. Add plugin to grid as an attribute
• Dojo > Add
• Name: plugins
• Value: {filter: true}
43
EnhancedGrid Plugin - Filter
3. Add a stylesheet
<xp:styleSheet
href="/.ibmxspres/dojoroot/dojox/grid/enhanced/resources/claro/EnhancedGrid.css">
</xp:styleSheet>
44
EnhancedGrid – More Plugins
• Print
• Provides ability to preview or print grid contents
• Print/Preview All, Selected, Custom
• Exporter
• Provides grid data for export – you handle the rest
• Export All, Selected, Custom
• Menu
• Context menus for columns, rows, cells, selected
• Build with dijit menus and dijit menu items
45
Dojo TreeGrid
• Provides multi-level categorization
• Can provide column totals and counts
• Extends Dojo DataGrid
• Cannot use EnhancedGrid plugins
• Poor documentation
• Apparently cannot use Dojo Data Grid control
46
TreeGrid - Implementation
• Programmatic -- NOT the Dojo Data Grid Control
1. Include required dojo modules and stylesheets
2. Set XPage to parse dojo on load
3. Define a <div> to render the grid and size it
4. Execute code onClientLoad to configure and generate
the grid
5. Provide data for the grid (XAgent)
• Complicated format
...
{ id: 'AS', name:'Asia', type:'continent',
children:[{_reference:'CN'}, {_reference:'IN'}] },
{ id: 'CN', name:'China', type:'country' },
{ id: 'IN', name:'India', type:'country' },
...
47
TreeGrid – Totals and Counts
• Inline when collapsed, below when expanded
• Requires a different (but simpler) JSON model
{id:'AK', type: 'state', state:'AK', numPeople: 3,
childItems:[
{id:'B3093953178C98E905257838007ABC48', firstname:'Bella',
lastname: 'Martin', valueToAdd: 2},
{id:'7FDB9CCDE7D6923E05257838007ABC1E', firstname:'Brian',
lastname: 'Leggett', valueToAdd: 2}
] },
• Add an aggregate property
• Set to “sum” or “cnt”
• Numeric columns handled properly; text concatenated
• Formatter functions can modify display (and hide text)
48
TreeGrid – Data Format Caveat
• Simpler JSON format causes blank rows when used
without counts/totals
49
TreeGrid - Features
• defaultOpen – expanded or collapsed
• openAtLevels – auto expand all categories with less
items than the defined amount
• Doesn’t work with ForestStoreModel
• expandoCell – column to display expand icon
50
Questions?
Data Grid Blogs: http://xcellerant.net/dojo-grids-in-xpages/
Twitter: @Balassaitis
51
© 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC
Questions????
7
Use the Q&A pane in
WebEx to ask questions
We will answer your
questions verbally
© 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC
Question and Answer Time!
8
Teamstudio Questions?
contactus@teamstudio.com
877-228-6178
TLCC Questions?
howardg@tlcc.com paul@tlcc.com
888-241-8522 or 561-953-0095
Brad Balassaitis Howard Greenberg Taline Badrikian
Upcoming Events:
TLCC Spring Sale, ends tomorrow!!!
MWLUG in Indianapolis and TackItOn
ICON UK in Brighton and TackItOn
30% off all Teamstudio tools and 15% off all Ytria tools
Next webinar July 24th – Making Mobile App Dev Easy
SoftBank World 2013 July 23-24 in Japan
#XPages
@Balassaitis
@TLCCLtd
@Teamstudio
@PaulDN
Paul Della-Nebbia

More Related Content

What's hot

Connect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast LaneConnect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast LaneHoward Greenberg
 
Big data for cio 2015
Big data for cio 2015Big data for cio 2015
Big data for cio 2015Zohar Elkayam
 
Modul-Entwicklung fĂźr Magento, OXID eShop und Shopware (2013)
Modul-Entwicklung fĂźr Magento, OXID eShop und Shopware (2013)Modul-Entwicklung fĂźr Magento, OXID eShop und Shopware (2013)
Modul-Entwicklung fĂźr Magento, OXID eShop und Shopware (2013)Roman Zenner
 
Oracle dba 12c training syllabus
Oracle dba 12c training syllabusOracle dba 12c training syllabus
Oracle dba 12c training syllabusMonster Courses
 
Things Every Oracle DBA Needs to Know about the Hadoop Ecosystem
Things Every Oracle DBA Needs to Know about the Hadoop EcosystemThings Every Oracle DBA Needs to Know about the Hadoop Ecosystem
Things Every Oracle DBA Needs to Know about the Hadoop EcosystemZohar Elkayam
 
Things Every Oracle DBA Needs To Know About The Hadoop Ecosystem
Things Every Oracle DBA Needs To Know About The Hadoop EcosystemThings Every Oracle DBA Needs To Know About The Hadoop Ecosystem
Things Every Oracle DBA Needs To Know About The Hadoop EcosystemZohar Elkayam
 
Oracle developer Course in Jordan دورة اوراكل في الاردن
Oracle developer Course in Jordan دورة اوراكل في الاردنOracle developer Course in Jordan دورة اوراكل في الاردن
Oracle developer Course in Jordan دورة اوراكل في الاردنayman hamdan
 
How to Write Custom Modules for PHP-based E-Commerce Systems (2011)
How to Write Custom Modules for PHP-based E-Commerce Systems (2011)How to Write Custom Modules for PHP-based E-Commerce Systems (2011)
How to Write Custom Modules for PHP-based E-Commerce Systems (2011)Roman Zenner
 
Msbi 2008 online training
Msbi 2008 online trainingMsbi 2008 online training
Msbi 2008 online trainingssmsbi
 
Evolutionary database design
Evolutionary database designEvolutionary database design
Evolutionary database designSalehein Syed
 
Oracle forms les07
Oracle forms  les07Oracle forms  les07
Oracle forms les07Abed Othman
 
9781305078444 ppt ch11
9781305078444 ppt ch119781305078444 ppt ch11
9781305078444 ppt ch11Terry Yoast
 
Msbi 2012 online training
Msbi 2012 online trainingMsbi 2012 online training
Msbi 2012 online trainingssmasters
 
Netvu test slideshow
Netvu test slideshowNetvu test slideshow
Netvu test slideshowRyan Deeds
 
MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?DrupalCamp Kyiv
 
Introduction to datomic
Introduction to datomicIntroduction to datomic
Introduction to datomicSiva Jagadeesan
 
ORM, JPA, & Hibernate Overview
ORM, JPA, & Hibernate OverviewORM, JPA, & Hibernate Overview
ORM, JPA, & Hibernate OverviewBrett Meyer
 
Datomic – A Modern Database - StampedeCon 2014
Datomic – A Modern Database - StampedeCon 2014Datomic – A Modern Database - StampedeCon 2014
Datomic – A Modern Database - StampedeCon 2014StampedeCon
 

What's hot (20)

Connect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast LaneConnect 2016-Move Your XPages Applications to the Fast Lane
Connect 2016-Move Your XPages Applications to the Fast Lane
 
Big data for cio 2015
Big data for cio 2015Big data for cio 2015
Big data for cio 2015
 
Oracle 11g sql plsql training
Oracle 11g sql plsql trainingOracle 11g sql plsql training
Oracle 11g sql plsql training
 
Modul-Entwicklung fĂźr Magento, OXID eShop und Shopware (2013)
Modul-Entwicklung fĂźr Magento, OXID eShop und Shopware (2013)Modul-Entwicklung fĂźr Magento, OXID eShop und Shopware (2013)
Modul-Entwicklung fĂźr Magento, OXID eShop und Shopware (2013)
 
Oracle dba 12c training syllabus
Oracle dba 12c training syllabusOracle dba 12c training syllabus
Oracle dba 12c training syllabus
 
Things Every Oracle DBA Needs to Know about the Hadoop Ecosystem
Things Every Oracle DBA Needs to Know about the Hadoop EcosystemThings Every Oracle DBA Needs to Know about the Hadoop Ecosystem
Things Every Oracle DBA Needs to Know about the Hadoop Ecosystem
 
Things Every Oracle DBA Needs To Know About The Hadoop Ecosystem
Things Every Oracle DBA Needs To Know About The Hadoop EcosystemThings Every Oracle DBA Needs To Know About The Hadoop Ecosystem
Things Every Oracle DBA Needs To Know About The Hadoop Ecosystem
 
Oracle developer Course in Jordan دورة اوراكل في الاردن
Oracle developer Course in Jordan دورة اوراكل في الاردنOracle developer Course in Jordan دورة اوراكل في الاردن
Oracle developer Course in Jordan دورة اوراكل في الاردن
 
How to Write Custom Modules for PHP-based E-Commerce Systems (2011)
How to Write Custom Modules for PHP-based E-Commerce Systems (2011)How to Write Custom Modules for PHP-based E-Commerce Systems (2011)
How to Write Custom Modules for PHP-based E-Commerce Systems (2011)
 
Msbi 2008 online training
Msbi 2008 online trainingMsbi 2008 online training
Msbi 2008 online training
 
Evolutionary database design
Evolutionary database designEvolutionary database design
Evolutionary database design
 
Oracle forms les07
Oracle forms  les07Oracle forms  les07
Oracle forms les07
 
Java
JavaJava
Java
 
9781305078444 ppt ch11
9781305078444 ppt ch119781305078444 ppt ch11
9781305078444 ppt ch11
 
Msbi 2012 online training
Msbi 2012 online trainingMsbi 2012 online training
Msbi 2012 online training
 
Netvu test slideshow
Netvu test slideshowNetvu test slideshow
Netvu test slideshow
 
MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?MIGRATION - PAIN OR GAIN?
MIGRATION - PAIN OR GAIN?
 
Introduction to datomic
Introduction to datomicIntroduction to datomic
Introduction to datomic
 
ORM, JPA, & Hibernate Overview
ORM, JPA, & Hibernate OverviewORM, JPA, & Hibernate Overview
ORM, JPA, & Hibernate Overview
 
Datomic – A Modern Database - StampedeCon 2014
Datomic – A Modern Database - StampedeCon 2014Datomic – A Modern Database - StampedeCon 2014
Datomic – A Modern Database - StampedeCon 2014
 

Similar to Dojo Grids in XPages

Presenting Data – An Alternative to the View Control
Presenting Data – An Alternative to the View ControlPresenting Data – An Alternative to the View Control
Presenting Data – An Alternative to the View ControlTeamstudio
 
Living on the Grid - Unlock the Power of Dojo Data Grids in XPages - MWLUG 2013
Living on the Grid - Unlock the Power of Dojo Data Grids in XPages - MWLUG 2013Living on the Grid - Unlock the Power of Dojo Data Grids in XPages - MWLUG 2013
Living on the Grid - Unlock the Power of Dojo Data Grids in XPages - MWLUG 2013balassaitis
 
The Grid the Brad and the Ugly: Using Grids to Improve Your Applications
The Grid the Brad and the Ugly: Using Grids to Improve Your ApplicationsThe Grid the Brad and the Ugly: Using Grids to Improve Your Applications
The Grid the Brad and the Ugly: Using Grids to Improve Your Applicationsbalassaitis
 
Extjs3.4 Migration Notes
Extjs3.4 Migration NotesExtjs3.4 Migration Notes
Extjs3.4 Migration NotesSimoAmi
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesTeamstudio
 
SQL SCIPY STREAMLIT_Introduction to the basic of SQL SCIPY STREAMLIT
SQL SCIPY STREAMLIT_Introduction to the basic of SQL SCIPY STREAMLITSQL SCIPY STREAMLIT_Introduction to the basic of SQL SCIPY STREAMLIT
SQL SCIPY STREAMLIT_Introduction to the basic of SQL SCIPY STREAMLITchaitalidarode1
 
Creating a Great XPages User Interface
Creating a Great XPages User InterfaceCreating a Great XPages User Interface
Creating a Great XPages User InterfaceTeamstudio
 
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014Howard Greenberg
 
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven DesignNETFest
 
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!Teamstudio
 
Nsc 2013 06-17 - random rants on 2013
Nsc 2013 06-17 - random rants on 2013Nsc 2013 06-17 - random rants on 2013
Nsc 2013 06-17 - random rants on 2013Mikael Svenson
 
AngularJS
AngularJSAngularJS
AngularJSYogesh L
 
Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Paul Withers
 
DMann-SQLDeveloper4Reporting
DMann-SQLDeveloper4ReportingDMann-SQLDeveloper4Reporting
DMann-SQLDeveloper4ReportingDavid Mann
 
Andrii Sliusar "Module Architecture of React-Redux Applications"
Andrii Sliusar "Module Architecture of React-Redux Applications"Andrii Sliusar "Module Architecture of React-Redux Applications"
Andrii Sliusar "Module Architecture of React-Redux Applications"LogeekNightUkraine
 
Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...
Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...
Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...Restlet
 
S2U november 2013
S2U november 2013S2U november 2013
S2U november 2013Neal Caidin
 
Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)
Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)
Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)Masayuki Nii
 
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise Search
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise SearchRestlet: Building a multi-tenant API PaaS with DataStax Enterprise Search
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise SearchDataStax Academy
 

Similar to Dojo Grids in XPages (20)

Presenting Data – An Alternative to the View Control
Presenting Data – An Alternative to the View ControlPresenting Data – An Alternative to the View Control
Presenting Data – An Alternative to the View Control
 
Living on the Grid - Unlock the Power of Dojo Data Grids in XPages - MWLUG 2013
Living on the Grid - Unlock the Power of Dojo Data Grids in XPages - MWLUG 2013Living on the Grid - Unlock the Power of Dojo Data Grids in XPages - MWLUG 2013
Living on the Grid - Unlock the Power of Dojo Data Grids in XPages - MWLUG 2013
 
The Grid the Brad and the Ugly: Using Grids to Improve Your Applications
The Grid the Brad and the Ugly: Using Grids to Improve Your ApplicationsThe Grid the Brad and the Ugly: Using Grids to Improve Your Applications
The Grid the Brad and the Ugly: Using Grids to Improve Your Applications
 
Extjs3.4 Migration Notes
Extjs3.4 Migration NotesExtjs3.4 Migration Notes
Extjs3.4 Migration Notes
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPages
 
SQL SCIPY STREAMLIT_Introduction to the basic of SQL SCIPY STREAMLIT
SQL SCIPY STREAMLIT_Introduction to the basic of SQL SCIPY STREAMLITSQL SCIPY STREAMLIT_Introduction to the basic of SQL SCIPY STREAMLIT
SQL SCIPY STREAMLIT_Introduction to the basic of SQL SCIPY STREAMLIT
 
Creating a Great XPages User Interface
Creating a Great XPages User InterfaceCreating a Great XPages User Interface
Creating a Great XPages User Interface
 
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
Creating a Great XPages User Interface, TLCC Teamstudio Webinar - Feb, 2014
 
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
 
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!
The Autobahn Has No Speed Limit - Your XPages Shouldn't Either!
 
Nsc 2013 06-17 - random rants on 2013
Nsc 2013 06-17 - random rants on 2013Nsc 2013 06-17 - random rants on 2013
Nsc 2013 06-17 - random rants on 2013
 
AngularJS
AngularJSAngularJS
AngularJS
 
Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications Engage 2019: Modernising Your Domino and XPages Applications
Engage 2019: Modernising Your Domino and XPages Applications
 
DMann-SQLDeveloper4Reporting
DMann-SQLDeveloper4ReportingDMann-SQLDeveloper4Reporting
DMann-SQLDeveloper4Reporting
 
Pulsar
PulsarPulsar
Pulsar
 
Andrii Sliusar "Module Architecture of React-Redux Applications"
Andrii Sliusar "Module Architecture of React-Redux Applications"Andrii Sliusar "Module Architecture of React-Redux Applications"
Andrii Sliusar "Module Architecture of React-Redux Applications"
 
Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...
Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...
Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...
 
S2U november 2013
S2U november 2013S2U november 2013
S2U november 2013
 
Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)
Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)
Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)
 
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise Search
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise SearchRestlet: Building a multi-tenant API PaaS with DataStax Enterprise Search
Restlet: Building a multi-tenant API PaaS with DataStax Enterprise Search
 

More from Teamstudio

Search Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
Search Terms and Design Complexity: A Tutorial Before Modernizing or MigratingSearch Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
Search Terms and Design Complexity: A Tutorial Before Modernizing or MigratingTeamstudio
 
SmartNSF - 100% Smart - and in Color!
SmartNSF - 100% Smart - and in Color!SmartNSF - 100% Smart - and in Color!
SmartNSF - 100% Smart - and in Color!Teamstudio
 
Back from the Dead: When Bad Code Kills a Good Server
Back from the Dead: When Bad Code Kills a Good ServerBack from the Dead: When Bad Code Kills a Good Server
Back from the Dead: When Bad Code Kills a Good ServerTeamstudio
 
Understand Usage with Detailed Access Information
Understand Usage with Detailed Access InformationUnderstand Usage with Detailed Access Information
Understand Usage with Detailed Access InformationTeamstudio
 
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8Teamstudio
 
Marty, You're Just Not Thinking Fourth Dimensionally
Marty, You're Just Not Thinking Fourth DimensionallyMarty, You're Just Not Thinking Fourth Dimensionally
Marty, You're Just Not Thinking Fourth DimensionallyTeamstudio
 
IBM Presents the IBM Notes and Domino Roadmap
IBM Presents the IBM Notes and Domino RoadmapIBM Presents the IBM Notes and Domino Roadmap
IBM Presents the IBM Notes and Domino RoadmapTeamstudio
 
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...Teamstudio
 
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections Teamstudio
 
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityExpanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityTeamstudio
 
Optimus XPages Part 2: The Deep Dive
Optimus XPages Part 2: The Deep DiveOptimus XPages Part 2: The Deep Dive
Optimus XPages Part 2: The Deep DiveTeamstudio
 
Getting Started with the OpenNTF Domino API
Getting Started with the OpenNTF Domino APIGetting Started with the OpenNTF Domino API
Getting Started with the OpenNTF Domino APITeamstudio
 
Understand the True Business Usage of Notes Applications with Usage Auditor
Understand the True Business Usage of Notes Applications with Usage AuditorUnderstand the True Business Usage of Notes Applications with Usage Auditor
Understand the True Business Usage of Notes Applications with Usage AuditorTeamstudio
 
Optimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best PracticesOptimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best PracticesTeamstudio
 
Building Responsive Applications Using XPages
Building Responsive Applications Using XPagesBuilding Responsive Applications Using XPages
Building Responsive Applications Using XPagesTeamstudio
 
Using Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino AppsUsing Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino AppsTeamstudio
 
Ask the XPages Experts
Ask the XPages ExpertsAsk the XPages Experts
Ask the XPages ExpertsTeamstudio
 
Everything XControls
Everything XControlsEverything XControls
Everything XControlsTeamstudio
 
Move Your XPages Applications to the Fast Lane
Move Your XPages Applications to the Fast LaneMove Your XPages Applications to the Fast Lane
Move Your XPages Applications to the Fast LaneTeamstudio
 
An Introduction to the Model-View-Controller Pattern
An Introduction to the Model-View-Controller PatternAn Introduction to the Model-View-Controller Pattern
An Introduction to the Model-View-Controller PatternTeamstudio
 

More from Teamstudio (20)

Search Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
Search Terms and Design Complexity: A Tutorial Before Modernizing or MigratingSearch Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
Search Terms and Design Complexity: A Tutorial Before Modernizing or Migrating
 
SmartNSF - 100% Smart - and in Color!
SmartNSF - 100% Smart - and in Color!SmartNSF - 100% Smart - and in Color!
SmartNSF - 100% Smart - and in Color!
 
Back from the Dead: When Bad Code Kills a Good Server
Back from the Dead: When Bad Code Kills a Good ServerBack from the Dead: When Bad Code Kills a Good Server
Back from the Dead: When Bad Code Kills a Good Server
 
Understand Usage with Detailed Access Information
Understand Usage with Detailed Access InformationUnderstand Usage with Detailed Access Information
Understand Usage with Detailed Access Information
 
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
IBM Presents the Notes Domino Roadmap and a Deep Dive into Feature Pack 8
 
Marty, You're Just Not Thinking Fourth Dimensionally
Marty, You're Just Not Thinking Fourth DimensionallyMarty, You're Just Not Thinking Fourth Dimensionally
Marty, You're Just Not Thinking Fourth Dimensionally
 
IBM Presents the IBM Notes and Domino Roadmap
IBM Presents the IBM Notes and Domino RoadmapIBM Presents the IBM Notes and Domino Roadmap
IBM Presents the IBM Notes and Domino Roadmap
 
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...
XPages and jQuery DataTables: Simplifying View Creation while Maximizing Func...
 
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections
Take a Trip Into the Forest: A Java Primer on Maps, Trees, and Collections
 
Expanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate UsabilityExpanding XPages with Bootstrap Plugins for Ultimate Usability
Expanding XPages with Bootstrap Plugins for Ultimate Usability
 
Optimus XPages Part 2: The Deep Dive
Optimus XPages Part 2: The Deep DiveOptimus XPages Part 2: The Deep Dive
Optimus XPages Part 2: The Deep Dive
 
Getting Started with the OpenNTF Domino API
Getting Started with the OpenNTF Domino APIGetting Started with the OpenNTF Domino API
Getting Started with the OpenNTF Domino API
 
Understand the True Business Usage of Notes Applications with Usage Auditor
Understand the True Business Usage of Notes Applications with Usage AuditorUnderstand the True Business Usage of Notes Applications with Usage Auditor
Understand the True Business Usage of Notes Applications with Usage Auditor
 
Optimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best PracticesOptimus XPages: An Explosion of Techniques and Best Practices
Optimus XPages: An Explosion of Techniques and Best Practices
 
Building Responsive Applications Using XPages
Building Responsive Applications Using XPagesBuilding Responsive Applications Using XPages
Building Responsive Applications Using XPages
 
Using Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino AppsUsing Cool New Frameworks in (Mobile) Domino Apps
Using Cool New Frameworks in (Mobile) Domino Apps
 
Ask the XPages Experts
Ask the XPages ExpertsAsk the XPages Experts
Ask the XPages Experts
 
Everything XControls
Everything XControlsEverything XControls
Everything XControls
 
Move Your XPages Applications to the Fast Lane
Move Your XPages Applications to the Fast LaneMove Your XPages Applications to the Fast Lane
Move Your XPages Applications to the Fast Lane
 
An Introduction to the Model-View-Controller Pattern
An Introduction to the Model-View-Controller PatternAn Introduction to the Model-View-Controller Pattern
An Introduction to the Model-View-Controller Pattern
 

Recently uploaded

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 

Recently uploaded (20)

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 

Dojo Grids in XPages

  • 1. Dojo grids in XPages Tweet about this event: #xpages and mention us: @teamstudio @TLCCLTD @Balassaitis June 27, 2013
  • 3. Who we are • Our background is in creating tools for collaborative computing in mid-size and large enterprises, primarily for Lotus Notes • Easy-to-use tools for developers and administrators • 2300+ active customers, 47 countries • Offices in US, UK and Japan • Entered mobile space in 2010 with Unplugged – easy mobilization of Notes apps to Blackberry, Android and iOS
  • 4. Teamstudio Unplugged • Your Mobile Domino Server – take your Notes apps with you! • End users access Notes applications from mobile devices whether online or offline • Leverages existing skills and technology – XPages – Replication model you already know • IBM Collaboration Solutions Award Winner 2013
  • 5. Teamstudio Continuity • Mobile BCM application for smartphones and tablets – iOS, Android and BB • Offline access to all your BCM and Disaster Recovery data • Store plans, contacts, call trees, and more • Client available for download from app stores
  • 6. Teamstudio • Next webinar July 24th – Making Mobile Application Development easy • Visit us at MWLUG – August 21-23 in Indianapolis • Visit us at ICON UK – September 2-3 in Brighton, UK
  • 7. Š 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC Howard Greenberg TLCC @TLCCLtd Dojo Data Grids in XPages Your Hosts Today: 1 #XPages Paul Della-Nebbia TLCC @paulDN
  • 8. Š 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC 2 Upcoming and Recorded Webinars Next Webinar on July 24th Making Mobile App Development Easy Matt White and Rich Sharpe www.tlcc.com/xpages-webinar Same web page has a link to previous webinars
  • 9. Š 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC • Seven XPages Courses! ‒ FREE !! Introduction to XPages Development ‒ JavaScript for XPages Development (8.5 and 9) ‒ Developing XPages Using Domino Designer 8.5 / XPages Development 1 for 9 ‒ Rapid XPages Development using Application Layout and Dojo UI Controls (8.5 and 9) ‒ XPages Development 2 for Notes and Domino 8.5 ‒ Mobile XPages for Domino 8.5 and 9 ‒ Java 1 for XPages Developers • Self Paced Training – Learn anywhere! – An Instructor is a click away • Instructor Led (Private) • TLCC Mentoring Services 3 TLCC XPages Offerings Spring Sale Ends Tomorrow!!!!
  • 10. Š 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC ICON UK (used to be UK LUG) in Brighton, UK September 1st and 2nd … FREE!! www.iconuk.org Both events feature a TLCC TackItOn Rapid XPages Development using Application Layout and Dojo UI Controls One full day with TLCC’s expert instructors TLCC’s Rapid XPages Development course A year of continued instructor support All for only $499 www.tlcc.com/iconuktackiton or www.tlcc.com/mwlug MWLug in Indianapolis August 21st to 23rd www.mwlug.com 4 Upcoming Events
  • 11. Š 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC Asking Questions 5 Q & A at the end! Type in your questions as they come up
  • 12. Š 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC Your Presenter Today: 6 #XPages Brad Balassaitis @Balassaitis http://xcellerant.net/
  • 13. Dojo Grids in XPages 1 Brad Balassaitis SeniorConsultant,PSCGroup June27th,2013
  • 14. Brad Balassaitis • Notes/Domino developer for 17 years, XPages for 3 years • Senior Consultant at PSC Group • XPages Developer • Project Lead • Contact Information • Blog: http://xcellerant.net • Twitter: @Balassaitis • Skype: brad.balassaitis www.psclistens.com @pscgroup 2
  • 15. Agenda • Dojo Data Grid Control • Creation and Default Features • Dojo Data Grid – Additional Features • Sorting, Opening Docs, Searching, Editing • Dojo EnhancedGrid • Conversion • Plugins • Dojo TreeGrid • Categorization • Counts and Totals 3
  • 16. Dojo Data Grid Control • Availability • Extension Library • 8.5.3 Upgrade Pack 1 • Notes 9 • Creates a Dojo DataGrid 4
  • 17. Why Use the Dojo Data Grid? • It’s not a view panel • Feature-rich • Adjustable columns, sorting, editing… • Dojo is already on the Domino server • Enhanced plugins available 5
  • 18. Creating a Dojo Data Grid 1. Create REST Service to provide data 2. Add the Dojo Data Grid control and bind to the REST service 3. Add Dojo Data Grid Columns 6
  • 19. REST Service • REST is a standard for client-server data exchange on the web • Common method for providing data to a grid • REST Service Control (ExtLib, 8.5.3 UP1, R9) • Data Access > REST Service 7
  • 20. REST Service - Creation 1. Add REST Service control to the page 2. Select the service type • basics > service > + > xe:viewJsonService 3. Set the contentType to application/json • basics > service > contentType 4. Select the view • basics > service > viewName 5. Set defaultColumns to true • basics > service > defaultColumns 8
  • 21. REST Service - Customization • Compute columns • System columns • Roll your own 9
  • 22. REST Service – Verification • Set pathInfo • All Properties > basics > pathInfo • Test it • Server.com/dbname.nsf/XPage.xsp/pathInfoName 10
  • 23. Creating a Dojo Data Grid 1. Create REST Service to provide data 2. Add the Dojo Data Grid control and bind to the REST service 3. Add Dojo Data Grid Columns 11
  • 24. Default Grid Features • Infinite scrolling • Adjustable column widths • Row highlighting • Extended selection mode • Sortable columns • Multiple row entries 12
  • 25. Additional Grid Properties • rowSelector • autoHeight • rowsPerPage • escapeHTMLInData • loadingMessage • errorMessage • dir 13
  • 26. Dojo Attributes • More grid features are available, but not via properties • e.g. Column Reordering, Grid Width • Dojo > Dojo attributes: or • All Properties > dojo > dojo attributes 14
  • 27. Column Reordering • Allows user to rearrange columns • Set via dojo attribute 15
  • 28. Column Reordering • Alternate Method of Setting Attribute 16
  • 29. Grid Width • By default, takes up width of container • autoWidth attribute sizes to required width • Set via dojo attribute 17
  • 30. Grid Column Properties • label • width • hidden • editable • formatter • Example: format to all upper case function allUpper(value) { return value.toUpperCase(); } 18
  • 31. Sorting • Automatically attempts to provide ascending and descending sorting on all columns • Each sort only works if enabled in underlying view 19
  • 32. Preventing Sort Options • Attach a function to the canSort property of grid • Receives column index number • 1-based index • Ascending sort is positive number, descending is negative • Returns true or false • Run code onClientLoad of page to attach function • Example: Allow even numbered columns to sort dijit.byId('#{id:djxDataGrid1}').canSort = function(col){ if (col % 2 == 0) { return true; } else { return false; } }; 20
  • 33. Opening Documents • Link not built-in • Row click events: onRowClick, onRowDblClick • Client JavaScript • Events receive an argument with many properties • Code varies based on REST service type 21
  • 34. REST Service Output viewJsonService viewItemFileService 22
  • 35. Open Doc - viewJsonService var grid = arguments[0].grid; var index = arguments[0].rowIndex; var item = grid.getItem(index); var unid = item[‘@unid’]; var url = ‘MyPageName.xsp?documentId=‘ + unid + ‘&action=openDocument’; window.document.location.href = url; 23
  • 36. Open Doc - viewItemFileService var index = arguments[0].rowIndex; var unid = REST_SERVICE_NAME._items[index].attributes[‘@unid’]; var url = ‘MyPageName.xsp?documentId=’ + unid + ‘&action=openDocument’; window.document.location.href = url; 24
  • 37. Search – Full Text • Same steps as other display controls • Steps: 1. Create search field and bind to scope var 2. Set REST service’s search property to scope var 3. Add button that triggers partial refresh on grid and REST service • Cannot sort results • DB must be full-text indexed 25
  • 38. Editable Columns • Set column’s editable property to true • Double-click cell to change to edit mode • Save the changes – one line of client JavaScript • REST_SERVICE_ID.save() • Use the jsId property if defined (else, id) • **Does not work without grid autoHeight set • Undo changes – one line of JavaScript (in theory) • REST_SERVICE_ID.revert() • Partial refresh on grid has same effect 26
  • 39. Editable Columns – Field Types • cellType property • Cell (default) – plain text • Select – drop-down list (compute options w/ SSJS) • Bool – checkbox • AlwaysEdit – not a field type • RowIndex – nothing to do with editing! 27
  • 40. Editable Columns – Field Types • Edit date field with date picker • 1 – Include module: dojox.grid.cells.DateTextBox • 2 – Set cell type: dojox.grid.cells.DateTextBox • Only works in Notes 9 28
  • 41. Editable Columns • REST service’s save() function can accept callbacks • Useful for displaying an error if save fails var saveCallbacks = {onError: function() {alert('There was an error saving your changes.');}}; restServiceID.save(saveCallbacks); • Editable columns work with viewItemFileService, but require a Web Site document to work with viewJsonService • Can only edit columns mapped to a single field • Grid has singleClickEdit property • Highlighting changes 29
  • 42. HTML Columns • Create custom column in REST service (or use existing view column) with HTML content • Add Grid Column to display HTML content column • Set Grid property escapeHTMLInData = false • Not a good idea – vulnerable to XSS 30
  • 43. Icon Columns • Doesn’t work as pass-thru HTML • Requires column formatter function (client JS) • Formatter can conditionally return <IMG> tag • Does not require escapeHTMLInData property • Much more secure for all passthru HTML 31
  • 44. Dojo EnhancedGrid • Dojo module that extends DataGrid • Already available on the server • Provides enhanced features via plugins • Check for available features based on Domino/Dojo version • Domino 8.5.3 – Dojo 1.6 • Domino 9 – Dojo 1.8 • http://dojotoolkit.org/reference- guide/1.6/dojox/grid/EnhancedGrid.html 32
  • 45. Converting to EnhancedGrid • Dojo Data Grid control creates a Dojo DataGrid • You can modify to create a Dojo EnhancedGrid 1. Load the EnhancedGrid module 2. Set grid Dojo type 3. Load required style sheets 33
  • 46. Converting to EnhancedGrid • 1 - Load the EnhancedGrid module on the page • Resources > Add > Dojo Module • dojox.grid.EnhancedGrid 34
  • 47. Converting to EnhancedGrid • 2 - Set grid Dojo type to dojox.grid.EnhancedGrid • Properties > Dojo > Dojo type 35
  • 48. Converting to EnhancedGrid • 3 - Load required style sheets • Load relative to the Domino server path <xp:styleSheet href="/.ibmxspres/dojoroot/dojox/grid/resources/Grid.css"> </xp:styleSheet> <xp:styleSheet href="/.ibmxspres/dojoroot/dojox/grid/resources/EnhancedGrid.css"> </xp:styleSheet> 36
  • 50. EnhancedGrid Plugin - DnD • Provides ability to drag and drop columns, rows, and cells • Configuration object defines options • Add a row selector to drag and drop rows • Usage 1. Select content to drag 2. Release mouse button 3. Click on the data to move it • IMPORTANT: When cells are moved, changes are automatically saved 38
  • 51. EnhancedGrid Plugin - DnD 1. Load the DnD plugin • Properties > Resources > Add > Dojo Module • dojox.grid.enhanced.plugins.DnD 39
  • 52. EnhancedGrid Plugin - DnD 2. Add plugin to grid as an attribute • Dojo > Add • Name: plugins • Value: {dnd: {dndConfig:{} } } • All selection types enabled by default 40
  • 53. EnhancedGrid Plugin - Filter • Adds a filter bar • Up to 3 Filtering rules • Match all rules or any rule • Select column to filter • Select matching condition (is, contains, starts with…) • No coding required!! • Results are sortable 41
  • 54. EnhancedGrid Plugin - Filter 1. Load the Filter plugin • Properties > Resources > Add > Dojo Module • dojox.grid.enhanced.plugins.Filter 42
  • 55. EnhancedGrid Plugin - Filter 2. Add plugin to grid as an attribute • Dojo > Add • Name: plugins • Value: {filter: true} 43
  • 56. EnhancedGrid Plugin - Filter 3. Add a stylesheet <xp:styleSheet href="/.ibmxspres/dojoroot/dojox/grid/enhanced/resources/claro/EnhancedGrid.css"> </xp:styleSheet> 44
  • 57. EnhancedGrid – More Plugins • Print • Provides ability to preview or print grid contents • Print/Preview All, Selected, Custom • Exporter • Provides grid data for export – you handle the rest • Export All, Selected, Custom • Menu • Context menus for columns, rows, cells, selected • Build with dijit menus and dijit menu items 45
  • 58. Dojo TreeGrid • Provides multi-level categorization • Can provide column totals and counts • Extends Dojo DataGrid • Cannot use EnhancedGrid plugins • Poor documentation • Apparently cannot use Dojo Data Grid control 46
  • 59. TreeGrid - Implementation • Programmatic -- NOT the Dojo Data Grid Control 1. Include required dojo modules and stylesheets 2. Set XPage to parse dojo on load 3. Define a <div> to render the grid and size it 4. Execute code onClientLoad to configure and generate the grid 5. Provide data for the grid (XAgent) • Complicated format ... { id: 'AS', name:'Asia', type:'continent', children:[{_reference:'CN'}, {_reference:'IN'}] }, { id: 'CN', name:'China', type:'country' }, { id: 'IN', name:'India', type:'country' }, ... 47
  • 60. TreeGrid – Totals and Counts • Inline when collapsed, below when expanded • Requires a different (but simpler) JSON model {id:'AK', type: 'state', state:'AK', numPeople: 3, childItems:[ {id:'B3093953178C98E905257838007ABC48', firstname:'Bella', lastname: 'Martin', valueToAdd: 2}, {id:'7FDB9CCDE7D6923E05257838007ABC1E', firstname:'Brian', lastname: 'Leggett', valueToAdd: 2} ] }, • Add an aggregate property • Set to “sum” or “cnt” • Numeric columns handled properly; text concatenated • Formatter functions can modify display (and hide text) 48
  • 61. TreeGrid – Data Format Caveat • Simpler JSON format causes blank rows when used without counts/totals 49
  • 62. TreeGrid - Features • defaultOpen – expanded or collapsed • openAtLevels – auto expand all categories with less items than the defined amount • Doesn’t work with ForestStoreModel • expandoCell – column to display expand icon 50
  • 63. Questions? Data Grid Blogs: http://xcellerant.net/dojo-grids-in-xpages/ Twitter: @Balassaitis 51
  • 64. Š 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC Questions???? 7 Use the Q&A pane in WebEx to ask questions We will answer your questions verbally
  • 65. Š 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC Question and Answer Time! 8 Teamstudio Questions? contactus@teamstudio.com 877-228-6178 TLCC Questions? howardg@tlcc.com paul@tlcc.com 888-241-8522 or 561-953-0095 Brad Balassaitis Howard Greenberg Taline Badrikian Upcoming Events: TLCC Spring Sale, ends tomorrow!!! MWLUG in Indianapolis and TackItOn ICON UK in Brighton and TackItOn 30% off all Teamstudio tools and 15% off all Ytria tools Next webinar July 24th – Making Mobile App Dev Easy SoftBank World 2013 July 23-24 in Japan #XPages @Balassaitis @TLCCLtd @Teamstudio @PaulDN Paul Della-Nebbia