/////////////////////////////////////////////////////////////////
//Copyright (C) 2005 NTT CORPORATION.
//
//子グループ取得処理を行います
//
//		変更履歴
//			2005.01.31  新規作成  OGA
//
//	機能
//
//個別ログ参照画面のツリー展開情報を作成します。
//
/////////////////////////////////////////////////////////////////

/*
 * 作成日: 2005/02/19
 *
 * TODO この生成されたファイルのテンプレートを変更するには次へジャンプ:
 * ウィンドウ - 設定 - Java - コード・スタイル - コード・テンプレート
 */
package jp.co.ntt.lms.xmf.actions.lo.wbt.IndividualLog;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import jp.co.ntt.lms.Common.RDF.RDFNode;
import jp.co.ntt.lms.Common.RDF.RDFNodeList;
import jp.co.ntt.lms.xmf.actions.lo.wbt.IndividualLog.inc.IndividualLogCommon_inc;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

/**
 * @author Administrator
 *
 * TODO この生成された型コメントのテンプレートを変更するには次へジャンプ:
 * ウィンドウ - 設定 - Java - コード・スタイル - コード・テンプレート
 */
public class GetChildMatStAction extends Action{
	
	private IndividualLogCommon_inc IndividualLogCommon_inc = new IndividualLogCommon_inc();
	
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {

			// キャッシュ無効処理
			response.setHeader( "cache-control", "no-cache" );

			// パラメータ取得
			String strLoID = request.getParameter( "LoID" );
			String strUID = request.getParameter( "UID" );

			try {
				StringBuffer strGetLine = new StringBuffer();
				strGetLine.append( "<childlenlist>\n" );

				//セッションのRDFツリーからUIDに該当するノードを取得
				RDFNode objNode = null;
				try {
					objNode = (RDFNode)request.getSession().getAttribute( strLoID );
				}
				catch( ClassCastException ce ) {
					ce.printStackTrace();
					return mapping.findForward("error");
				}

				if( objNode == null ) {
					return mapping.findForward("error");
				}

				RDFNode objTargetNode = objNode.searchNode( strUID );

				if( objTargetNode != null ) {
					RDFNodeList objNodeList = objTargetNode.getChildNodes();
					for( int i=0; i< objNodeList.getLength(); i++ ){
						RDFNode objNodetemp = objNodeList.getNode(i);
						String strIconID = "";
						switch( objNodetemp.getNodeType() ) {
							// コースの場合
							case RDFNode.COURSE_NODE:
								strIconID = "course";
								break;
							// ブロックの場合
							case RDFNode.BLOCK_NODE:
								strIconID = "block";
								break;
							// AUの場合
							case RDFNode.AU_NODE:
								strIconID = "au";
								break;
							default:
								break;
						}
						if (i == objNodeList.getLength()-1) {
							strGetLine.append( "<child title=\"" + objNodetemp.getTitle() + "\" iconid=\"" + strIconID + "\" id=\"" + objNodetemp.getID() + "\"  type=\"L\"/>\n" );
						}

						else {
						strGetLine.append( "<child title=\"" + objNodetemp.getTitle() + "\" iconid=\"" + strIconID + "\" id=\"" + objNodetemp.getID() + "\"  type=\"\"/>\n" );
						}
					}
				}
				strGetLine.append( "</childlenlist>\n" );
				request.setAttribute("strGetLine", strGetLine.toString());
			}
			catch( Exception e ) {
				e.printStackTrace();
				return mapping.findForward("error");
			}

		
		return mapping.findForward("success");
	}

}
