java/cewolf-1.0/src/main/java/de/laures/cewolf/taglib/util/PageUtils.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 the License, or (at your option) any later version.
franta-hg@1
    13
 *
franta-hg@1
    14
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
franta-hg@1
    15
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
franta-hg@1
    16
 * See the GNU Lesser General Public License for more details.
franta-hg@1
    17
 *
franta-hg@1
    18
 * You should have received a copy of the GNU Lesser General Public License along with this
franta-hg@1
    19
 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
franta-hg@1
    20
 * Boston, MA 02111-1307, USA.
franta-hg@1
    21
 */
franta-hg@1
    22
franta-hg@1
    23
package de.laures.cewolf.taglib.util;
franta-hg@1
    24
franta-hg@1
    25
import javax.servlet.jsp.PageContext;
franta-hg@1
    26
import javax.servlet.jsp.tagext.Tag;
franta-hg@1
    27
franta-hg@1
    28
import org.jfree.data.general.Dataset;
franta-hg@1
    29
franta-hg@1
    30
import de.laures.cewolf.ChartHolder;
franta-hg@1
    31
import de.laures.cewolf.DatasetProduceException;
franta-hg@1
    32
import de.laures.cewolf.taglib.tags.CewolfRootTag;
franta-hg@1
    33
franta-hg@1
    34
/**
franta-hg@1
    35
 * Helper class to easily retrieve some objects of page context.
franta-hg@1
    36
 * @author  glaures
franta-hg@1
    37
 */
franta-hg@1
    38
public class PageUtils {
franta-hg@1
    39
    
franta-hg@1
    40
    private final static String TOOLTIPS_ENABLED_ATTR = PageUtils.class.getName() + ".ttenabled";
franta-hg@1
    41
    
franta-hg@1
    42
    /** Creates a new instance of ChartDefinitionFactory */
franta-hg@1
    43
    private PageUtils() {}
franta-hg@1
    44
    
franta-hg@1
    45
    public static ChartHolder getChartHolder(String chartId, PageContext ctx){
franta-hg@1
    46
        return (ChartHolder)ctx.getAttribute(chartId, PageContext.PAGE_SCOPE);
franta-hg@1
    47
    }
franta-hg@1
    48
    
franta-hg@1
    49
    public static final ChartHolder getChartHolder(Tag tag, PageContext ctx){
franta-hg@1
    50
        CewolfRootTag root = findRoot(tag, ctx);
franta-hg@1
    51
        if(root instanceof ChartHolder){
franta-hg@1
    52
            return (ChartHolder)root;
franta-hg@1
    53
        } else {
franta-hg@1
    54
            return getChartHolder(root.getChartId(), ctx);
franta-hg@1
    55
        }
franta-hg@1
    56
    }
franta-hg@1
    57
    
franta-hg@1
    58
    public static final Dataset getDataset(String chartId, PageContext ctx) throws DatasetProduceException {
franta-hg@1
    59
        return (Dataset) getChartHolder(chartId, ctx).getDataset();
franta-hg@1
    60
    }
franta-hg@1
    61
franta-hg@1
    62
    public static final CewolfRootTag findRoot(Tag t, PageContext ctx){
franta-hg@1
    63
        Tag res = t;
franta-hg@1
    64
        while(!(res instanceof CewolfRootTag)){
franta-hg@1
    65
            res = res.getParent();
franta-hg@1
    66
        }
franta-hg@1
    67
        return (CewolfRootTag)res;
franta-hg@1
    68
    }
franta-hg@1
    69
    
franta-hg@1
    70
    public static final void setToolTipsEnabled(PageContext ctx){
franta-hg@1
    71
        if(!isToolTipsEnabled(ctx)){
franta-hg@1
    72
            ctx.setAttribute(TOOLTIPS_ENABLED_ATTR, "true", PageContext.PAGE_SCOPE);
franta-hg@1
    73
        }
franta-hg@1
    74
    }
franta-hg@1
    75
    
franta-hg@1
    76
    public static final boolean isToolTipsEnabled(PageContext ctx){
franta-hg@1
    77
        return ctx.getAttribute(TOOLTIPS_ENABLED_ATTR, PageContext.PAGE_SCOPE) != null;
franta-hg@1
    78
    }
franta-hg@1
    79
    
franta-hg@1
    80
}