    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}