001/* 002 * Copyright (c) 2009 The openGion Project. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 013 * either express or implied. See the License for the specific language 014 * governing permissions and limitations under the License. 015 */ 016package org.opengion.hayabusa.taglib; 017 018import org.opengion.hayabusa.html.ViewStackTableParam; 019 020import static org.opengion.fukurou.util.StringUtil.nval ; 021 022import java.io.ObjectOutputStream; 023import java.io.ObjectInputStream; 024import java.io.IOException; 025 026/** 027 * viewタグの viewFormType が HTMLGanttTable の場合にパラメータを設定します。 028 * 029 * ガントチャートを表示する、ViewForm_HTMLGanttTable クラスに対して、各種パラメータを 030 * 設定します。 031 * パラメータが設定されていない場合は、ViewStackTableParam の初期値が 032 * 使用されます。 033 * (パラメータを使用するには、viewタグのuseParam 属性をtrueに設定する必要があります。) 034 * 035 * @og.formSample 036 * ●形式:<og:stackParam stackColumns="PRJCODE,RESOURCE_ID" /> 037 * ●body:なし 038 * 039 * ●Tag定義: 040 * <og:stackParam 041 * stackColumns 【TAG】積上単位とするカラム名(カンマ区切り)をセットします (必須) 042 * costColumn 【TAG】内部積上げする場合の工数カラムをセットします 043 * innerStack 【TAG】工数の内部積み上げをするかどうか[true/false]指定します(初期値:false) 044 * debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false) 045 * /> 046 * 047 * @og.rev 5.5.7.0 (2012/10/01) 新規作成 048 * @og.group 画面表示 049 * 050 * @version 5.0 051 * @author Takahashi Masakazu 052 * @since JDK5.0, 053 */ 054public class ViewStackParamTag extends ViewParamTag { 055 //* このプログラムのVERSION文字列を設定します。 {@value} */ 056 private static final String VERSION = "5.6.1.2 (2013/02/22)" ; 057 058 private static final long serialVersionUID = 561220130222L ; 059 060 /** 061 * 【TAG】積上単位とするカラム名(カンマ区切り)をセットします 062 * 063 * @og.tag 064 * 工数積上げのキーとなるカラム名を指定します。 065 * 066 * 複数ある場合は、カンマ区切りで指定できます。 067 * テーブルモデルは積上単位+タスク単位でOrderByがかかっている必要があります。 068 * 069 * @param stackColumns タスク(ガント)のカラム名(カンマ区切り) 070 */ 071 public void setStackColumns( final String stackColumns ) { 072 putParam( ViewStackTableParam.STACK_COLUMNS_KEY , 073 nval( getRequestParameter( stackColumns ),null ) ); 074 } 075 076 /** 077 * 【TAG】工数関係のカラム(工数,開始日,終了日)を指定します。 078 * 079 * @og.tag 080 * 工数関係のカラム名を指定します。 081 * 工数(x.y)、開始日(yyyyMMdd)、終了日(yyyyMMdd) 082 * の3つのカラムをカンマ区切りで設定して下さい。 083 * エンジン内部で工数積上げを行う場合は必須です。 084 * 085 * テーブルモデルは積上単位+タスク単位でOrderByがかかっている必要があります。 086 * 087 * @og.rev 5.5.8.3 (2012/11/17) 088 * 089 * @param costColumns 工数のカラム名 090 */ 091 public void setCostColumns( final String costColumns ) { 092 putParam( ViewStackTableParam.COST_COLUMNS_KEY , 093 nval( getRequestParameter( costColumns ),null ) ); 094 } 095 096 /** 097 * 【TAG】エンジン内部で積上げするかどうかを指定します。 098 * 099 * @og.tag 100 * エンジン内部で積上げを行うかどうかを指定します。 101 * 内部で積上げを行った場合は、HTMLStackGanttTableではガント行の出力を行いません。 102 * 初期値はfalse(積上げしない)です。 103 * 104 * @og.rev 5.5.8.3 (2012/11/17) 105 * 106 * @param flg 内部積上げをするかどうか[true/false] 107 */ 108 public void setInnerStack( final String flg ) { 109 putParam( ViewStackTableParam.INNER_STACK_KEY , 110 nval( getRequestParameter( flg ),ViewStackTableParam.INNER_STACK_VALUE ) ); 111 } 112 113 /** 114 * 【TAG】エンジン内部で積上げする場合に休日も積上げるかどうかを指定します。 115 * 116 * @og.tag 117 * エンジン内部で積上げを行う場合に休日も積上げるかどうかを指定します。 118 * zoomがDAYの場合のみ有効です。 119 * 初期値はtrue(積上げする)です。 120 * 121 * @og.rev 5.5.8.3 (2012/11/17) 122 * 123 * @param flg 休日積上げをするかどうか[true/false] 124 */ 125 public void setStackHoliday( final String flg ) { 126 putParam( ViewStackTableParam.STACK_HOLIDAY_KEY , 127 nval( getRequestParameter( flg ),ViewStackTableParam.STACK_HOLIDAY_VALUE ) ); 128 } 129 130 /** 131 * 【TAG】その行の能力値カラムを指定します。 132 * 133 * @og.tag 134 * 内部積上げをする際、各行の能力のカラム名を指定します。 135 * カラムを指定しない場合は1となります。 136 * 137 * @og.rev 5.6.1.2 (2013/02/22) 138 * 139 * @param capColumn 能力値のカラム名 140 */ 141 public void setCapacityColumn( final String capColumn ) { 142 putParam( ViewStackTableParam.CAP_COLUMN_KEY , 143 nval( getRequestParameter( capColumn ),ViewStackTableParam.CAP_COLUMN_VALUE ) ); 144 } 145 146 /** 147 * タグの名称を、返します。 148 * 自分自身のクラス名より、自動的に取り出せないため、このメソッドをオーバーライドします。 149 * 150 * 151 * @return タグの名称 152 */ 153 @Override 154 protected String getTagName() { 155// return "ganttParam" ; 156 return "stackParam" ; 157 } 158 159 /** 160 * シリアライズ用のカスタムシリアライズ書き込みメソッド 161 * 162 * @serialData 一部のオブジェクトは、シリアライズされません。 163 * 164 * @param strm ObjectOutputStreamオブジェクト 165 * @throws IOException 入出力エラーが発生した場合 166 */ 167 private void writeObject( final ObjectOutputStream strm ) throws IOException { 168 strm.defaultWriteObject(); 169 } 170 171 /** 172 * シリアライズ用のカスタムシリアライズ読み込みメソッド 173 * 174 * ここでは、transient 宣言された内部変数の内、初期化が必要なフィールドのみ設定します。 175 * 176 * @serialData 一部のオブジェクトは、シリアライズされません。 177 * 178 * @param strm ObjectInputStreamオブジェクト 179 * @see #release2() 180 * @throws IOException シリアライズに関する入出力エラーが発生した場合 181 * @throws ClassNotFoundException クラスを見つけることができなかった場合 182 */ 183 private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException { 184 strm.defaultReadObject(); 185 } 186}