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.plugin.column;
017
018 import org.opengion.hayabusa.db.AbstractEditor;
019 import org.opengion.hayabusa.db.CellEditor;
020 import org.opengion.hayabusa.db.DBColumn;
021 import org.opengion.fukurou.util.XHTMLTag;
022 import org.opengion.hayabusa.common.HybsSystem;
023
024 /**
025 * 先é??‘文字目がã?アンãƒ??バã?(_) の場合に、書込み禁止属æ?()を強制çš?�«付与するクラスですã?
026 *
027 * ・ãƒ??タベã?スに書き込ã‚?�¨きにはã€??常のアンãƒ??バã?無しã?æ–?—å?としますã?
028 *
029 * こã?エãƒ?‚£タはeventColumnに対応してã�?�¾せんã€?
030 *
031 * カラãƒ??表示にå¿?¦�な属æ?は, DBColumn オブジェクãƒ?より取り出しますã?
032 * こã?クラスは、DBColumn オブジェクト毎に?‘つ作æ?されますã?
033 *
034 * @og.rev 3.0.0.4 (2003/02/26) 新規追åŠ?
035 * @og.group ãƒ??タ編é›?
036 *
037 * @version 4.0
038 * @author Kazuhiko Hasegawa
039 * @since JDK5.0,
040 */
041 public class Editor_WRITABLE extends AbstractEditor {
042 //* こã?プログラãƒ??VERSIONæ–?—å?を設定しますã? {@value} */
043 private static final String VERSION = "4.0.0.0 (2005/08/31)" ;
044
045 /**
046 * ãƒ?ƒ•ォルトコンストラクターã€?
047 * こã?コンストラクターで、基本オブジェクトを作æ?しますã?
048 *
049 * @og.rev 3.1.1.1 (2003/04/03) å�?‚ªブジェクトからè?åˆ??インスタンスを返すファクトリメソãƒ?ƒ‰を追åŠ??
050 *
051 */
052 public Editor_WRITABLE() {
053 // 4.3.4.4 (2009/01/01)
054 // super();
055 }
056
057 /**
058 * コンストラクターã€?
059 *
060 * @og.rev 3.1.1.1 (2003/04/03) å�?‚ªブジェクトからè?åˆ??インスタンスを返すファクトリメソãƒ?ƒ‰を追åŠ??
061 * @og.rev 3.5.6.0 (2004/06/18) XHTMLTag の å†?ƒ¨配å? INPUT_KEY を隠蔽しますã?
062 *
063 * @param clm DBColumnオブジェクãƒ?
064 */
065 private Editor_WRITABLE( final DBColumn clm ) {
066 super( clm );
067 tagBuffer.add( XHTMLTag.inputAttri( attributes ) );
068 }
069
070 /**
071 * å�?‚ªブジェクトからè?åˆ??インスタンスを返しますã?
072 * 自åˆ??身をキャãƒ?‚·ュするのかã?新たに作æ?するのかã?、各サブクラスの実è£?�«
073 * まかされますã?
074 *
075 * @og.rev 3.1.1.1 (2003/04/03) å�?‚ªブジェクトからè?åˆ??インスタンスを返すファクトリメソãƒ?ƒ‰を追åŠ??
076 * @og.rev 3.1.2.1 (2003/04/10) synchronized をã?削除しますã?
077 *
078 * @param clm DBColumnオブジェクãƒ?
079 *
080 * @return CellEditorオブジェクãƒ?
081 */
082 public CellEditor newInstance( final DBColumn clm ) {
083 return new Editor_WRITABLE( clm );
084 }
085
086 /**
087 * ãƒ??タの編é›?”¨æ–?—å?を返しますã?
088 *
089 * @og.rev 3.5.4.2 (2003/12/15) 書込み禁止属æ?("_")のãƒ??タは,hidden で出力しておきますã?
090 * @og.rev 3.5.5.5 (2004/04/23) hidden の出力に、XHTMLTag.hidden を使用しますã?
091 *
092 * @param value 入力å?
093 *
094 * @return ãƒ??タの編é›?”¨æ–?—å?
095 */
096 @Override
097 public String getValue( final String value ) {
098
099 if( value != null && value.length() >= 1 && value.charAt(0) == '_' ) {
100 String val = value.substring( 1 );
101 return val + XHTMLTag.hidden( name,val ); // 3.5.5.5 (2004/04/23)
102 }
103
104 return super.getValue( value );
105 }
106
107 /**
108 * name属æ?を変えたã?ãƒ??タ表示/編é›?”¨のHTMLæ–?—å?を作æ?しますã?
109 * ãƒ??ブル上ã? name に 行番号を付加して、名前_行番号 で登録するキーを作æ?ã�?
110 * リクエスト情報を1つ毎ã?フィールドで処ç�?�§きますã?
111 *
112 * @og.rev 2.0.0.3 (2002/09/26) optionAttributes 属æ?に "$i" を使ã�?�¨そã?行数に置き換る機è?を追åŠ??
113 * @og.rev 3.5.4.2 (2003/12/15) 書込み禁止属æ?("_")のãƒ??タは,hidden で出力しておきますã?
114 * @og.rev 3.5.5.0 (2004/03/12) 名前と行番号の区åˆ?‚Š記号("__")をã?HybsSystem.JOINT_STRING に変更ã€?
115 * @og.rev 3.5.5.5 (2004/04/23) hidden の出力に、XHTMLTag.hidden を使用しますã?
116 *
117 * @param row 行番号
118 * @param value 入力å?
119 *
120 * @return ãƒ??タ表示/編é›?”¨のæ–?—å?
121 */
122 @Override
123 public String getValue( final int row,final String value ) {
124
125 if( value != null && value.length() >= 1 && value.charAt(0) == '_' ) {
126 String val = value.substring( 1 );
127 String nm = name + HybsSystem.JOINT_STRING + row;
128 return val + XHTMLTag.hidden( nm,val ); // 3.5.5.5 (2004/04/23)
129 }
130
131 return super.getValue( row,value );
132 }
133 }