001package org.opengion.hayabusa.io; 002 003import org.opengion.hayabusa.common.HybsSystem; 004 005/** 006 * JsChartData は、JsChartData の個別属性を管理しているデータ管理クラスです。 007 * 008 * @version 5.9.17.2 2017/02/08 009 * @author T.OTA 010 * @sinse JDK7.0 011 * 012 */ 013public class JsChartData { 014 private String chartColumn = null; // チャートカラム 015 private String label = null; // ラベル 016 private String fill = null; // フィル 017 private String tension = null; // 伸張 018 private String borderColor = null; // 線の色 019 private String borderWidth = null; // 線の幅 020 private String backgroundColor = null; // 背景色 021 private String optionAttributes = null; // オプション 022 023 /** 024 * チャートカラムを設定します。 025 * 026 * @param chartColumn チャートカラム 027 */ 028 public void setChartColumn( String chartColumn ) { 029 this.chartColumn = chartColumn; 030 } 031 032 /** 033 * JsChartData オブジェクトを作成する時のチャートカラムを取得します。 034 * 035 * @return チャートカラム 036 */ 037 public String getChartColumn() { 038 return chartColumn; 039 } 040 041 /** 042 * ラベルを設定します。 043 * 044 * @param label ラベル 045 */ 046 public void setLabel( String label ) { 047 this.label = label; 048 } 049 050 /** 051 * ラベルを取得します。 052 * 053 * @return ラベル 054 */ 055 public String getLabel() { 056 return label; 057 } 058 059 /** 060 * フィル を設定します。 061 * @param fill 062 */ 063 public void setFill( String fill ) { 064 this.fill = fill; 065 } 066 067 /** 068 * 線の伸張 を設定します。 069 * 070 * @param tension 071 */ 072 public void setTension( String tension ) { 073 this.tension = tension; 074 } 075 076 /** 077 * 線の色 を設定します。 078 * 079 * @param borderColor 080 */ 081 public void setBorderColor( String borderColor ) { 082 this.borderColor = borderColor; 083 } 084 085 /** 086 * 線の幅 を設定します。 087 * 088 * @param borderWidth 089 */ 090 public void setBorderWidth( String borderWidth ) { 091 this.borderWidth = borderWidth; 092 } 093 094 /** 095 * 背景色 を設定します。 096 * 097 * @param backgroundColor 098 */ 099 public void setBackgroundColor( String backgroundColor ) { 100 this.backgroundColor = backgroundColor; 101 } 102 103 /** 104 * オプション情報 を設定します。 105 * 106 * @param optionAttributes オプション情報 107 */ 108 public void setOptionAttributes( String optionAttributes ) { 109 this.optionAttributes = optionAttributes; 110 } 111 112 /** 113 * JsChartData オブジェクトを作成する時のオプション情報を取得します。 114 * 115 * @return オプション情報 116 */ 117 public String getOptionAttributes() { 118 return optionAttributes; 119 } 120 121 /** 122 * JsChartData オブジェクトを作成するときのパラメータ情報を取得します。 123 * chartColumnとoptionAttributesを使用して、 124 * パラメータ情報を作成します。 125 * 126 * @return パラメータ文字列 127 */ 128 public String getParameter() { 129 StringBuilder rtn = new StringBuilder( HybsSystem.BUFFER_SMALL ); 130 rtn.append( "{" ); 131 if( label != null && label.length() > 0 ) { 132 rtn.append( "label:'" ).append( label ).append( "'," ); 133 } 134 rtn.append( "data:" ).append( chartColumn ); 135 setProp( rtn, ",fill:", fill ); 136 setProp( rtn, ",tension:", tension ); 137 setProp( rtn, ",borderColor:", setParaOrArray( borderColor ) ); 138 setProp( rtn, ",borderWidth:", borderWidth ); 139 setProp( rtn, ",backgroundColor:", setParaOrArray( backgroundColor ) ); 140 setProp( rtn, ",", optionAttributes ); 141 rtn.append( "}" ); 142 143 return rtn.toString(); 144 } 145 146 /** 147 * 配列が指定される事がある場合の、値設定 148 * 149 * @param str 150 * @return パラメータ文字 151 */ 152 private String setParaOrArray( String str ) { 153 StringBuilder sb = new StringBuilder( HybsSystem.BUFFER_MIDDLE ); 154 155 // 引数が配列形式の記載であるかを判定。(頭文字が「[」であるかどうか) 156 if( str != null && str.length() > 0 && !"[".equals( str.substring( 0, 1 ) )) { 157 // 配列でない場合は、シングルクォテーションを付与 158 sb.append( "'" ).append( str ).append( "'" ); 159 }else{ 160 // 配列の場合はそのまま 161 sb.append( str ); 162 } 163 164 return sb.toString(); 165 } 166 167 /** 168 * プロパティ設定用メソッド 169 * 170 * setに値が存在する場合, 171 * sbにstr + setの形で値を追加する。 172 * 173 * @param sb 174 * @param str 175 * @param set 176 */ 177 private void setProp( StringBuilder sb, String str, String set ) { 178 if( set != null && set.length() > 0 ) { 179 sb.append( str ).append( set ); 180 } 181 } 182}