なんか難しく考えてますね。
<xp:listBox>のデータ格納先をviewScopeの適当な変数に割り当てて、[OK]ボタンの処理に、SSJSとダイアログを閉じるCSJSを並列に書けばいいだけ。
SSJS内でviewScopeの格納先にアクセスすれば<xp:listBox>の選択した要素の番号が手に入る。
自分で質問してた「Dojoでダイアログ表示したときの問題」の応用にすぎない。
ダイアログなんてしょせん普段はdisplay:noneで非表示にしてる<xp:panel>だと思っておいてもそうハズレではない。
表示/非表示の切り替えをCSJSで制御してるだけ。
/Yac