java/cewolf-1.0/src/main/java/de/laures/cewolf/taglib/tags/AbstractChartTag.java
author František Kučera <franta-hg@frantovo.cz>
Sat, 28 Feb 2009 21:31:02 +0100
changeset 1 639991d0808a
permissions -rw-r--r--
Rozbalená knihovna verze 1.0
franta-hg@1
     1
/* ================================================================
franta-hg@1
     2
 * Cewolf : Chart enabling Web Objects Framework
franta-hg@1
     3
 * ================================================================
franta-hg@1
     4
 *
franta-hg@1
     5
 * Project Info:  http://cewolf.sourceforge.net
franta-hg@1
     6
 * Project Lead:  Guido Laures (guido@laures.de);
franta-hg@1
     7
 *
franta-hg@1
     8
 * (C) Copyright 2002, by Guido Laures
franta-hg@1
     9
 *
franta-hg@1
    10
 * This library is free software; you can redistribute it and/or modify it under the terms
franta-hg@1
    11
 * of the GNU Lesser General Public License as published by the Free Software Foundation;
franta-hg@1
    12
 * either version 2.1 of
franta-hg@1
    13
 * the License, or (at your option) any later version.
franta-hg@1
    14
 *
franta-hg@1
    15
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
franta-hg@1
    16
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
franta-hg@1
    17
 * See the GNU Lesser General Public License for more details.
franta-hg@1
    18
 *
franta-hg@1
    19
 * You should have received a copy of the GNU Lesser General Public License along with this
franta-hg@1
    20
 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
franta-hg@1
    21
 * Boston, MA 02111-1307, USA.
franta-hg@1
    22
 */
franta-hg@1
    23
franta-hg@1
    24
package de.laures.cewolf.taglib.tags;
franta-hg@1
    25
franta-hg@1
    26
import java.awt.Paint;
franta-hg@1
    27
import java.util.Map;
franta-hg@1
    28
franta-hg@1
    29
import javax.servlet.jsp.JspException;
franta-hg@1
    30
import javax.servlet.jsp.PageContext;
franta-hg@1
    31
franta-hg@1
    32
import de.laures.cewolf.ChartPostProcessor;
franta-hg@1
    33
import de.laures.cewolf.taglib.AbstractChartDefinition;
franta-hg@1
    34
import de.laures.cewolf.taglib.TaglibConstants;
franta-hg@1
    35
franta-hg@1
    36
/**
franta-hg@1
    37
 * Root tag &lt;chart&gt; of a chart definition. Defines all values for the
franta-hg@1
    38
 * page scope variable of type ChartDefinition which is used by the img
franta-hg@1
    39
 * tag to render the appropriate chart.
franta-hg@1
    40
 * @author  Guido Laures
franta-hg@1
    41
 */
franta-hg@1
    42
public abstract class AbstractChartTag extends CewolfTag implements CewolfRootTag, TaglibConstants, Painted {
franta-hg@1
    43
    
franta-hg@1
    44
    protected AbstractChartDefinition chartDefinition = createChartDefinition();
franta-hg@1
    45
    
franta-hg@1
    46
    protected abstract AbstractChartDefinition createChartDefinition();
franta-hg@1
    47
    
franta-hg@1
    48
    public int doStartTag(){
franta-hg@1
    49
        return EVAL_BODY_INCLUDE;
franta-hg@1
    50
    }
franta-hg@1
    51
    
franta-hg@1
    52
    public int doEndTag() throws JspException {
franta-hg@1
    53
        pageContext.setAttribute(getId(), chartDefinition, PageContext.PAGE_SCOPE);
franta-hg@1
    54
        return doAfterEndTag(EVAL_PAGE);
franta-hg@1
    55
    }
franta-hg@1
    56
    
franta-hg@1
    57
    
franta-hg@1
    58
    public void reset() {
franta-hg@1
    59
    	chartDefinition = createChartDefinition();
franta-hg@1
    60
    }
franta-hg@1
    61
    
franta-hg@1
    62
    public String getChartId() {
franta-hg@1
    63
        return getId();
franta-hg@1
    64
    }
franta-hg@1
    65
    
franta-hg@1
    66
    /**
franta-hg@1
    67
     * Setter for property title.
franta-hg@1
    68
     * @param title New value of property title.
franta-hg@1
    69
     */
franta-hg@1
    70
    public void setTitle(String title) {
franta-hg@1
    71
        chartDefinition.setTitle(title);
franta-hg@1
    72
    }
franta-hg@1
    73
    
franta-hg@1
    74
    /**
franta-hg@1
    75
     * Setter for property xAxisLabel.
franta-hg@1
    76
     * @param xAxisLabel New value of property xAxisLabel.
franta-hg@1
    77
     */
franta-hg@1
    78
    public void setXaxislabel(String xAxisLabel) {
franta-hg@1
    79
        chartDefinition.setXAxisLabel(xAxisLabel);
franta-hg@1
    80
    }
franta-hg@1
    81
    
franta-hg@1
    82
    /**
franta-hg@1
    83
     * Setter for property xAxisLabel.
franta-hg@1
    84
     * @param xAxisLabel New value of property xAxisLabel.
franta-hg@1
    85
     */
franta-hg@1
    86
    public void setYaxislabel(String yAxisLabel) {
franta-hg@1
    87
        chartDefinition.setYAxisLabel(yAxisLabel);
franta-hg@1
    88
    }
franta-hg@1
    89
    
franta-hg@1
    90
    public void setBackground(String src) {
franta-hg@1
    91
        String srcFile = pageContext.getServletContext().getRealPath(src);
franta-hg@1
    92
        chartDefinition.setBackground(srcFile);
franta-hg@1
    93
    }
franta-hg@1
    94
    
franta-hg@1
    95
    public void setBackgroundimagealpha(Float alpha) {
franta-hg@1
    96
        chartDefinition.setBackgroundImageAlpha(alpha.floatValue());
franta-hg@1
    97
    }
franta-hg@1
    98
    
franta-hg@1
    99
    public void setAntialias(boolean anti) {
franta-hg@1
   100
        chartDefinition.setAntialias(anti);
franta-hg@1
   101
    }
franta-hg@1
   102
    
franta-hg@1
   103
    /**
franta-hg@1
   104
     * Setter for property legend.
franta-hg@1
   105
     * @param legend New value of property legend.
franta-hg@1
   106
     */
franta-hg@1
   107
    public void setShowlegend(boolean legend) {
franta-hg@1
   108
        chartDefinition.setShowLegend(legend);
franta-hg@1
   109
    }
franta-hg@1
   110
    
franta-hg@1
   111
    /**
franta-hg@1
   112
     * Setter for property legend.
franta-hg@1
   113
     * @param legend New value of property legend.
franta-hg@1
   114
     */
franta-hg@1
   115
    public void setLegendanchor(String anchor) {
franta-hg@1
   116
        if ("north".equalsIgnoreCase(anchor)) {
franta-hg@1
   117
            chartDefinition.setLegendAnchor(ANCHOR_NORTH);
franta-hg@1
   118
        } else if ("south".equalsIgnoreCase(anchor)) {
franta-hg@1
   119
            chartDefinition.setLegendAnchor(ANCHOR_SOUTH);
franta-hg@1
   120
        } else if ("west".equalsIgnoreCase(anchor)) {
franta-hg@1
   121
            chartDefinition.setLegendAnchor(ANCHOR_WEST);
franta-hg@1
   122
        } else if ("east".equalsIgnoreCase(anchor)) {
franta-hg@1
   123
            chartDefinition.setLegendAnchor(ANCHOR_EAST);
franta-hg@1
   124
        }
franta-hg@1
   125
    }
franta-hg@1
   126
    
franta-hg@1
   127
    public void addChartPostProcessor(ChartPostProcessor pp, Map params) {
franta-hg@1
   128
        chartDefinition.addPostProcessor(pp);
franta-hg@1
   129
        chartDefinition.addPostProcessorParams(params);
franta-hg@1
   130
    }
franta-hg@1
   131
    
franta-hg@1
   132
    public void setPaint(Paint paint){
franta-hg@1
   133
        chartDefinition.setPaint(paint);
franta-hg@1
   134
    }
franta-hg@1
   135
franta-hg@1
   136
    /**
franta-hg@1
   137
         * Setter for property type.
franta-hg@1
   138
         * @param type New value of property type.
franta-hg@1
   139
         */
franta-hg@1
   140
    public void setType(String type) {
franta-hg@1
   141
        chartDefinition.setType(type);
franta-hg@1
   142
    }
franta-hg@1
   143
    
franta-hg@1
   144
}