Xpages för utvecklare

1,740 views

Published on

en presentation av xPages för utvecklare

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,740
On SlideShare
0
From Embeds
0
Number of Embeds
192
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Xpages för utvecklare

  1. 1. Workshop xPages Thomas Adrian www.notessidan.se
  2. 2. Agenda – Kunskapströskeln – Fördelar – Nackdelar – En snabb demo av notessidan.se – Demo av olika funktioner – Fika – Workshop Projektrum ● Formulär + validering och actions ● Vyer
  3. 3. Hur jag lärt mig xPages ● Läst bloggar, planetlotus.org ● Läst dokumentationen http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp ● Läst och deltagit på notes.net forum ● Chat forum #dojo ● Xpages W iki: http://www.youatnotes.de/web/youatnotes/wiki- xpages.nsf/home.xsp ● Domino Designer W iki: http://www-10.lotus.com/ldd/ddwiki.nsf ● http://www.jmackey.net/ ● Byggt själv
  4. 4. Kunskapströskeln ● Eclipse (Outline, Navigator, Problem, Properties, Events, controls) ● HTML ● Stylesheet / Themes ● Ajax, partial refresh ● Lotusscript/@formulas/Javascript (ev. java) ● Dojo och Dijit ● Controls (32) och Custom Controls ● Client side js (csjs) ● Server side js (ssjs) ● Globala object och Scoped variables ● JSF + navigator
  5. 5. Fördelar ● Man behöver inte förändra befintliga applikationerna. ● Man kan bygga väldigt komplicerade applikationer utan att skriva en rad kod, man får mycket gratis. t.ex. validering och type-ahead ● Flera datakällor på samma xPage, tex. Join i en vy ● Varje kontroll är bunden till en data källa ● Lätt att göra flerspråkiga websidor ● Lätt att bygga ett ramverk med ”editable area” ● Inbyggt stöd för dojo och oneui ● En xpage behöver inte ligga i databasen där datat ligger ● Kan köras i notesklienten 8.5.1 (med klientens ECL)
  6. 6. Nackdelar ● Många klick ● Svårt att kombinera ”egen kod” med xPage funktionalitet. tex. Egna <script></script> ● ID hanteringen är omständig <div id="view:_id1:_id13:repeat1:0:divSubject"> ● En xPage kan bara generera HTML, (inte xml, json, sql etc) ● Bristfällig dokumentation ● Säkerhetsmodellen, agenter? ● All UI kod i lotusscript måste skrivas om (men det är inte på grund av xpages) ● Buggig
  7. 7. Verktyg för Webutveckling ● Utveckla för Firefox, testa i IE ● Firefox eller Chrome ● Firebug (FF tillägg) ● JSView (FF tillägg) ● Firebug lite (IE) ● Live HTTP headers (FF tillägg)
  8. 8. En Xpage ● Är i webläsaren kompilerad java kod som körs som en servlet ● Är bara en ”dum” html sida innan du binder kontroller och datakällor till den ● Liknar ett formulär. ● En container för att lagra controller ● Kan bindas till flera datakällor ● Kan innehålla Custom Controls ● Är JSF ● Har events för load ( typ W QO)
  9. 9. Custom Controls ● Liknar subformulär ● Kan innehålla andra custom controls ● Kan inte användas utan en xpage ● Kan ta parametrar (bra om man t.ex. Vill skapa custom controls som kan användas var som heltst, tex. Tooltip, eller Dialoger) ● Har events för load ( typ WQO)
  10. 10. Controls repeat, panels , edit box etc.. ● några har event, andra inte ● några kan nestlas i varandra, andra inte ● Alla har sina egna egenskaper och API ● Några kan man koppla till data källor, andra inte ● Man kan göra egna
  11. 11. Repeat Control ● Antagligen den coolaste funktionen i hela xPages , (en del tycker Editable Areas) ● Data behöver inte se ut som en tabell ● I stort sett vad som helst kan repeteras ● Repeat kan nestlas ● Inte bara för dokument – Arrays – Json – Multivalue fields
  12. 12. Exempel på egna controls ● Tooltips ● Tree ● Dialoger ● Workflow ● Create PDF ● Picture gallery ● Movie/Flash ● Rating ● Actionbar ● Charting ● Drop down Menu ● Login/Logot ● Document history ● Multi file upload ● Cloud ● ....
  13. 13. Scoped Variables cookies på servern ● ApplicationScope Tillgänglig för alla användare Tas bort efter en viss tid ● SessionScope Tillgänglig för aktuell användare ● ViewScope Tillgänglig för aktuell websida ● RequestScope Tillgänglig för aktuell request
  14. 14. Programmering ● SSJS kräver alltid en request till servern ● CSJS utförs alltid på klienten, (id konverteras av servern) ● Javascript på servern SSJS – @formulas – Dominoklasser – XSP ● Javascript på klienten CSJS - Dojo ● Java på servern med CSJS ● Lotusscript/Java på servern via agenter
  15. 15. Notesformulär ● Traditionella Notesformulär används av xpages men bara för att definiera fält ● Xpages kräver att alla fält finns på formulären ● Ett formulär som ska accesssas av en xpage kan inte innehålla subforms ● Mitt tips är att göra ett nytt formulär som innehåller bara dom fält jag behöver i min xpage ● Använd formuläret för att dokumentera
  16. 16. Notesvyer ● Används för Lookups och Sortering
  17. 17. ID och Class ● ID och Class är det man i vanliga fall använder när man utvecklar webapplikationer ● I xPages sköter Domino ID hanteringen eftersom data på en xPage kan repeteras ● Utvecklare av xpages får nöja dig med ”Class”:er
  18. 18. Åtkomst till ID i CSJS För att hitta denna div <div id="view:_id1:_id12:repeat1:0:divBody" class="docBody"></div> använd följande som hittar alla id som slutar på divBody dojo.query("[id$='divBody']")[0]; var div = dojo.query("[id$='divBody']")[0]; dojo.toggleClass(div,"bodyhide"); Om man behöver hitta ett id på en control använd syntaxen "#{id:mittid}" Exempel: dojo.byId("#{id:searchData}") Resulterar i följande efter Domino konverterat id't dojo.byId("view:_id1:searchData")
  19. 19. SSJS ● getClientId(”button1”) ● getComponent(”repeat1”). ● getComponent(”repeat1”).getRowCount() ● getComponent(”...”).onclick=”alert('test');” ● facesContext.getExternalContext().getRequest().getRemoteAddr() ● sessionScope.put(”param”,”value”); ● sessionScope.get(”param”); ● context.redirectToPage(&quot;xstart.xsp&quot;); ● context.getLocale(); ● context.getUrlParameter(&quot;post&quot;); ● var pager:com.ibm.xsp.component.xp.XspPager= getComponent(””); pager... ● GetComponent finns inte i CSJS
  20. 20. Xpage på olika språk ● Skapa propertyfiler för olika språk med några klick från databasen ● Exportera propertyfilerna ● Skicka propertyfilerna till översättning ● Importera propertyfilerna till databasen ● Obs: kräver att man har använt controller
  21. 21. DDE och programmeringstips ● CTRL-M (öppna vy i fulläge) ● Outline ( organisera controls) ● CTRL-L x 2 ● F3 (på en control markerar ”parent control”) ● All Properties på en control (visar alla egenskaper) ● print(”test”) i ssjs skriver till server console ● Aktivera debug i application properties ● Hjälpen som ett eget fönster ● Använd Alltid try/catch i SSJS ● @formulas returnerar String(ett värde) eller Array(flera värden) ● Firebug , console.log(...)
  22. 22. Demo ● Theme OneUI ● Panels ● ID hanteringen ● Repeat Control ● Custom Controls ● Editable Area ● View Control/Pager ● Partial Refresh
  23. 23. Demo xpages.notessidan.se

×