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     */
016    package org.opengion.hayabusa.taglib;
017    
018    import static org.opengion.fukurou.util.StringUtil.nval;
019    
020    import java.io.IOException;
021    import java.io.ObjectInputStream;
022    import java.io.ObjectOutputStream;
023    import java.util.Map;
024    
025    import org.opengion.fukurou.util.StringUtil;
026    import org.opengion.hayabusa.common.HybsSystem;
027    import org.opengion.hayabusa.common.HybsSystemException;
028    import org.opengion.hayabusa.db.DBColumn;
029    import org.opengion.hayabusa.db.DBColumnConfig;
030    import org.opengion.hayabusa.db.DBTableModel;
031    import org.opengion.hayabusa.resource.CodeData;
032    import org.opengion.hayabusa.resource.LabelData;
033    
034    /**
035     * 検索結果のカラ?対して様?な属?を付加するタグです?
036     *
037     * こ?タグでは、カラ?ソースの属?を?設定できます?検索結果(DBTableModel)
038     * には、カラ?ブジェク?DBColumn)を持って?す?こ?オブジェクト??
039     * カラ?ソースで設定した?を持って?す?そ?個?の値を?設定することで?
040     * カラ?ブジェクト?属?をその都度設定しなおすことができます?
041     * ?よく使用するのは、must 属?の設定と、DBMENU エ?ターの設定です?
042     * must属?は、予め???として?することが?来な?、画面毎に再設定が
043     * ?です?ただし?ここでのmust属?は、カラ??表示色を変更する?で?
044     * 実際のnullチェ?は、columnCheck タグのnullCheck属?で?します?
045     * DBMENU エ?ターは、データベ?スの属?から選択リストを作?する機?ですが?
046     * これも?マスタ登録時?、テキストフィールドで入力し、使用時??択するケース
047     * の様に、画面毎に異なる形式で使用した??合があるためです?
048     * こ?タグでは、カラ?ブジェクト?属?以外に、HTMLの属?を付加する事も
049     * できます?
050     *
051     * @og.formSample
052     * ●形式?lt;og:ColumnEditor column="???" ??? > ??? </og:ColumnEditor >
053     * ●body?あ?
054     *
055     * ●Tag定義??
056     *   <og:columnEditor
057     *       column             【TAG】カラ?をセ?しま?
058     *       columns            【TAG】カラ?をカンマ区?で?セ?しま?
059     *       label              【TAG】ラベルリソースに定義されたラベル??をセ?しま?
060     *       className          【TAG】カラ??クラス?VARCHAR2,NUMBER など)をセ?しま?
061     *       size               【TAG】カラ??表示サイズをセ?しま?大きさ?で入力文字制限ではありません)
062     *       maxlength          【TAG】カラ??入力文字制限数をセ?しま?
063     *       writable           【TAG】カラ?書き込み可能かど?[true/false]をセ?しま?初期値:null)
064     *       renderer           【TAG】カラ??表示用レン?ー({@og.doc03Link renderer Renderer_****})をセ?しま?
065     *       editor             【TAG】カラ??編?エ?ター({@og.doc03Link editor Editor_****})をセ?しま?
066     *       dbType             【TAG】D?タイ?{@og.doc03Link dbType DBType_****})をセ?しま?
067     *       codeName           【TAG】コードセレクト?ユニ?クキー(コード名称)をセ?しま?
068     *       codeList           【TAG】コードセレクト?サブセ?となるコードをCSV形式で?しま?
069     *       codeGroup          【TAG】コードセレクト?サブセ?となるグループを?しま?
070     *       defaultVal         【TAG】?期?をセ?しま?
071     *       param              【TAG】パラメータをセ?しま?
072     *       roles              【TAG】ロールをセ?しま?
073     *       must               【TAG】??入力を表す色に変えるかど?[true/false]を指定しま?初期値:false)
074     *       mustAny            【TAG】選択??入?どれかひとつ??)を表す色[true/mustAny/そ?他]を指定しま?初期値:無??
075     *       optionAttributes   【TAG】JavaScript などの HTML基本タグ以外?属?を?そ?ままタグとして使用しま?
076     *       addNoValue         【TAG】コンボ??スの値なし?Optionの有無[true/false]を指定しま?初期値:falseと同?
077     *       useLabelMap        【TAG】SQL??してラベル??を動?読み込?ど?[true/false]?しま?初期値:false)
078     *       useSLabel          【TAG】MENU,DBMENUでSLABELを利用するかど?[auto/true/false]を指定しま?初期値:null)
079     *       noDisplayVal       【TAG】指定?値を非表示にしま?レン?ーのみ有効)(初期値:null)
080     *       scope              【TAG】キャ?ュする場合?スコープ[request/page/session/applicaton]を指定しま?初期値:session)
081     *       tableId            【TAG?通常使?せん)sessionから?す?DBTableModelオブジェクト? ID
082     *       dbid               【TAG】データベ?スへ接続する?合?ID
083     *       caseKey            【TAG】このタグ自体を利用するかど?の条件キーを指定しま?初期値:null)
084     *       caseVal            【TAG】このタグ自体を利用するかど?の条件値を指定しま?初期値:null)
085     *       lang               【HTML】要???と他?属?値の??lang,xml:lang)を指定しま?
086     *       style              【HTML】この要?対して適用させるスタイルシー?style)を設定しま?
087     *       clazz              【HTML】要?対して class 属?を設定しま?
088     *       onClick            【HTML】JavaScriptのイベン?onClick を設定しま??onClick="renew('query.jsp','QUERY');")
089     *       onChange           【HTML】JavaScriptのイベン?onChange を設定しま??onChange="renew('query.jsp','QUERY');")
090     *       onBlur             【HTML】JavaScriptのイベン?onBlur を設定しま??onBlur="this.value=value.toUpperCase();")
091     *       onFocus            【HTML】JavaScriptのイベン?onFocus を設定しま?
092     *       ondblClick         【HTML】JavaScriptのイベン?ondblClick を設定しま?
093     *       onMouseDown        【HTML】JavaScriptのイベン?onMouseDown を設定しま?
094     *       onMouseUp          【HTML】JavaScriptのイベン?onMouseUp を設定しま?
095     *       onMouseMove        【HTML】JavaScriptのイベン?onMouseMove を設定しま?
096     *       onMouseOut         【HTML】JavaScriptのイベン?onMouseOut を設定しま?
097     *       onMouseOver        【HTML】JavaScriptのイベン?onMouseOver を設定しま?
098     *       onSelect           【HTML】JavaScriptのイベン?onSelect を設定しま?
099     *       onKeydown          【HTML】JavaScriptのイベン?onKeydown を設定しま?
100     *       onKeypress         【HTML】JavaScriptのイベン?onKeypress を設定しま?
101     *       onKeyup            【HTML】JavaScriptのイベン?onKeyup を設定しま?
102     *       eventColumn        【TAG】イベントカラ?親カラ?のセ?
103     *       eventURL           【TAG】eventColumn利用時に呼ばれるJSPのURL
104     *       eventCallback      【TAG】eventColumn実行後?callbak関数??
105     *       debug              【TAG】デバッグ??を?力するかど?[true/false]を指定しま?初期値:false)
106     *   >   ... Body ...
107     *   </og:columnEditor>
108     *
109     * ●使用例?
110     *     ・??表示の場?
111     *         <og:columnEditor column="NOSYN" must="true" />
112     *
113     *     ・DBからのコンボ??スの場?
114     *         <og:columnEditor column="CDBK" editor="DBMENU">
115     *                 select CDBK,CDBK||':'||NMBK from DB02 order by 1
116     *         </og:columnEditor>
117     *
118     *     ・親子関係?プル?ンを作る場?
119     *       ({@xxx.value}で同じ行?xxxカラ?選択した?を取得しま?
120     *         <og:columnEditor column="CDBK" editor="DBMENU"
121     *              eventColumn="OYA">
122     *                 select CDBK,CDBK||':'||NMBK from DB02
123     *                   where CLM = {@OYA.value} order by 1
124     *         </og:columnEditor>
125     *
126     *
127     * @og.rev 3.5.1.0 (2003/10/03) 親クラスをCommonTagSupportからHTMLTagSupportに変更?
128     * @og.group 画面表示
129     *
130     * @version  4.0
131     * @author       Kazuhiko Hasegawa
132     * @since    JDK5.0,
133     */
134    public class ColumnEditorTag extends HTMLTagSupport {
135            //* こ?プログラ??VERSION??を設定します?       {@value} */
136            private static final String VERSION = "5.6.4.3 (2013/05/24)" ;
137    
138            private static final long serialVersionUID = 564320130524L ;
139    
140            private transient LabelData     labelData               = null;
141            private String          tableId                 = HybsSystem.TBL_MDL_KEY;
142            private String[]        columns                 = null;         // 3.7.0.5 (2005/04/11)
143            private boolean         allColumns              = false;        // 3.8.8.5 (2007/03/09)
144            private String          className               = null;
145            private String          size                    = null;
146            private String          maxlength               = null;         // 3.5.5.5 (2004/04/23)
147            private String          writable                = null;
148            private String          renderer                = null;
149            private String          editor                  = null;
150            private String          dbType                  = null;
151            private String          codeName                = null;         // 3.5.5.7 (2004/05/10)
152            private String          codeList                = null;         // 5.1.9.0 (2010/08/01) 新規追?Codeリソースのサブセ?)
153            private String          codeGroup               = null;         // 5.1.9.0 (2010/08/01) 新規追?Codeリソースのサブセ?)
154            private String          defaultVal              = null;
155            private String          parameter               = null;
156            private String          dbid                    = null;
157            private String          addNoValue              = null;         // 3.5.5.9 (2004/06/07)
158            private static final String DEFAULT_ADD_NO_VALUE        = "true"; // 3.7.0.5 (2005/04/11)
159    
160            private String  eventColumn             = null; // 4.3.6.0 (2009/04/01) イベントカラ?
161            private String  rawParameter    = null; // 4.3.6.0 (2009/04/01) 生パラメータ
162            private String  eventURL                = null; // 4.3.6.0 (2009/04/01) イベン?RL
163    
164            // 4.1.2.1 (2008/03/13) must , mustAny 属?を?動化します?
165            // 5.2.1.0 (2010/10/01) must , mustAny 属?の処?、HTMLTagSupport に移します?
166    //      private String          mustType                = null;         // 4.1.2.1 (2008/03/13)
167    
168            // 4.3.4.0 (2008/12/01) ラベル??タの動的取得に対応します?
169            private boolean         useLabelMap             = false;                // 4.3.4.0 (2008/12/01)
170            private String          useSLabel               = null;                 // 5.6.2.3 (2013/03/22) MENU,DBMENUでSLABELを利用するかど?
171            private String          noDisplayVal    = null;                 // 5.6.2.3 (2013/03/22) 非表示??設?
172            private Map<String,LabelData>             labelMap                = null;
173    
174            /**
175             * Taglibの開始タグが見つかったときに処??doStartTag() ?オーバ?ライドします?
176             *
177             * @og.rev 3.1.0.0 (2003/03/20) DBColumnConfig#getColumnConfig() メソ??
178             * @og.rev 3.1.1.0 (2003/03/28) ボディの?を取得する??、CommonTagSupport で行う?
179             * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応?ボディが存在する場合?みボディが呼ばれる対応?
180             * @og.rev 3.5.1.0 (2003/10/03) 親クラスをCommonTagSupportからHTMLTagSupportに変更?
181             * @og.rev 3.5.5.5 (2004/04/23) 入力??大きさを指定す?viewSize 属?を追??
182             * @og.rev 3.5.5.7 (2004/05/10) CodeSelection を?codeName を?に構築できるように設定します?
183             * @og.rev 3.5.5.9 (2004/06/07) addNoValue が?設定された場合?み、config に設定しま?
184             * @og.rev 3.7.0.5 (2005/04/11) ?カラ?同時設定できる columns 属?を追?
185             * @og.rev 5.2.2.0 (2010/11/01) caseKey 、caseVal 属?対?
186             *
187             * @return      後続????( EVAL_BODY_BUFFERED )
188             */
189            @Override
190            public int doStartTag() {
191                    // 5.2.2.0 (2010/11/01) caseKey 、caseVal 属?対?
192                    if( useTag() ) {
193                            if( "DBMENU".equalsIgnoreCase(editor) ) {
194                                    className = "VARCHAR2";
195                                    renderer  = "DBMENU";
196                                    editor    = "DBMENU";
197    
198                                    if( addNoValue == null ) {
199                                            addNoValue = DEFAULT_ADD_NO_VALUE ;
200                                    }
201                            }
202    
203                            return( EVAL_BODY_BUFFERED );
204                    }
205                    return ( SKIP_BODY );                           // Body を評価しな?
206            }
207    
208            /**
209             * Taglibのタグ本体を処??doAfterBody() ?オーバ?ライドします?
210             *
211             * @og.rev 2.3.1.3 (2003/02/08) ラベル、サイズのみでも変更できるように修正
212             * @og.rev 3.0.0.1 (2003/02/14) DBMENU作?時に、ラベルの??スペ?スを除去する?
213             * @og.rev 3.1.0.0 (2003/03/20) DBColumnConfig#getColumnConfig() メソ??
214             * @og.rev 3.1.1.0 (2003/03/28) ボディの?を取得する??、CommonTagSupport で行う?
215             * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応?ボディが存在する場合?みボディが呼ばれる対応?
216             * @og.rev 3.5.0.0 (2003/09/17) キー、ラベルともに?"(?ルコー??ション)で囲??変更?
217             * @og.rev 3.5.5.7 (2004/05/10) こ?タグでSQLを発行する?ではなく?DBMENU の DBColumnを作?する?
218             * @og.rev 3.5.5.9 (2004/06/07) addNoValue ?null の場合?、?期?を設定します?
219             * @og.rev 3.7.0.5 (2005/04/11) ?カラ?同時設定できる columns 属?を追?
220             * @og.rev 3.8.6.3 (2006/11/30) SQL ??前後?スペ?スを取り除きます?
221             * @og.rev 4.3.4.0 (2008/12/01) ラベル??タの動的取得に対応します?
222             * @og.rev 4.3.6.0 (2009/04/01) イベントカラ??
223             * @og.rev 5.1.7.0 (2010/06/01) 動的プル?ン実?直?
224             * @og.rev 5.5.4.0 (2012/07/02) 予?対?
225             *
226             * @return      後続????(SKIP_BODY)
227             */
228            @Override
229            public int doAfterBody() {
230                    String sql = getBodyString();
231    //              String rawsql = getBodyRawString(); // 4.3.6.0 (2009/04/01) 生?ままのSQL?持つ
232                    if( sql != null && sql.length() > 0 ) {
233                            if( useLabelMap )       { labelMap = getResource().getLabelMap( sql.trim() ); } // 4.3.4.0 (2008/12/01)
234                            else                            {
235                                    if( eventColumn != null && eventColumn.length() >0 ){  // 4.3.6.0 (2009/04/01)
236    //                                      rawParameter = getBodyRawString().trim();
237                                            rawParameter = getReservedParameter(getBodyRawString().trim()); // 5.5.4.0 (2012/07/01)
238                                    }
239                                    parameter = sql.trim() ;
240                            }
241                    }
242    
243                    return(SKIP_BODY);
244            }
245    
246            /**
247             * Taglibの終?グが見つかったときに処??doEndTag() ?オーバ?ライドします?
248             *
249             * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応?release2() ?doEndTag()で呼ぶ?
250             * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応?ボディが存在する場合?みボディが呼ばれる対応?
251             * @og.rev 3.7.0.5 (2005/04/11) ?カラ?同時設定できる columns 属?を追?
252             * @og.rev 3.8.8.5 (2007/03/09) 全カラ?が指定されたことにする allColumns 属?を追?
253             * @og.rev 4.1.2.1 (2008/03/13) must , mustAny 属?を?動化します?
254             * @og.rev 4.3.4.0 (2008/12/01) カラ?定?ワイルドカード対?
255             * @og.rev 5.2.1.0 (2010/10/01) must , mustAny 属?の処?、HTMLTagSupport に移します?
256             * @og.rev 5.2.2.0 (2010/11/01) caseKey 、caseVal 属?対?
257             *
258             * @return      後続????
259             */
260            @Override
261            public int doEndTag() {
262                    debugPrint();           // 4.0.0 (2005/02/28)
263                    // 5.2.2.0 (2010/11/01) caseKey 、caseVal 属?対?
264                    if( !useTag() ) { return EVAL_PAGE; }
265    
266                    DBTableModel table = (DBTableModel)getObject( tableId );
267                    if( table == null ) { return EVAL_PAGE; }
268    
269                    if( columns != null ) {
270                            // 3.8.8.5 (2007/03/09) 全カラ?が指?
271                            String mustType = getMustType();        // 5.2.1.0 (2010/10/01)
272                            if( allColumns ) {
273                                    int len = table.getColumnCount();
274                                    for( int i=0; i<len; i++ ) {
275    
276                                            // 4.3.4.0 (2008/12/01)
277                                            DBColumn dbColumn = table.getDBColumn( i );
278                                            for( int j=0; j<columns.length; j++ ) {
279                                                    String prefix = columns[j].replace( "*", "" );
280                                                    if( dbColumn.getName().indexOf( prefix ) == 0 ) { // 前方??のみ対?
281                                                            DBColumnConfig config = getModifyConfig( dbColumn );
282                                                            table.setDBColumn( i,new DBColumn( config ) );
283    
284                                                            // 4.1.2.1 (2008/03/13)
285                                                            if( mustType != null ) {
286                                                                    table.addMustType( i,mustType );
287                                                            }
288                                                            break;
289                                                    }
290                                            }
291                                    }
292                            }
293                            else {
294                                    for( int i=0; i<columns.length; i++ ) {
295                                            int clmNo = table.getColumnNo( columns[i] );
296                                            DBColumn dbColumn = table.getDBColumn( clmNo );
297                                            DBColumnConfig config = getModifyConfig( dbColumn );
298                                            table.setDBColumn( clmNo,new DBColumn( config ) );
299    
300                                            // 4.1.2.1 (2008/03/13)
301                                            if( mustType != null ) {
302                                                    table.addMustType( clmNo,mustType );
303                                            }
304                                    }
305                            }
306                    }
307    
308                    return(EVAL_PAGE);
309            }
310    
311            /**
312             * 検索条件の入力用の?ストフィールドを作?します?
313             *
314             * ??ブルタグによりフィールド??されます?
315             * 使用時?、テーブルタグを前後に使用して下さ??
316             * こ?クラスでは、このメソ?は、使われておりません?
317             *
318             * @og.rev 3.5.1.0 (2003/10/03) 新規追?
319             *
320             * @return  入力用の?ストフィールドタグ
321             */
322            @Override
323            protected String makeTag() {
324                    return null;
325            }
326    
327            /**
328             * タグリブオブジェクトをリリースします?
329             *
330             * キャ?ュされて再利用される?で、フィールド?初期設定を行います?
331             *
332             * @og.rev 2.0.0.4 (2002/09/27) カスタ?グの release() メソ?を?追?
333             * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応?release2() ?doEndTag()で呼ぶ?
334             * @og.rev 3.5.1.0 (2003/10/03) 親クラスをCommonTagSupportからHTMLTagSupportに変更?
335             * @og.rev 3.5.5.5 (2004/04/23) 入力??大きさを指定す?viewSize 属?を追??
336             * @og.rev 3.5.5.7 (2004/05/10) codeName 属?を追??
337             * @og.rev 3.5.5.9 (2004/06/07) addNoValue 属?を修正?
338             * @og.rev 3.7.0.5 (2005/04/11) ?カラ?同時設定できる columns 属?を追?
339             * @og.rev 3.8.8.5 (2007/03/09) 全カラ?が指定されたことにする allColumns 属?を追?
340             * @og.rev 4.1.2.1 (2008/03/13) must , mustAny 属?を?動化します?
341             * @og.rev 4.3.4.0 (2008/12/01) ラベル??タの動的取得に対応します?
342             * @og.rev 5.1.9.0 (2010/08/01) codeList , codeGroup 属?を追??(Codeリソースのサブセ?)
343             * @og.rev 5.2.1.0 (2010/10/01) must , mustAny 属?の処?、HTMLTagSupport に移します?
344             * @og.rev 5.6.2.3 (2013/03/22) useSLabel 属?を追??(MENU,DBMENUでSLABELを利用するかど?)
345             * @og.rev 5.6.2.3 (2013/03/22) 非表示??設定?noDisplayVal 属?を追??
346             */
347            @Override
348            protected void release2() {
349                    super.release2();
350                    tableId                 = HybsSystem.TBL_MDL_KEY;
351                    columns                 = null;         // 3.7.0.5 (2005/04/11)
352                    allColumns              = false;        // 3.8.8.5 (2007/03/09)
353                    labelData               = null;         // 4.0.0 (2005/01/31)
354                    className               = null;
355                    size                    = null;
356                    maxlength               = null;         // 3.5.5.5 (2004/04/23)
357                    writable                = null;
358                    renderer                = null;
359                    editor                  = null;
360                    dbType                  = null;
361                    codeName                = null;         // 3.5.5.7 (2004/05/10)
362                    codeList                = null;         // 5.1.9.0 (2010/08/01) 新規追?Codeリソースのサブセ?)
363                    codeGroup               = null;         // 5.1.9.0 (2010/08/01) 新規追?Codeリソースのサブセ?)
364                    defaultVal              = null;
365                    parameter               = null;
366                    dbid                    = null;
367                    addNoValue              = null;         // 3.5.5.9 (2004/06/07)
368    //              mustType                = null;         // 4.1.2.1 (2008/03/13)         // HTMLTagSupport に移します?
369                    useLabelMap             = false;        // 4.3.4.0 (2008/12/01)
370                    useSLabel               = null;         // 5.6.2.3 (2013/03/22) MENU,DBMENUでSLABELを利用するかど?
371                    noDisplayVal    = null;         // 5.6.2.3 (2013/03/22) 非表示??設?
372                    labelMap                = null;         // 4.3.4.0 (2008/12/01)
373                    eventColumn             = null;         // 4.3.6.0 (2009/04/01)
374                    rawParameter    = null;         // 4.3.6.0 (2009/04/01)
375                    eventURL                = null;         // 4.3.6.0 (2009/04/01)
376            }
377    
378            /**
379             * カスタマイズされ?DBColumnConfig を作?します?
380             *
381             * DBColumnConfig は、DBColumn より取得します?こ? DBColumnConfig に?
382             * 属?で?された値をセ?することで、カスタマイズを行います?
383             *
384             * @og.rev 3.7.0.5 (2005/04/11) 新規追?
385             * @og.rev 4.1.2.1 (2008/03/13) must , mustAny 属?を?動化します?
386             * @og.rev 4.3.4.0 (2008/12/01) ラベル??タの動的取得に対応します?
387             * @og.rev 4.3.6.0 (2009/04/01) evnetColumn対?
388             * @og.rev 5.1.8.0 (2010/07/01) メソ?名変更(setDefValue ?setDefault)
389             * @og.rev 5.1.9.0 (2010/08/01) codeList ,codeGroup 属?を追?Codeリソースのサブセ?)
390             * @og.rev 5.6.2.3 (2013/03/22) useSLabel 属?を追??(MENU,DBMENUでSLABELを利用するかど?)
391             * @og.rev 5.6.2.3 (2013/03/22) 非表示??設定?noDisplayVal 属?を追??
392             *
393             * @param       dbColumn        カラ?ブジェク?
394             *
395             * @return  カスタマイズされ?DBColumnConfig
396             */
397            private DBColumnConfig getModifyConfig( final DBColumn dbColumn ) {
398                    DBColumnConfig config = dbColumn.getConfig();
399    
400                    String lang = get( "lang" );    // 4.0.0 (2005/01/31) super クラスで受けます?
401    
402                    if( lang                != null ) { config.setLang(              lang           ); }
403                    if( labelData   != null ) { config.setLabelData( labelData      ); }    // 4.0.0 (2005/01/31)
404                    if( className   != null ) { config.setClassName( className      ); }
405                    if( size                != null ) { config.setViewLength(size           ); }
406                    if( maxlength   != null ) { config.setMaxlength(  maxlength ); }        // 3.5.5.5 (2004/04/23)
407                    if( writable    != null ) { config.setWritable(  writable       ); }
408                    if( renderer    != null ) { config.setRenderer(  renderer       ); }
409                    if( editor              != null ) { config.setEditor(    editor         ); }
410                    if( dbType              != null ) { config.setDbType(    dbType         ); }
411    //              if( defaultVal  != null ) { config.setDefValue(  defaultVal ); }
412                    if( defaultVal  != null ) { config.setDefault(  defaultVal  ); }        // 5.1.8.0 (2010/07/01)
413                    if( parameter   != null ) { config.setParameter( parameter      ); }
414                    if( dbid                != null ) { config.setDbid(              dbid           ); }
415                    if( eventColumn != null ) { config.setEventColumn(eventColumn);}        // 4.3.6.0 (2009/04/01)
416                    if( eventURL    != null ) { config.setEventURL( eventURL );        }    // 4.3.6.0 (2009/04/01)
417                    if( rawParameter != null ){ config.setRawParameter( rawParameter ); }   // 4.3.6.0 (2009/04/01)
418                    if( useSLabel   != null ) { config.setUseSLabel( useSLabel ); }                 // 5.6.2.3 (2013/03/22)
419                    if( noDisplayVal != null ) { config.setNoDisplayVal( noDisplayVal ); }  // 5.6.2.3 (2013/03/22)
420    
421                    // 4.0.0 (2005/11/30) ロールを指?
422                    String roles = get( "roles" );
423                    if( roles               != null ) { config.setRoles(     roles      ); }
424    
425                    // 4.0.0 (2005/01/31)
426                    if( codeName   != null ) {
427                            CodeData codeData = getResource().getCodeData( codeName ) ;
428                            config.setCodeData( codeData );
429                    }
430    
431                    // codeName で??リソースでも?サブセ?が作?できます?
432                    // 5.1.9.0 (2010/08/01) codeList 属?を追?Codeリソースのサブセ?)
433                    if( codeList  != null ) {
434                            CodeData codeData = config.getCodeData() ;
435                            if( codeData != null ) {
436                                    config.setCodeData( codeData.subsetList( codeList ) );
437                            }
438                    }
439    
440                    // 5.1.9.0 (2010/08/01) codeGroup 属?を追?Codeリソースのサブセ?)
441                    if( codeGroup != null ) {
442                            CodeData codeData = config.getCodeData() ;
443                            if( codeData != null && codeData.useGroup() ) {
444                                    config.setCodeData( codeData.subsetGroup( codeGroup ) );
445                            }
446                    }
447    
448                    // 3.5.5.9 (2004/06/07)
449                    // 注意:addNoValue は、互換性の関係で、?が指定された場合?み?
450                    // config に設定します?
451                    // editor="DBMENU" が??された場合?、addNoValue が指定されて???合?み?
452                    // 従来との互換性の関係より?こ?クラスの?ォル?true)を?config に設定します?
453                    if( addNoValue != null ) {
454                            boolean anv = Boolean.valueOf( addNoValue ).booleanValue() ;
455                            config.setAddNoValue( anv );
456                    }
457    
458                    // 3.5.1.0 (2003/10/03) 親クラスをCommonTagSupportからHTMLTagSupportに変更?
459                    config.setEditorAttributes( getAttributes() );
460    
461                    // 4.3.4.0 (2008/12/01) ラベル??タの動的取得に対応します?
462                    if( useLabelMap && labelMap != null ) {
463                            LabelData ldata = labelMap.get( dbColumn.getName() );
464                            if( ldata != null ) {
465                                    config.setLabelData( ldata      );
466                            }
467                    }
468    
469                    return config ;
470            }
471    
472            /**
473             * 【TAG】カラ?をセ?します?
474             *
475             * @og.tag
476             * カラ?をセ?します?
477             * columns と同時にはセ?できません?
478             * 値に"*"を指定することで、?カラ?対象とすることができます?
479             * また?"PN*,CDK*"等?ように前方??でのワイルドカード指定も可能です?
480             *
481             * @og.rev 3.7.0.5 (2005/04/11) ?カラ?同時設定できる columns 属?を追?
482             * @og.rev 3.8.8.5 (2007/03/09) 全カラ?が指定されたことにする allColumns 属?を追?
483             *
484             * @param       clm ネ??
485             */
486            public void setColumn( final String clm ) {
487                    if( columns != null ) {
488                            String errMsg = "columns との同時セ?は出来ません? " + HybsSystem.CR
489                                                    + "column=[" + clm + "] , "
490                                                    + "columns=[" + StringUtil.array2csv( columns ) + "]";
491                            throw new HybsSystemException( errMsg );
492                    }
493                    String column = getRequestParameter( clm );
494                    if( column != null && column.length() > 0 ) {
495                            columns = new String[] { column };
496                            allColumns = column.indexOf( '*' ) >= 0 ;    // 3.8.8.5 (2007/03/09)
497                    }
498            }
499    
500            /**
501             * 【TAG】カラ?をカンマ区?で?セ?します?
502             *
503             * @og.tag
504             * カラ?をセ?します?
505             * column と同時にはセ?できません?
506             * ?方法???常のパラメータ取得後に、CSV?します?
507             * 値に"*"を指定することで、?カラ?対象とすることができます?
508             * また?"PN*,CDK*"等?ように前方??でのワイルドカード指定も可能です?
509             *
510             * @og.rev 3.7.0.5 (2005/04/11) ?カラ?同時設定できる columns 属?を追?
511             * @og.rev 3.8.8.5 (2007/03/09) 通常のパラメータ取得後に、CSV?に戻します?
512             * @og.rev 3.8.8.5 (2007/03/09) 全カラ?が指定されたことにする allColumns 属?を追?
513             *
514             * @param       clms CSV形式?カラ?
515             */
516            public void setColumns( final String clms ) {
517                    if( columns != null ) {
518                            String errMsg = "column との同時セ?は出来ません? " + HybsSystem.CR
519                                                    + "column=[" + StringUtil.array2csv( columns ) + "] , "
520                                                    + "columns=[" + clms + "]" ;
521                            throw new HybsSystemException( errMsg );
522                    }
523                    String column = nval( getRequestParameter( clms ),null );
524                    if( column != null ) {
525                            allColumns = column.indexOf( '*' ) >= 0 ;            // 3.8.8.5 (2007/03/09)
526                            columns = StringUtil.csv2Array( column );
527                            if( columns.length == 0 ) { columns = null; }
528                    }
529            }
530    
531            /**
532             * 【TAG】ラベルリソースに定義されたラベル??をセ?します?
533             *
534             * @og.tag
535             * ラベルをセ?します?
536             *
537             * @og.rev 2.3.1.2 (2003/01/28) ラベルリソースからラベル名を取得するよ?修正
538             * @og.rev 4.0.0.0 (2005/01/31) キーより、ラベル??タオブジェクトを取得します?
539             *
540             * @param       lbl ラベル
541             */
542            public void setLabel( final String lbl ) {
543                    labelData = getResource().getLabelData( getRequestParameter( lbl ) ) ;  // 4.0.0 (2005/01/31)
544            }
545    
546            /**
547             * 【TAG】カラ??クラス?VARCHAR2,NUMBER など)をセ?します?
548             *
549             * @og.tag
550             * カラ??クラス名をセ?します?
551             *
552             * @param       cls カラ??クラス
553             */
554            public void setClassName ( final String cls ) {
555                    className = nval( getRequestParameter( cls ),className );
556            }
557    
558            /**
559             * 【TAG】カラ??入力文字制限数をセ?します?
560             *
561             * @og.tag
562             * カラ??入力文字制限数をセ?します?
563             *
564             * @param       len カラ??入力文字制限数
565             */
566            public void setMaxlength( final String len ) {
567                    maxlength = nval( getRequestParameter( len ),maxlength );
568            }
569    
570            /**
571             * 【TAG】カラ??表示サイズをセ?しま?大きさ?で入力文字制限ではありません)?
572             *
573             * @og.tag
574             * カラ??サイズをセ?します?
575             *
576             * @og.rev 3.5.5.5 (2004/04/23) 入力??大きさを指定す?viewSize 属?を追??
577             *
578             * @param       siz カラ??サイズ
579             */
580            public void setSize( final String siz ) {
581                    size = nval( getRequestParameter( siz ),size );
582            }
583    
584            /**
585             * 【TAG】カラ?書き込み可能かど?[true/false]をセ?しま?初期値:null)?
586             *
587             * @og.tag
588             * カラ??書き込み可能をセ?します?
589             *
590             * @param       flag カラ??書き込み可能かど?(true:可能/false:付加)
591             */
592            public void setWritable ( final String flag ) {
593                    writable = nval( getRequestParameter( flag ),writable );
594            }
595    
596            /**
597             * 【TAG】カラ??表示用レン?ー({@og.doc03Link renderer Renderer_****})をセ?します?
598             *
599             * @og.tag
600             * これは、plugin.column 以下? Renderer_**** クラスの **** を与えます?
601             * これら?、CellRenderer インターフェースを継承したサブクラスです?
602             * 属?クラス定義の {@link org.opengion.hayabusa.db.CellRenderer Renderer} を参照願います?
603             * {@og.doc03Link renderer Renderer_**** クラス}
604             *
605             * @param       rdr カラ??表示用レン?ー(Renderer_**** の ****)
606             * @see         org.opengion.hayabusa.db.CellRenderer
607             */
608            public void setRenderer ( final String rdr ) {
609                    renderer = nval( getRequestParameter( rdr ),renderer );
610            }
611    
612            /**
613             * 【TAG】カラ??編?エ?ター({@og.doc03Link editor Editor_****})をセ?します?
614             *
615             * @og.tag
616             * これは、plugin.column 以下? Editor_**** クラスの **** ?
617             * 与えます?これら?、CellEditor インターフェースを継承したサブクラスです?
618             * 属?クラス定義の {@link org.opengion.hayabusa.db.CellEditor Editor} を参照願います?
619             * {@og.doc03Link editor Editor_**** クラス}
620             *
621             * @param       ed カラ??編?エ?ター(Editor_**** の ****)
622             * @see         org.opengion.hayabusa.db.CellEditor
623             */
624            public void setEditor ( final String ed ) {
625                    editor = nval( getRequestParameter( ed ),editor );
626            }
627    
628            /**
629             * 【TAG】D?タイ?{@og.doc03Link dbType DBType_****})をセ?します?
630             *
631             * @og.tag
632             * これは、org.opengion.hayabusa.db.column 以下? DBType_**** クラスの **** ?
633             * 与えます?これら?、DBType インターフェースを継承したサブクラスです?
634             * 属?クラス定義の {@link org.opengion.hayabusa.db.DBType DBType} を参照願います?
635             * {@og.doc03Link dbType DBType_**** クラス}
636             *
637             * @param       dt パラメータ
638             * @see         org.opengion.hayabusa.db.DBType  DBType_**** の ****
639             */
640            public void setDbType( final String dt ) {
641                    dbType = nval( getRequestParameter( dt ),dbType );
642            }
643    
644            /**
645             * 【TAG】コードセレクト?ユニ?クキー(コード名称)をセ?します?
646             *
647             * @og.tag
648             * こ?キーを?に、CodeSelectionオブジェクトを構築します?
649             *
650             * @og.rev 3.5.5.7 (2004/05/10)  新規作?
651             *
652             * @param       name    メニューのユニ?クキー(コード名称)
653             */
654            public void setCodeName( final String name ) {
655                    codeName = nval( getRequestParameter( name ),codeName );
656            }
657    
658            /**
659             * 【TAG】コードセレクト?サブセ?となるコードをCSV形式で?します?
660             *
661             * @og.tag
662             * こ?値に限定された、コードリソースを?既存?、CodeSelection の
663             * サブセ?として作?します?
664             * codeName で?されたリソースでも?サブセ?を作?する事ができます?
665             *
666             * @og.rev 5.1.9.0 (2010/08/01)  新規作?
667             *
668             * @param       list    コードセレクト?サブセ?となるコー?
669             */
670            public void setCodeList( final String list ) {
671                    codeList = nval( getRequestParameter( list ),codeList );
672            }
673    
674            /**
675             * 【TAG】コードセレクト?サブセ?となるグループを?します?
676             *
677             * @og.tag
678             * こ?値に限定された、コードリソースを?既存?、CodeData の
679             * サブセ?として作?します?
680             * codeName で?されたリソースでも?サブセ?を作?する事ができます?
681             *
682             * @og.rev 5.1.9.0 (2010/08/01)  新規作?
683             *
684             * @param       group   コードセレクト?サブセ?となるグルー?
685             */
686            public void setCodeGroup( final String group ) {
687                    codeGroup = nval( getRequestParameter( group ),codeGroup );
688            }
689    
690            /**
691             * 【?】パラメータをセ?しま?param 属?を使用してください)?
692             *
693             * @og.tag
694             * ここで?したパラメータは、renderer、editor、dbType すべてのパラメータに
695             * セ?されます?
696             * パラメータをセ?します?
697             *
698             * @og.rev 5.1.7.0 (2010/06/01) 動的プル?ン実?直?
699             * @og.rev 5.6.4.3 (2013/05/24) ?します?param 属?を使用してください?
700             *
701             * @param       prm パラメータ
702             * @see    #setParam( String )
703             * @deprecated  lbl 属?を使用してください?
704             */
705            @Deprecated public void setParameter( final String prm ) {
706                    setParam( prm );                        // 5.6.4.3 (2013/05/24) ?に伴??新しいメソ?側へ振ります?
707    //              parameter = nval( getRequestParameter( prm ),parameter );
708    //              rawParameter = nval( prm, parameter );
709            }
710    
711            /**
712             * 【TAG】パラメータをセ?します?
713             *
714             * @og.tag
715             * ここで?したパラメータは、renderer、editor、dbType すべてのパラメータに
716             * セ?されます?
717             * パラメータをセ?します?
718             *
719             * @og.rev 5.6.4.3 (2013/05/24) 新規追?
720             *
721             * @param       prm パラメータ
722             */
723            public void setParam( final String prm ) {
724                    parameter = nval( getRequestParameter( prm ),parameter );
725                    rawParameter = nval( prm, parameter );
726            }
727    
728            /**
729             * 【TAG】?期?をセ?します?
730             *
731             * @og.tag
732             * 初期値をセ?します?
733             *
734             * @param       dv 初期値
735             */
736            public void setDefaultVal( final String dv ) {
737                    defaultVal = nval( getRequestParameter( dv ),defaultVal );
738            }
739    
740            /**
741             * 【TAG】??入力を表す色に変えるかど?[true/false]?しま?初期値:false)?
742             *
743             * @og.tag
744             * 初期値は、??でな?"false") です?
745             * なお?実際の??入力チェ?は、ここではなく?columnCheck タグで?が?です?
746             * <del>(注???チェ?とは連動して?せん?/del>
747             * requert 変数に属?をセ?し?writeCheck タグで hidden 出力します?
748             * よって、?、writeCheck タグより前方に記述する?があります?
749             *
750             * @og.rev 3.5.1.0 (2003/10/03) 親クラスをCommonTagSupportからHTMLTagSupportに変更?
751             * @og.rev 4.0.0.0 (2005/02/28) must属?の登録を?id属?から、class 属?に変更します?
752             * @og.rev 4.1.2.1 (2008/03/13) must属?を?動化します?
753             * @og.rev 5.2.1.0 (2010/10/01) must , mustAny 属?の処?、HTMLTagSupport に移します?
754             *
755             * @param       flag ??入?("true")???でな?(それ以?
756             */
757    //      public void setMust( final String flag ) {
758    //              boolean must = nval( getRequestParameter( flag ),false );
759    ////            mustType = nval( getRequestParameter( flag ),null );
760    ////            if( "true".equalsIgnoreCase( mustType ) ) {
761    //              if( must ) {
762    //                      mustType = "must";
763    //                      add( "class","must" );
764    //              }
765    //      }
766    
767            /**
768             * 【TAG】選択??入?どれかひとつ??)を表す色[true/mustAny/そ?他]を指定しま?初期値:無???
769             *
770             * @og.tag
771             * ?のカラ???、どれかひとつを??とする選択??入力を示す色を指定します?
772             * true また?、mustAny を設定すると、class属?に、mustAny がセ?されます?
773             * mustAny は、CSSファイルに初期設定されて?す?true また?、mustAny 以外?値をセ?
774             * すると、その値がそのまま、class属?にセ?されます?で?択??のグループ化?
775             * 可能です?
776             * なお?実際の選択??入力チェ?は、ここではなく?columnCheck タグで?が?です?
777             * must 属?と同時に設定した?合?、must 属? が優先されます?
778             * 初期値は、無?です?
779             * requert 変数に属?をセ?し?writeCheck タグで hidden 出力します?
780             * よって、?、writeCheck タグより前方に記述する?があります?
781             *
782             * @og.rev 3.8.0.9 (2005/10/17) 新規追?
783             * @og.rev 4.1.2.1 (2008/03/13) mustAny属?を?動化します?
784             * @og.rev 5.2.1.0 (2010/10/01) must , mustAny 属?の処?、HTMLTagSupport に移します?
785             *
786             * @param       flag 選択??入?どれかひとつ??)を表す色を指?true|mustAny|そ??
787             */
788    //      public void setMustAny( final String flag ) {
789    //              if( mustType == null ) {        // must 属?と同時設定時には、must 属?を優先します?
790    //                      mustType = nval( getRequestParameter( flag ),null );
791    //                      if( "true".equalsIgnoreCase( mustType ) ) {
792    //                              mustType = "mustAny";
793    //                      }
794    //                      add( "class",mustType );        // mustType == null の場合?、add されません?
795    //              }
796    //
797    ////            String str = nval( getRequestParameter( flag ),null );
798    ////            if( str != null ) {
799    ////                    if( str.equalsIgnoreCase( "true" ) ) {
800    ////                            add( "class","mustAny" );
801    ////                    }
802    ////                    else {
803    ////                            add( "class",str );
804    ////                    }
805    ////            }
806    //      }
807    
808            /**
809             * 【TAG】コンボ??スの値なし?Optionの有無[true/false]を指定しま?初期値:falseと同??
810             *
811             * @og.tag
812             * コンボ??スの場合?値なし?OptionをSelectに含めるかど?を指定します?
813             * ここでは、検索結果の登録画面に使用されるケースが多いため、なにも指定されな?
814             * 場合?、なにもセ?しません?Coderesourceの?どおり)
815             * 動作としては、?期?は、含めな?"false") と同等です?
816             *
817             * &lt;og:columnEditor column="CDBK" addNoValue="false" /&gt;
818             *
819             * @param       flag  [true:含める/それ以?含めない]
820             */
821            public void setAddNoValue( final String flag ) {
822                    addNoValue = nval( getRequestParameter( flag ),addNoValue );
823            }
824    
825            /**
826             * 【TAG】SQL??してラベル??を動?読み込?ど?[true/false]?しま?初期値:false)?
827             *
828             * @og.tag
829             * trueを指定すると、body部?記述されたSQL?りラベル??を生成して?
830             * 動的にラベル表示を?り替えます?
831             *
832             * ワイルドカードを使用した、カラ????と?合わせることで、外部から設?
833             * されたラベル??で?で変更することができます?
834             *
835             * 発行するクエリでは、第1カラ?ラベルキーを?第2カラ?ラベル名称を設定します?
836             * 第3カラ?存在する場合?、名称(短)として使用されます?(??ではありません)
837             *
838             * ここで作?されたラベル??は、カラ??ターを適用したDBTableModelのみで
839             * 有効であり、?部?もキャ?ュされません?
840             *
841             * 初期値は、false(動的読込しな?です?
842             *
843             * @og.rev 4.3.4.0 (2008/12/01) 新規作?
844             *
845             * @param       flag 動的読込 [true:する/false:しない]
846             */
847            public void setUseLabelMap( final String flag ) {
848                    useLabelMap = nval( getRequestParameter( flag ),useLabelMap );
849            }
850    
851            /**
852             * 【TAG】MENU,DBMENUでSLABELを利用するかど?[auto/true/false]を指定しま?初期値:null)?
853             *
854             * @og.tag
855             * 通常はセレクトメニューは?とそれ以外で短縮ラベルの利用が?動で?替わります?
856             * 強制?SLABELを利用させたい場合にこ?属?をtrue/falseにセ?して下さ??
857             * auto/true/false以外を?した?合?false扱?します?
858             * ここでの初期値は、?の変更を行わな??ことで、null です?
859             *
860             * @og.rev 5.6.2.3 (2013/03/22) columnタグに実?れて?ので移?
861             *
862             * @param prm [auto:自?true:利用する/false:利用しない]
863             */
864            public void setUseSLabel( final String prm ) {
865                    useSLabel = nval( getRequestParameter( prm ),useSLabel );
866                    if( useSLabel != null &&
867                            !"auto".equalsIgnoreCase( useSLabel ) &&
868                            !"true".equalsIgnoreCase( useSLabel ) &&
869                            !"false".equalsIgnoreCase( useSLabel ) ) {
870                                    String errMsg = "useSLabel は、[auto:自?true:利用する/false:利用しない] から選んでください?
871                                                                    + "useSLabel=[" + prm + "]" + HybsSystem.CR ;
872                                    throw new HybsSystemException( errMsg );
873                    }
874            }
875    
876            /**
877             * 【TAG】非表示??を指定しま?初期値:null)?
878             *
879             * @og.tag
880             * これは、例えば、数字型の場合?? がデフォルトなどの場合?
881             * あえて表示したくな?どのケースに使?す?
882             * そ?ような状況が設定されて???合?、null が返されます?
883             * 初期値は、null です?
884             *
885             * @og.rev 5.6.2.3 (2013/03/22) 新規追?
886             *
887             * @param prm [auto:自?true:利用する/false:利用しない]
888             */
889            public void setNoDisplayVal( final String prm ) {
890                    noDisplayVal = nval( getRequestParameter( prm ),noDisplayVal );
891            }
892    
893            /**
894             * 【TAG?通常使?せん)sessionから?す?DBTableModelオブジェクト? ID?
895             *
896             * @og.tag
897             * 表示処?に???ポインタを書き換えた)DBTableModelオブジェクトを
898             * 同じキーで、sessionに登録します?
899             * 初期値は、HybsSystem.TBL_MDL_KEY です?
900             *
901             * @og.rev 3.5.0.0 (2003/09/17) セ?ーメソ?の追?
902             *
903             * @param       id sessionに登録する時? ID
904             */
905            public void setTableId( final String id ) {
906                    tableId   = nval( getRequestParameter( id ),tableId );
907            }
908    
909            /**
910             * 【TAG】データベ?スへ接続する?合?ID?
911             *
912             * @og.tag
913             * ??タベ?ス接続を使用するエ?ター、レン?ーを使用する場合に使用する接続?IDを指定します?
914             * カラ?ブジェクト?、query処?はなく?view処?に適用されるため???タベ?ス
915             * 接続?を指定する?があります?
916             * 初期値は、null(DEFAULT 接? です?
917             *
918             * @og.rev 4.0.0.0 (2006/04/02) 新規追?
919             *
920             * @param       id 接続?ID
921             */
922            public void setDbid( final String id ) {
923                    dbid = nval( getRequestParameter( id ),dbid );
924            }
925    
926            /**
927             * 【TAG】イベントカラ?親カラ?のセ??
928             *
929             * @og.tag
930             * 親子関係を持った?目の動的な入れ替えを行う場合に利用します?
931             * こ?カラ?変化させるトリガとなるカラ??名前をセ?します?
932             *
933             * ※詳細はcolumnTagのeventURL属?の説明をご覧下さ??
934             *
935             * なお?columnEditorで、Viewに対して、SQL??定義(置き換え定義)をする?合でも?
936             * 他カラ??値の参?は、columnタグの場合と同様に、{&#064;XXXX}また?$nの変数により行います?
937             * こ?場合?これら?変数は?自身と同??カラ?を意味します?
938             *
939             * @og.rev 4.3.6.0 (2009/04/01)
940             * @og.rev 5.1.7.0 (2010/06/01) コメント大?正
941             *
942             * @param       col     親カラ?
943             */
944            public void setEventColumn( final String col ) {
945                    eventColumn = nval( getRequestParameter( col ), eventColumn );
946            }
947    
948            /**
949             * 【TAG】eventColumn利用時に呼ばれるJSPのURL?
950             *
951             * @og.tag
952             * イベントカラ?定時に部品を作?するJSPを指定します?
953             * 初期値はシス?リソースのEVENT_COLUMN_URLです?
954             * (例:eventURL="makeColumn_custom.jsp")
955             *
956             * ※詳細はcolumnTagのeventURL属?の説明をご覧下さ??
957             *
958             * @og.rev 4.3.6.0 (2009/04/01)
959             *
960             * @param       url     JSPのURL
961             */
962            public void setEventURL( final String url ) {
963                    eventURL = nval( getRequestParameter( url ), eventURL );
964            }
965    
966            /**
967             * 【TAG】eventColumn実行後?callbak関数??
968             *
969             * @og.tag
970             * eventColumnの動作終?に実行するCallback関数の?を行います?
971             * 関数名?みを指定して下さ??
972             * ?x) sampleCallback()を実行する?合?eventCallback="sampleCallback"
973             * 実行する関数の第?数には自動的に次の要?入った?列が渡されま?
974             * ?0] 変更された子カラ??ID属?値
975             * ?1] evnetColumn実行後?子カラ??値
976             * ?2] eventColumn実行前の子カラ??値
977             *
978             * こ?属?は、optionAttributesへの設定と同様?動作を行います?
979             *
980             * @og.rev 5.5.4.0 (2012/07/02) 新規追?
981             *
982             * @param   callback Callback関数
983             */
984            public void setEventCallback( final String callback ) {
985                    // optionAttributes扱?登録します?
986                    if( callback != null && callback.length() > 0 ){
987                            add( "optionAttributes", "eventCallback='"+getRequestParameter( callback )+"'" );
988                    }
989            }
990    
991            /**
992             * シリアライズ用のカスタ?リアライズ書き込みメソ?
993             *
994             * @og.rev 4.0.0.0 (2006/09/31) 新規追?
995             * @serialData
996             *
997             * @param       strm    ObjectOutputStreamオブジェク?
998             */
999            private void writeObject( final ObjectOutputStream strm ) throws IOException {
1000                    strm.defaultWriteObject();
1001            }
1002    
1003            /**
1004             * シリアライズ用のカスタ?リアライズ読み込みメソ?
1005             *
1006             * ここでは、transient 宣?れた?変数の??初期化が?なフィールド?み設定します?
1007             *
1008             * @og.rev 4.0.0.0 (2006/09/31) 新規追?
1009             * @serialData
1010             *
1011             * @param       strm    ObjectInputStreamオブジェク?
1012             * @see #release2()
1013             */
1014            private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException {
1015                    strm.defaultReadObject();
1016            }
1017    
1018            /**
1019             * こ?オブジェクト???表現を返します?
1020             * 基本???目?使用します?
1021             *
1022             * @return こ?クラスの??表現
1023             */
1024            @Override
1025            public String toString() {
1026                    return org.opengion.fukurou.util.ToString.title( this.getClass().getName() )
1027                                    .println( "VERSION"             ,VERSION        )
1028                                    .println( "tableId"             ,tableId        )
1029                                    .println( "columns"             ,columns        )
1030                                    .println( "allColumns"  ,allColumns     )
1031                                    .println( "className"   ,className      )
1032                                    .println( "size"                ,size           )
1033                                    .println( "maxlength"   ,maxlength      )
1034                                    .println( "writable"    ,writable       )
1035                                    .println( "renderer"    ,renderer       )
1036                                    .println( "editor"              ,editor         )
1037                                    .println( "codeName"    ,codeName       )
1038                                    .println( "dbType"              ,dbType         )
1039                                    .println( "defaultVal"  ,defaultVal     )
1040                                    .println( "parameter"   ,parameter      )
1041                                    .println( "dbid"                ,dbid           )
1042                                    .println( "addNoValue"  ,addNoValue     )
1043                                    .println( "Other..."    ,getAttributes().getAttribute() )
1044                                    .fixForm().toString() ;
1045            }
1046    }