返信機能を実装する -その2-

つぎに、実際に返信する機能を実装してみます。
返信ボタンが押されたら、タイトルに「Re : 」を付加した返信メッセージを生成し、SubmitWindowを開いてバインドしたいと思います。
文章で書いても何の事やらなので、ソースの方を・・・


まず、前回定義したopenSubmitWindow()をopenSubmitWindow(isRes:Boolean)とします。つまり、返信用に開くかそうでないかのフラグを付けるというわけです。
また、SubmitWindowにもisResフラグを付けて、返信ならparentDocument.insertResMessageを呼ぶ様に改造します。
ソースはこの様になりました。

bbx.mxml(抜粋)

//SubmitWindowをオープンするメソッド
function openSubmitWindow(isRes:Boolean):Void {
	var newMessage = new MessageBean();
	if (isRes) {
		newMessage.subject = "Re : " + currentMessage.subject;
	}
	
	var popUp:SubmitWindow = 
		SubmitWindow(PopUpManager.createPopUp(this,SubmitWindow,true));
	popUp.message = newMessage;
	popUp.isRes = isRes;
}

function insertResMessage(tempMessage:MessageBean) : Void {
	remote.insertResMessage(currentMessage.pk,tempMessage);
	remote.getSummaryListXML();
}
<!--  ボタン  -->
<mx:HBox horizontalAlign="right" widthFlex="1"
	marginTop="5" marginBottom="5" marginLeft="15" 
	marginRight="15" borderStyle="none" >
	<mx:Button id="resButton"  label="返信する" click="openSubmitWindow(true)"/>
	<mx:Spacer width="50"/>
	<mx:Button label="削除"/>
	<mx:Button label="新規スレッドを立てる" click="openSubmitWindow(false)"/>
</mx:HBox>

SubmitWindow.mxml(抜粋)

	var isRes:Boolean;//追加

	function insertNewMessage():Void {//変更
		applyChanges();
		if (isRes) {
			parentDocument.insertResMessage(message);
		} else {
			parentDocument.insertNewMessage(message);
		}
		deletePopUp();
	}


こんな感じで動きました。やっとここまで来たわいな。(クリックで拡大)

以上をまとめたソースです。

bbs.mxmlを別ウインドウで表示
SubmitWindow.mxmlを別ウインドウで表示