All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.googlecode.gflot.client.options.CommonSeriesOptions Maven / Gradle / Ivy

/*
 * Copyright (c) 2012 Nicolas Morel
 *
 * Permission is hereby granted, free of charge, to any person
 * obtaining a copy of this software and associated documentation
 * files (the "Software"), to deal in the Software without
 * restriction, including without limitation the rights to use,
 * copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following
 * conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 * OTHER DEALINGS IN THE SOFTWARE.
 */
package com.googlecode.gflot.client.options;


import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
import com.googlecode.gflot.client.jsni.JsonObject;

/**
 * Options common to global series options and specific series options
 *
 * @author Nicolas Morel
 */
@SuppressWarnings( "unchecked" )
public abstract class CommonSeriesOptions>
    extends JsonObject
{

    public static class Threshold
        extends JsonObject
    {
        private static final String BELOW_KEY = "below";
        private static final String COLOR_KEY = "color";

        /**
         * Creates a {@link Threshold}
         */
        public static final Threshold create()
        {
            return JavaScriptObject.createObject().cast();
        }

        protected Threshold()
        {
        }

        /**
         * The data points below "below" are drawn with the specified color.
         */
        public final Threshold setBelow( double below )
        {
            put( BELOW_KEY, below );
            return this;
        }

        /**
         * @return the below number
         */
        public final Double getBelow()
        {
            return getDouble( BELOW_KEY );
        }

        /**
         * Clear the below number
         */
        public final Threshold clearBelowNumber()
        {
            clear( BELOW_KEY );
            return this;
        }

        /**
         * Set the color.
         */
        public final Threshold setColor( String color )
        {
            put( COLOR_KEY, color );
            return this;
        }

        /**
         * @return the color
         */
        public final String getColor()
        {
            return getString( COLOR_KEY );
        }

        /**
         * Clear the color
         */
        public final Threshold clearColor()
        {
            clear( COLOR_KEY );
            return this;
        }
    }

    private static final String LINE_SERIES_KEY = "lines";
    private static final String BAR_SERIES_KEY = "bars";
    private static final String POINTS_SERIES_KEY = "points";
    private static final String IMAGES_SERIES_KEY = "images";
    private static final String SHADOW_SIZE_KEY = "shadowSize";
    private static final String STACK_KEY = "stack";
    private static final String THRESHOLD_KEY = "threshold";
    private static final String HIGHLIGHT_COLOR_KEY = "highlightColor";

    protected CommonSeriesOptions()
    {
    }

    /**
     * Set global Line series options that will be used unless options are set directly to the series
     */
    public final T setLineSeriesOptions( LineSeriesOptions lineSeriesOptions )
    {
        put( LINE_SERIES_KEY, lineSeriesOptions );
        return (T) this;
    }

    /**
     * @return global Line series options
     */
    public final LineSeriesOptions getLineSeriesOptions()
    {
        return getJsObject( LINE_SERIES_KEY );
    }

    /**
     * Set global Bar series options that will be used unless options are set directly to the series
     */
    public final T setBarsSeriesOptions( BarSeriesOptions barSeriesOptions )
    {
        put( BAR_SERIES_KEY, barSeriesOptions );
        return (T) this;
    }

    /**
     * @return global Bar series options
     */
    public final BarSeriesOptions getBarSeriesOptions()
    {
        return getJsObject( BAR_SERIES_KEY );
    }

    /**
     * Set global Points series options that will be used unless options are set directly to the series
     */
    public final T setPointsOptions( PointsSeriesOptions pointsSeriesOptions )
    {
        put( POINTS_SERIES_KEY, pointsSeriesOptions );
        return (T) this;
    }

    /**
     * @return global Points series options
     */
    public final PointsSeriesOptions getPointsSeriesOptions()
    {
        return getJsObject( POINTS_SERIES_KEY );
    }

    /**
     * Set global Image series options that will be used unless options are set directly to the series
     */
    public final T setImageSeriesOptions( ImageSeriesOptions imageSeriesOptions )
    {
        put( IMAGES_SERIES_KEY, imageSeriesOptions );
        return (T) this;
    }

    /**
     * @return global Image series options
     */
    public final ImageSeriesOptions getImageSeriesOptions()
    {
        return getJsObject( IMAGES_SERIES_KEY );
    }

    /**
     * Set the size of shadows in pixels for all series. Set it to 0 to remove shadows.
     */
    public final T setShadowSize( double shadow )
    {
        assert shadow >= 0 : "shadowSize must be >= 0";

        put( SHADOW_SIZE_KEY, shadow );
        return (T) this;
    }

    /**
     * @return the size of shadows in pixels
     */
    public final Double getShadowSize()
    {
        return getDouble( SHADOW_SIZE_KEY );
    }

    /**
     * Clear the size of the shadows
     */
    public final T clearShadowSize()
    {
        clear( SHADOW_SIZE_KEY );
        return (T) this;
    }

    /**
     * Set the stack key option. Two or more series are stacked when their "stack" attribute is set to the same key
     * (which can be any number or string or just "true"). The stacking order is determined by the order of the data
     * series in the array (later series end up on top of the previous).
     */
    public final T setStack( String key )
    {
        put( STACK_KEY, key );
        return (T) this;
    }

    /**
     * Set the stack key option. Two or more series are stacked when their "stack" attribute is set to the same key
     * (which can be any number or string or just "true"). The stacking order is determined by the order of the data
     * series in the array (later series end up on top of the previous).
     */
    public final T setStack( int key )
    {
        put( STACK_KEY, key );
        return (T) this;
    }

    /**
     * Set the stack key option. Two or more series are stacked when their "stack" attribute is set to the same key
     * (which can be any number or string or just "true"). The stacking order is determined by the order of the data
     * series in the array (later series end up on top of the previous).
     */
    public final T setStack( boolean stack )
    {
        put( STACK_KEY, stack );
        return (T) this;
    }

    /**
     * @return the stack option
     */
    public final String getStackAsKeyString()
    {
        return getString( STACK_KEY );
    }

    /**
     * @return the stack option
     */
    public final Integer getStackAsKeyNumber()
    {
        return getInteger( STACK_KEY );
    }

    /**
     * @return the stack option
     */
    public final Boolean getStackAsBoolean()
    {
        return getBoolean( STACK_KEY );
    }

    /**
     * Clear the stack option
     */
    public final T clearStack()
    {
        clear( STACK_KEY );
        return (T) this;
    }

    /**
     * Set the threshold options.
     */
    public final T setThreshold( Threshold threshold )
    {
        JsArray array = JavaScriptObject.createArray().cast();
        array.push( threshold );
        return setThreshold( array );
    }

    /**
     * Set the threshold options.
     */
    public final T setThreshold( JsArray threshold )
    {
        put( THRESHOLD_KEY, threshold );
        return (T) this;
    }

    /**
     * @return the threshold options
     */
    public final JsArray getThreshold()
    {
        return getJsObject( THRESHOLD_KEY );
    }

    /**
     * Clear the threshold option
     */
    public final T clearThreshold()
    {
        clear( THRESHOLD_KEY );
        return (T) this;
    }

    /**
     * Set the color of the translucent overlay used
     * to highlight the series when the mouse hovers over it
     */
    public final T setHighlightColor( String color )
    {
        put( HIGHLIGHT_COLOR_KEY, color );
        return (T) this;
    }

    /**
     * Set the color of the translucent overlay used
     * to highlight the series when the mouse hovers over it
     */
    public final T setHighlightColor( double color )
    {
        put( HIGHLIGHT_COLOR_KEY, color );
        return (T) this;
    }

    /**
     * @return the color of the translucent overlay used
     *         to highlight the series when the mouse hovers over it
     */
    public final String getHighlightColorAsString()
    {
        return getString( HIGHLIGHT_COLOR_KEY );
    }

    /**
     * @return the color of the translucent overlay used
     *         to highlight the series when the mouse hovers over it
     */
    public final Double getHighlightColorAsNumber()
    {
        return getDouble( HIGHLIGHT_COLOR_KEY );
    }

    /**
     * Clear the color of the translucent overlay used
     * to highlight the series when the mouse hovers over it
     */
    public final T clearHighlightColor()
    {
        clear( HIGHLIGHT_COLOR_KEY );
        return (T) this;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy