In einem Klick, so wie man das aus dem guten, alten LotusScript kennt.
Hmm, also ich kenn da jetzt keine Möglichkeit, das mit "einem Klick" in LotusScript zu realisieren, das sind m.W. immer ein paar Zeilen Code, die die Schritte 1-4 abbilden. Nur halt in einem CodeBlock, die den gesamten Client lahmlegen, wenn die Picklist oder der Dialog geöffnet ist.
Funktioniert. Aber es fühlt sich sehr nach "von Hinten mit der Faust durchs Auge" an. Ich mag es nicht. Es ist viel zu kompliziert für eine eigentlich so simple Anforderung.
Welche Anforderung
außer das Öffnen eines NamePickers ist denn
nicht kompliziert umzusetzen im Notes Client?
Oder fährt man mit XPages/Webentwicklung ganz anders?
Grunsätzlich nicht. Denn ob man nun im NotesClient arbeitet, oder im Web: Der einzige Unterschied ist eine "echte" Trennung zwischen Frontend und Backend. Das, was man mit UI-Klassen und Backend-Klassen im LotusScript vorfindet, ist hier halt einzuhalten - ein Mix wie bei reiner Client-Entwicklung ist nicht möglich (sehr, sehr stark vereinfacht dargestellt). Das ist zwar aufwendiger, aber sauberer und daher fehlertoleranter.
(falls ja: Wie)
Gerade hier gibt es etliche Lösungsvarianten. Ich würde das ganze so lösen:
1.
Dem CC eine zusätzliche Eigenschaft verpassen, nennen wir sie
onCloseExec. Die wird als Method-Binding definiert (Typ:
javax.faces.el.MethodBinding)
2.
Diesen Code kann man im EventHandler des Buttons ausführen. Hier der SSJS Code dazu:
compositeData.onCloseExec.invoke( facesContext, null );
3. Dann die Eigenschaft in der jew. XPage mit Leben füllen:
<xc:this.onCloseExec>
<![CDATA[#{javascript:
var app = facesContext.getApplication();
app.createMethodBinding("#{javascript:print( 'Ich mache was' )}", null);
}]]>
</xc:this.onCloseExec>
Sobald der OK Button im Dialog geklickt wird, wird das Method-Binding ausgeführt.
In Java ist das einfacher zu realisieren.