Převod LN aplikace do xpages Josef Kadlčík, jkadlcik@trask.cz 23.11.2010 Greenpoint
Agenda Potřebné nástroje Porovnání LN a xpages / JSF Ukázka převáděné LN aplikace Komponenty Extension Library Ukázka převodu jednotlivých funkčností Debugging a logování chyb Ukázka xpage demo aplikací Zdroje další dokumentace
Potřebné nástroje Domino 8.5.2 a Lotus Designer 8.5.2 Extension library (http://extlib.openntf.org/) Instalace na server i do klienta Dojo 1.4.3 (součást Domino 8.5.2) Ukázka registrovaných součástí na serveru Oneuiv2 Mozila Firefox 3.6.12 IE 8 pozor na compatibility view
Komponenty LN aplikace Data Form View Profilové dokumenty Subform Agent Script library Page Frameset Shared actions Outline
Demo aplikace Evidence přijatých faktur Formulář s přílohou Různé pohledy Číselník dodavatelů Schvalování LS knihovna, subform Evidence platby k faktuře DEMO
xpages JSF framework MVC model Javascript business logika EJB business logika Front end Dojo Form = pouze data View = indexovaná data xpage Custom control Extension control - component
www v Lotus Notes $$Return $ViewTemplate WebQuerySave (wwwagentxyz) <td></td> v pohledech $Body. MVC Java JavaScript XML CSS JSF Komponenty Datasources JavaBeans Ajax Dojo
JSF cyklus www.sutol.cz
view - strom komponent JSF Datová reprezentace HTTP requestu Konverze string hodnot komponent do objektůkomponent stromu Cyklus pořadí zpracování - MVC Render-kit zajistí překlad stromu response Dojo toolkit komponenty pro tenkého klienta
JSF cyklus x LN cyklus Události LN Konverze Validace QueryOpen QuerySave PostOpen PostSave Akce Události JSF View rebuild Konverze Validace Update model Datasource události Akce Render response
@Formule, LS a Javascript SS javascript 172 nepodporovaných formulí Možno doplnit jako funkce js do knihoven Možno používat balíčky Java Javascript Client a Server Není přímý přístup do LS knihoven
Extension library Vyvíjená open source komunitou Dostupný source kód Možnost psát vlastní komponenty Možnost kupovat komponenty Extension Library API www.openntf.org
Původní komponenty www.sutol.cz
Extlib komponenty www.sutol.cz
JSF metody uložení dat a komponent Scope variables applicationscope sessionscope requestscope viewscope EL expressions Data binding Java Beans context facescontext view getcomponent
Shrnutí funkčností Layout a navigator (Frameset a outline) Pohledy Editace v pohledu Vyhledávání Dialog Picklist Aktualizace hodnot formuláře Práce s Upload a Download prvky Form webquerysave, webpostsave
Layout rozvržení Aplikace Application Layout - <applicationlayout> Vložit custom XSP markup Vytvořit callback facety <xp:callback xp:key= LeftColumn" facetname="leftcolumn"></xp:callback> <xp:callback xp:key="callback1" facetname="maincontent"></xp:callback> <xp:callback xp:key="rightcolumn" facetname="rightcolumn"></xp:callback> Použít <xe:keepsessionalive>
<xe:navigator> <xe:outline> Navigátory <xe:pagetreenode> <xe:separatortreenode>
JSF komunikuje s úložišti dat pomocí tzv. datasource dominoview dominodocument do budoucna i RDBMS restservice store pro komponenty UI JSON <xe:restservice> XML Data
Převod pomocí datasource Dominoview Standardní komponenta <xp:viewpanel> Nově pro ExtLib <xe:dynamicviewpanel> Hodně nastavení v <xe:dataview> 1. pohledy datasource dominoview a) xe:dynamicviewpanel b) xp:viewpanel c) xp:repeat d) xe:djxdatagrid - Restservice 2. linky a formulář 3. datasource dominodocument View
Dialog Umožňuje zpracovat externí data Ukázka editace profilu Ukázka realizace @Picklist Tooltip dialog editace dodavatele <xe:dialog> a <xe:tooltipdialog>
Formulář faktura Vytvoření datasource Přenesení datových polí a vytvoření struktury Action bar Uložit, Zrušit Vytvoření CustomControl pro subfoms @PickList webqueryopen webquerysave Computeonform Profil nutno přidat do volání getprofiledocument In-memory document
Convertory a Validátory Práce s attachmenty Upload a Download komponenta Volání agentů a existující LS logiky v událostech datasource Dojo toolkit Další vlastnosti
Jak na debugging Prozatím nelze trasovat JavaScript Používat try {} catch (e) {e.printstacktrace()} Pro uživatele var ex:com.ibm.xsp.exception.evaluationexceptionex = requestscope.error ex.geterrortext(); ex.getmessage(); ex.geterrorpropertyid()
Další zdroje informací http://xpages.info/xpageshome.nsf/resources.xsp http://www-10.lotus.com/ldd/ddwiki.nsf http://www.bleedyellow.com http://www.dojotoolkit.org Videa na www.youtube.com Demo aplikace Demonstration Application for XPages in IBM Lotus Notes Domino R8.5.2 XPages Extension Library Demo