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