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.AbstractRenderer;
019 import org.opengion.hayabusa.db.CellRenderer;
020 import org.opengion.hayabusa.db.DBColumn;
021
022 /**
023 * YMD レンãƒ?ƒ©ーは、カラãƒ??ãƒ??タを日ä»?æœ?日)表示する場合に使用するクラスですã?
024 * å…??æ–?—å?の5,6桁目を月としてã€?,8桁目を日として表示しますã?
025 *
026 * こã?クラスは、不変オブジェクトとして、å?有されますã?
027 *
028 * @og.group ãƒ??タ表示
029 *
030 * @og.rev 4.3.7.1 (2009/06/08) 新規作æ?
031 *
032 * @version 4.0
033 * @author Takahashi Masakazu
034 * @since JDK5.0,
035 */
036 public class Renderer_MD extends AbstractRenderer {
037 //* こã?プログラãƒ??VERSIONæ–?—å?を設定しますã? {@value} */
038 private static final String VERSION = "5.5.8.1 (2012/11/05)" ;
039
040 private static final CellRenderer dbCell = new Renderer_MD() ;
041
042 /**
043 * å�?‚ªブジェクトからè?åˆ??インスタンスを返しますã?
044 * 自åˆ??身をキャãƒ?‚·ュするのかã?新たに作æ?するのかã?、各サブクラスの実è£?�«
045 * まかされますã?
046 *
047 * @param clm DBColumnオブジェクãƒ?
048 *
049 * @return CellRendererオブジェクãƒ?
050 */
051 public CellRenderer newInstance( final DBColumn clm ) {
052 return dbCell;
053 }
054
055 /**
056 * ãƒ??タの表示用æ–?—å?を返しますã?
057 * ここでは、null ã�?ゼロæ–?—å?の場合ã?、ゼロæ–?—å?を返しますã?
058 * ?”ケタ以外ã??˜ケタ以下ã?ãƒ??タなど、正常に処ç�?�§きなかったå?合ã?、エラー表示を行いますã?
059 * å…?�Œ?˜ケタ以上ã?場合ã?先é?から8æ–?—をYYYYMMDD として、MM/DD を返しますã?
060 * ?”ケタの場合ã?、MMDD をã?MM/DD として返しますã?
061 *
062 * @og.rev 5.5.7.2 (2012/10/09) 処ç�?ƒジãƒ?‚¯の見直ã�?
063 * @og.rev 5.5.8.1 (2012/11/05) コロンをスラãƒ?‚·ュに修正ã€?æ–?—以上ã?処ç�?
064 *
065 * @param value 入力å?
066 *
067 * @return ãƒ??タの表示用æ–?—å?
068 */
069 @Override
070 public String getValue( final String value ) {
071 if( value == null || value.length() == 0 ) { return ""; }
072
073 String rtn = value;
074
075 char[] ch1 = new char[5];
076 if( rtn.length() == 4 ) {
077 ch1[0] = rtn.charAt(0);
078 ch1[1] = rtn.charAt(1);
079 ch1[2] = '/' ; // 5.5.8.1 (2012/11/05)
080 ch1[3] = rtn.charAt(2);
081 ch1[4] = rtn.charAt(3);
082
083 rtn = new String( ch1 );
084 }
085 else if( rtn.length() >= 8 ) {
086 ch1[0] = rtn.charAt(4);
087 ch1[1] = rtn.charAt(5);
088 ch1[2] = '/' ; // 5.5.8.1 (2012/11/05)
089 ch1[3] = rtn.charAt(6);
090 ch1[4] = rtn.charAt(7);
091
092 rtn = new String( ch1 );
093 }
094 else {
095 rtn = "<span class=\"error\">" + value + "</span>";
096 }
097 return rtn;
098
099 // final String rtn;
100 // if( value == null || value.length() == 0 ) {
101 // rtn = "";
102 // }
103 // else if( value.length() >= 8 ) {
104 // StringBuilder buf = new StringBuilder();
105 // buf.append( value.substring(4,6) );
106 // buf.append( "/" );
107 // buf.append( value.substring(6,8) );
108 // rtn = buf.toString();
109 // }
110 // else {
111 // rtn = "<span class=\"error\">" + value + "</span>";
112 // }
113 // return rtn;
114 }
115 }