xpages blast - ideas, tips and more
DESCRIPTION
XPages Blast - Ideas, Tips and More. This session will take you on a roller-coaster ride through the "best of the best" ideas and time-saving techniques for creating world-class XPages applications. Thirty all new top tips - this is going to be fast-paced and packed with loads of information you will refer to time and time again! Everything from introductory tips on getting started with XPages, to complex tips - such as making use of Java. Also, the support app showing all of the tips and tricks.TRANSCRIPT
![Page 1: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/1.jpg)
XPages'Blast'''
Tweet'about'this'event:'#xpages''and'men:on'us:'@teamstudio'@TLCCLTD'@ma?white'@TimsterC'
'March'26,'2013'
![Page 2: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/2.jpg)
@teamstudio'teamstudio.com'
![Page 3: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/3.jpg)
Dan$Colbert$Vice'President'North'America'and'La:n'America'
Taline$Badrikian$Marke:ng'Director'
![Page 4: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/4.jpg)
Who'we'are'• Our'background'is'in'crea:ng'tools'for'collabora:ve'
compu:ng'in'midQsize'and'large'enterprises,'primarily'for'Lotus'Notes'
• EasyQtoQuse'tools'for'developers'and'administrators'• 2300+'ac:ve'customers,'47'countries'• Offices'in'US,'UK'and'Japan'• Entered'mobile'space'in'2010'with'Unplugged'–'easy'
mobiliza:on'of'Notes'apps'to'Blackberry,'Android'and'iOS''
![Page 5: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/5.jpg)
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'Collabora:on'Solu:ons'Award'Winner'2013' '
'
![Page 6: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/6.jpg)
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
![Page 7: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/7.jpg)
Teamstudio
• Visit us at IamLUG - May 6 & 7 • Next webinar – jQuery and XPages apps, Mark Roden –
April 23
![Page 8: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/8.jpg)
© 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC
Howard Greenberg TLCC
@TLCCLtd
Paul Della-Nebbia TLCC
@paulDN
XPages Blast Your Hosts Today:
1
#XPages
![Page 9: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/9.jpg)
© 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 April 23rd jQuery: The World's Most Popular JavaScript Library Comes to XPages with Mark Roden
www.tlcc.com/xpages-webinar
Same web page has a link to previous webinars
![Page 10: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/10.jpg)
© 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC
• Seven XPages Courses! On Sale, Save $200! Rapid XPages Development using Application Layout and
Dojo UI Controls FREE !! Introduction to XPages Development JavaScript for XPages Development Developing XPages Using Domino Designer 8.5 XPages Development 2 for Notes and Domino 8.5 Mobile XPages for Domino 8.5 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
![Page 11: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/11.jpg)
© 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC
IamLUG in St. Louis ¾May 6th and 7th … FREE!!
TackItOn the day after (May 8th)
¾Rapid XPages Development using Application Layout and Dojo UI Controls
• One full day with TLCC’s expert instructor Paul Della-Nebbia • TLCC’s Rapid XPages Development using Application Layout and Dojo UI
Controls (8.5 or 9.0) self-paced course (28 hours) • A year of continued instructor support
¾All for only $495! IamLUG exclusive offer!!
www.iamlug.org
4
Upcoming Events
![Page 12: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/12.jpg)
© 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC
Asking Questions
Q & A at the end! Type in your questions as they come up
5
![Page 13: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/13.jpg)
© 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC
Tim Clark, IBM Champion @timsterc
Your Presenters Today:
6
#XPages
Matt White, IBM Champion @mattwhite
![Page 14: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/14.jpg)
XPages Blast (2013)
1
Matt White | London Developer Co-op
Tim Clark | TC Soft Consulting
![Page 15: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/15.jpg)
#xpages
Matt White
2
–Consultant with London Developer Co-op–Lead Developer with Elguji Software–Owner of XPages101.net–In the last year has;
– Got married– Become a father– Bought a new house– Oh... and developed some XPages apps!
![Page 16: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/16.jpg)
–Owner of TC Soft Consulting–IBM Champion–Prince2 Practitioner (Project Management)–ITIL certified–Manager of;
– People– Projects– My family ;o)
#xpages
Tim Clark
3
![Page 17: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/17.jpg)
–IBM Lotus® Domino® Server 8.5.3– If we use other versions for a tip we’ll highlight it
–IBM Lotus® Notes® 8.5.3–IBM Notes® 9.0–IBM Lotus® Domino Designer® 8.5.3–IBM Domino Designer® 9.0
–We will use this logo to highlight any slide that has IBM Domino Designer® 9.0 items
#xpages
Products we’re using
4
![Page 18: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/18.jpg)
#xpages
Agenda
5
–Config Tips–Client Side Tips–Server Side Tips–Debugging Tips
![Page 19: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/19.jpg)
–Working Sets– Great for grouping together similar applications
–Perspectives– Switch between XPages, Domino Designer and Debug
–Turn on Line Numbers in code editor– Right click in the gutter and select “Show Line Numbers”
#xpages
Designer Tweaks
6
![Page 20: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/20.jpg)
#xpages
Designer Tweaks
7
–XPages Palette to control which controls you see in the sidebar (new in 9.0)
![Page 21: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/21.jpg)
#xpages
Disable Build Automatically
8
–It is enabled by default–When you save a design element the application is
recompiled–This is bad if
– you’re working in a team– you’re working on remote servers
–Turn it off and get used to using Ctrl-B
![Page 22: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/22.jpg)
–Bonus Tip: if you close other applications the build process is quicker
– Can only be done in Package Explorer in 8.5.3, in 9.0 it can be done from Applications pane
#xpages
Disable Build Automatically
9
![Page 23: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/23.jpg)
#xpages
Source Control
10
– Acts as a great backup tool for you– Even if you don’t have a team Repository, set up a local one– We use Github, allows for better team development– Set up Source Control for the application and choose a disk
location– Then set up the Github project– Link the two by creating a new Git project in the same disk
location– Video of how to set it all up at
http://bit.ly/xpb_github
– We use a client to control the Committing, rollbacks etc, but command line works equally well
– https://github.com/tcsoft/xpb2013
![Page 24: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/24.jpg)
#xpages
Designer Memory Settings
11
– 8.5.3 Designer client can be a little crashy, but we can fix that!– Open the file at:
<Notes program dir>/framework/rcp/deploy/jvm.properties
– Default settings in 8.5.3 are:
vmarg.Xmx=-Xmx256m vmarg.Xms=-Xms48m vmarg.Xmca=-Xmca8k
– Also still like this is Domino Designer 9.0 (beta)
![Page 25: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/25.jpg)
#xpages
Designer Memory Settings
12
–New settings should be:
vmarg.Xmx=-Xmx1024m vmarg.Xms=-Xms512m vmarg.Xmca=-Xmca512k
–Took my machine from crashing nearly every day at 3pm to almost never crashing
–Technote:
http://www-01.ibm.com/support/docview.wss?uid=swg21617708
![Page 26: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/26.jpg)
#xpages
Agenda
13
–Config Tips–Client Side Tips–Server Side Tips–Debugging Tips
![Page 27: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/27.jpg)
#xpages
Know your versions
14
– Dojo• 8.5.0 == 1.1.1• 8.5.1 == 1.3.2• 8.5.2 == 1.4.3• 8.5.3 == 1.6.1• 9.0 == 1.8
– OneUI• < 8.5.3 == 2.0.1• 8.5.3 == 2.1• 9.0 == 3.0.2
– CKEditor• 8.5.2 == 3.2.1.6• 8.5.3 == 3.5.3• 9.0 == 3.6.4
![Page 28: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/28.jpg)
#xpages
Think Mobile
15
–Mobile Controls in the Extension Library–But even if not going that far then it’s always
worth setting meta tags and field types–Meta tags configure the page for optimal
viewing in iOS–Set them by adding a metadata resource to
your XPage:
![Page 29: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/29.jpg)
#xpages
Think Mobile
16
–By default consider these...–viewport: width = device-width, initial-scale = 2.3,
user-scalable = yes• scales the page to fit on the page
–apple-mobile-web-app-capable: yes• allows you to add to the iOS workspace and run without
the Safari controls–apple-mobile-web-app-status-bar-style: black
• changes the header bar colour
![Page 30: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/30.jpg)
#xpages
Think Mobile
17
–There is no overhead at all to setting the “type” property of fields so that when you are using a mobile device the user gets the correct keyboard
–In All Properties for a field set type, most important being:• date (displays a native picker, but beware date formats)• email• number• url
![Page 31: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/31.jpg)
#xpages
Use jQuery
18
–If you want to use the most popular JavaScript framework on the Internet add jQuery to your application
–Extra overhead but on a fast network not a huge problem
–Check out http://xomino.com for great tips–Gives access to huge number of resources in your
applications–Code is often easier to write (ymmv!)
![Page 32: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/32.jpg)
–Check out the companion application for this session.
–The extension library application layout has lots of options and can be made to suit your application.
#xpages
Use the extension library application layout
19
![Page 33: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/33.jpg)
#xpages
Use Bootstrap
20
–OneUI is one way to go for the look and feel of your app
–Bootstrap is an alternative• Open source, released by Twitter• Easy to use• Integrates with jQuery• Has useful built in widgets
![Page 34: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/34.jpg)
#xpages
Use Bootstrap
21
![Page 35: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/35.jpg)
#xpages
Use Bootstrap
22
![Page 36: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/36.jpg)
#xpages
Agenda
23
–Config Tips–Client Side Tips–Server Side Tips–Debugging Tips
![Page 37: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/37.jpg)
–For simple things like including CSS files on all XPages
–For more advanced things as well...–Add a CSS class to all controls of a particular
type:
#xpages
Using Themes
24
![Page 38: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/38.jpg)
–Using the Theme ID we can create our own sub types of field:
–Or we can add custom classes to the <body>
#xpages
Using Themes
25
![Page 39: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/39.jpg)
#xpages
Using Attributes
26
–Pretty much every control has a property called “attrs”
–You can add as many attributes as you like to a control
–Often used in conjunction with the tagName property• To make a panel into an anchor for example
![Page 40: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/40.jpg)
–Ones we use a lot are:• href• onclick (and other events)• data-toggle (and other jQuery tags)
–Will result in this being generated:
<a id="id1:_id2:mylink" onclick="doSomething()"> My Link</a>
#xpages
Using Attributes
27
![Page 41: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/41.jpg)
#xpages
Document Locking
28
–Scoped Variables are great for in memory tasks–Such as knowing who has documents in edit mode–So when a page is loaded we can call some code
to decide whether to allow the user to edit it–We can use applicationScope variables to store a
Java Hashmap of who has locked individual documents
![Page 42: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/42.jpg)
#xpages
Document Locking
29
function processDocumentLocking(){
if (context.getUrlParameter("documentId") != "" &&
context.getUrlParameter("action").toLowerCase() == "editdocument"){
if (!applicationScope.containsKey("documentlocks")){
applicationScope.documentlocks = new java.util.Hashtable();
}
var hash:java.util.Hashtable = applicationScope.documentlocks;
if (hash.containsKey(context.getUrlParameter("documentId"))){
var lock = hash.get(context.getUrlParameter("documentId"));
if (lock.person != @UserName()){
viewScope.locked = lock;
}
}else{
var lock = new DocumentLock();
lock.unid = context.getUrlParameter("documentId");
lock.person = @UserName();
lock.time = new java.util.Date();
hash.put(lock.unid, lock);
applicationScope.documentlocks = hash;
}
...
![Page 43: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/43.jpg)
#xpages
Document Locking
30
...
}else if (context.getUrlParameter("documentId") != "" &&
context.getUrlParameter("action").toLowerCase() == "opendocument"){
if (!applicationScope.containsKey("documentlocks")){
applicationScope.documentlocks = new java.util.Hashtable();
}
var hash:java.util.Hashtable = applicationScope.documentlocks;
if (hash.containsKey(context.getUrlParameter("documentId"))){
var lock = hash.get(context.getUrlParameter("documentId"));
if (lock.person == @UserName()){
unlockDocument( context.getUrlParameter("documentId") );
}else{
viewScope.locked = lock;
}
}
}
}
![Page 44: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/44.jpg)
#xpages
Document Locking
31
function unlockDocument(unid){
if (applicationScope.containsKey("documentlocks")){
var hash:java.util.Hashtable = applicationScope.documentlocks;
if (hash.containsKey(unid)){
var lock = hash.get(unid);
if (lock.person == @UserName()){
hash.remove(unid);
applicationScope.documentlocks = hash;
}
}
}
}
var DocumentLock = function(){
this.unid;
this.person;
this.time;
}
![Page 45: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/45.jpg)
#xpages
Document Locking
32
![Page 46: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/46.jpg)
#xpages
Expression Language
33
– You’re probably already using it even if you don’t realise it with Simple Data Binding
– It’s just a simple shorthand to access properties quickly– You just need to use the Advanced - Expression
Language binding
![Page 47: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/47.jpg)
#xpages
Expression Language
34
–If you want to get clever you can mix and match EL with SSJS
–In the Advanced - Custom binding
![Page 48: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/48.jpg)
#xpages
Managed Beans
35
–Not as scary as you might think–Made up of two things
• Java Class that does something• XML Config to set up the “managed” bit
–The idea is that the server looks after creation of the objects for you
–So say we want to create an HTML Email...
![Page 49: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/49.jpg)
#xpages
Managed Beans
36
–Tony McGuckin contributed the XSnippet:http://bit.ly/xpb_managedbean
–It does a single thing, in this case sends an email:
![Page 50: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/50.jpg)
#xpages
Managed Beans
37
–Then we set up the XML Configuration–In the faces-config.xml file found in Package
Explorer•WebContent\WEB-INF\faces-config.xml
–We need to define the name of the bean, the Java class being used and the Scope it will operate with
![Page 51: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/51.jpg)
#xpages
Managed Beans
38
–Now we can use the managed bean in our SSJS
![Page 52: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/52.jpg)
#xpages
FacesMessage
39
–Often we want to be able to send messages to the browser window
–Just add add an “Error Messages” control to your XPage and use this code:
–In this example the code runs when a button is clicked and shows the current time
![Page 53: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/53.jpg)
#xpages
Custom Validators
40
–For complex or common validation we can centralise the logic into Java classes using Custom Validators
–First we create the Java class:
![Page 54: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/54.jpg)
#xpages
Custom Validators
41
–Next we set up the validator configuration in the faces-config.xml file•WebContent\WEB-INF\faces-config.xml
![Page 55: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/55.jpg)
#xpages
Custom Validators
42
–And finally we can make use of the validator in our XPage
![Page 56: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/56.jpg)
#xpages
Apache Commons
43
–Taking the Custom Validator, what if we want “real” validation
–Lots of common tasks have already been covered by Apache Commons:
http://commons.apache.org/validator/
–Import the commons-validator.jar file into WebContent\WEB-INF\Lib
–Then right click and “Add to Build Path”
![Page 57: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/57.jpg)
#xpages
Apache Commons
44
–Now we can edit our Java class to use the EmailValidator:
![Page 58: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/58.jpg)
#xpages
Agenda
45
–Config Tips–Client Side Tips–Server Side Tips–Debugging Tips
![Page 59: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/59.jpg)
#xpages
Log File Viewer
46
–A project on OpenNTF by Jakob Majkilde
http://bit.ly/xpb_logfileviewer
–Makes watching log files (especially on remote servers) much easier
![Page 60: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/60.jpg)
#xpages
Log File Viewer
47
![Page 61: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/61.jpg)
#xpages
Debug Toolbar
48
–A project on OpenNTF by Mark Leusink
http://bit.ly/xpb_debugtoolbar–Very useful for following debug messages,
timing code and more
![Page 62: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/62.jpg)
#xpages
Java Debugging
49
–Built into Domino Designer since 8.5.3–Easy to set up–Add lines to notes.ini on the dev server:
JavaEnableDebug=1JavaDebugOptions=transport=dt_socket,server=y,suspend=n,address=8000
–Restart the server
![Page 63: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/63.jpg)
#xpages
Java Debugging
50
–In Domino Designer switch to the Debug Perspective
–Create a new Remote Java Application Debug Configuration
![Page 64: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/64.jpg)
#xpages
Java Debugging
51
–Now we can add a breakpoint to our code and load the XPage in a browser and then step through the code
![Page 65: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/65.jpg)
#xpages
SSJS Debugging
52
–Server Side JavaScript debugging is almost exactly the same in Domino 9.0
–The notes.ini lines to add are:
JavaEnableDebug=1JavascriptEnableDebug=1JavaDebugOptions=transport=dt_socket,server=y,suspend=n,address=8000
–There was a whole session on this @ Connect13:AD202 Debug Server Side Javascript, Java, and XPages Apps Using the SSJS DebuggerM Blout & D O'Connor
![Page 66: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/66.jpg)
#xpages
SSJS Debugging
53
–The Debug Configuration will look like this:
![Page 67: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/67.jpg)
#xpages
SSJS Debugging
54
–And then we can set a breakpoint in the source XML of our XPage or Script Library:
![Page 68: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/68.jpg)
#xpages
Pasting source code from extension library
55
– ‘The prefix "xe" for element "xe:navigator" is not bound.’– This happens when you paste in some source code from
one custom control to another for a control that is from the extension library.
– The View tag is where you can solve this issue.
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"xmlns:xe="http://www.ibm.com/xsp/coreex">
– Does not happen if you drag and drop from the extension library palette.
![Page 69: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/69.jpg)
#xpages
Contact Us
56
–Matt White• [email protected]• @mattwhite
–Tim Clark• [email protected]• @timsterc
![Page 70: XPages Blast - Ideas, Tips and More](https://reader034.vdocuments.net/reader034/viewer/2022052504/5496f22aac7959182e8b51e5/html5/thumbnails/70.jpg)
© 2013 The Learning Continuum Company, Ltd – This material can not be reproduced or distributed without the express permission of TLCC
Question and Answer Time!
Teamstudio Questions? [email protected] 877-228-6178 www.teamstudio.com
#XPages
@PaulDN
@TLCCLtd
@Teamstudio
TLCC Questions?
[email protected] [email protected] 888-241-8522 or 561-953-0095
7
Matt White Tim Clark Howard Greenberg Paul Della-Nebbia
IamLUG in St. Louis, May 6th and 7th TackItOn May 8th Rapid XPages Development using Application Layout and Dojo UI Controls
www.iamlug.org
Save $200! Rapid XPages Development using Application Layout and Dojo UI Controls until 4/12