U las in een eerdere nieuwsbrief al iets over XPages. XPages is een nieuwe Domino techniek, gebaseerd op JSF. JSF staat voor JavaServer Faces.
JSF is een java raamwerk. In onze nieuwsbrief van oktober 2008 schreven we hier al een
artikel over.
Nu de Domino 8.5 designer officieel is uitgebracht, kunnen we in een nieuw te ontwikkelen applicatie gebruik gaan maken van de XPages technologie.
We gaan een simpele interne telefoonboek applicatie bouwen en we laten u meekijken hoe we dit gaan doen. We gebruiken hierbij de informatie uit de Domino directory (names.nsf). We willen een weboverzicht van onze collega's en kunnen zoeken naar een bepaalde collega. Kan niet moeilijk zijn toch? We beperken ons in deze uitleg tot het geven van een overzicht en het maken van een zoekfunctie. Het is uiteraard ook mogelijk de XPages applicatie uit te breiden zodat we ook details op het scherm kunnen tonen en wijzigen.
Om te beginnen starten we de Domino Designer versie 8.5 op. Als u deze voor het eerst opstart, zult u zien dat de designer er nu behoorlijk anders uitziet dan Domino 8.0.
Klik om de afbeelding te vergroten
Het opstarten duurt wat langer en het inladen van een database ook, maar ook voor web applicaties die nog geen gebruik maken van XPages technologie, is de nieuwe designer een aanrader. Al is het alleen maar vanwege de ingebouwde stylesheet editor. We sluiten het welkomscherm af en maken een nieuwe applicatie door te kiezen voor File - New application. We geven de applicatie een naam en klikken op OK.
We gaan nu zelf een XPage maken. Klik met de rechtermuis-toets op XPages en dan op New XPage. We noemen deze xpage phonebook en klikken op OK. De XPage wordt aangemaakt.
Klik om de afbeelding te vergroten
Kijk goed naar het scherm: links boven zien we het form en rechts zijn de controls zichtbaar. De controls zijn de verschillende elementen die we op het scherm kunnen plaatsen. Dit kunnen velden en buttons zijn, maar ook hele Views. We plaatsen nu een View op het scherm.
Klik om de afbeelding te vergroten
We slepen een View naar het schermvlak. Er verschijnt een dialoog venster waar we moeten opgeven welke View we willen weergeven. Door op de blauwe ruitjes die achter de verschillende opties staan te klikken, kan een formule worden ingevoerd om de waarde voor de betreffende optie te bepalen. Dit kan erg handig zijn. Nu selecteren we het adresboek als applicatie. Vervolgens kunnen we de View selecteren door op het pijltje achter View: te klikken. We selecteren de “_people” Vview. Nu selecteren we de kolommen die we willen tonen. We selecteren Name, Telephone en e-mail.

Door op
OK te klikken plaatsen we de View op onze XPage. We hebben nu een Xpage die van alle personen uit de Domino Directory de naam, het telefoonnummer en het e-mailadres toont, zonder ook maar iets te hoeven aanpassen in het adresboek zelf. Laten we kijken hoe dit er uit ziet. U kunt de Xpage previewen door in het menu design voor preview te kiezen en vervolgens voor de gewenste browser.
Klik om de afbeelding te vergroten
We krijgen nu een overzicht van alle personen uit de Domino directory:
Klik om de afbeelding te vergroten
We willen ook nog een zoekfunctie. Daartoe slepen we een textbox vanuit de controls naar net boven het Viewpanel. Een textbox is een invoerveld. We moeten op het moment dat we de textbox op het formulier hebben geplaatst, deze nog aan een sessie variable koppelen die we zoekWaarde noemen. Klik hiertoe op het
tekstveld en kies dan voor
data. Kies vervolgens bij
bind data using voor
Advanced en dan bij
use voor
scoped variables. Vervolgens selecteren we bij
scope session scope en voeren we
“zoekWaarde” in als
variable name. De
properties tab ziet er dan als volgt uit:
Vervolgens stellen we in dat wanneer er op een toets in het zoekveld wordt gedrukt, de View opnieuw wordt opgebouwd. Dit doen we door naar de tab
events te gaan. In de tab
events klappen we
keys open en selecteren we
onkeypress. Vervolgens selecteren we bij
server options partial update en klikken we op
select elements. Er verschijnt een popup window waaruit we de View selecteren (
viewPanel1). De event tab ziet er dan als volgt uit:
We moeten nu in de View instellen dat hij alleen de waarden uit de View toont die beginnen met de tekst uit het zoekveld. Dit doen we door op de
View te klikken en naar
all properties te gaan.
Vervolgens klappen we
data en daaronder
data open. Er is een
property keys. Door op het blauwe ruitje achter deze property te klikken kunnen we kiezen wat voor waarde we willen ingeven. Een
static value of een
dynamic value. We kiezen voor
“Compute value..” vervolgens geven we het volgende script in om alleen View entries te tonen die beginnen met de opgegeven zoektekst:
sessionScope.get(“zoekWaarde”);
De optie
keysExactMatch moet u vervolgens op
false zetten.
Als we de XPage nu previewen, hebben we een tekstveld boven de View. Door hier tekst in te voeren, toont Domino alleen de personen waarvan de achternaam begint met de ingegeven tekst.
Zie hier onze eerste XPage applicatie. Hij is weliswaar nog niet mooi, maar dáár komen we nog op terug volgende maand!