亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? blockcontainer.java

?? jfreechart1.0.1 jsp繪制圖表的開發包
?? JAVA
字號:
/* ===========================================================
 * JFreeChart : a free chart library for the Java(tm) platform
 * ===========================================================
 *
 * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors.
 *
 * Project Info:  http://www.jfree.org/jfreechart/index.html
 *
 * This library is free software; you can redistribute it and/or modify it 
 * under the terms of the GNU Lesser General Public License as published by 
 * the Free Software Foundation; either version 2.1 of the License, or 
 * (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful, but 
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 
 * License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
 * USA.  
 *
 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 
 * in the United States and other countries.]
 * 
 * -------------------
 * BlockContainer.java
 * -------------------
 * (C) Copyright 2004, 2005, by Object Refinery Limited.
 *
 * Original Author:  David Gilbert (for Object Refinery Limited);
 * Contributor(s):   -;
 *
 * $Id: BlockContainer.java,v 1.11.2.1 2005/10/25 20:39:38 mungady Exp $
 *
 * Changes:
 * --------
 * 22-Oct-2004 : Version 1 (DG);
 * 02-Feb-2005 : Added isEmpty() method (DG);
 * 04-Feb-2005 : Added equals(), clone() and implemented Serializable (DG);
 * 08-Feb-2005 : Updated for changes in RectangleConstraint (DG);
 * 20-Apr-2005 : Added new draw() method (DG);
 * 
 */

package org.jfree.chart.block;

import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;

import org.jfree.chart.entity.EntityCollection;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.ui.Size2D;
import org.jfree.util.PublicCloneable;

/**
 * A container for a collection of {@link Block} objects.  The container uses 
 * an {@link Arrangement} object to handle the position of each block.
 */
public class BlockContainer extends AbstractBlock 
                            implements Block, 
                                       Cloneable, PublicCloneable,
                                       Serializable {

    /** For serialization. */
    private static final long serialVersionUID = 8199508075695195293L;
    
    /** The blocks within the container. */
    private List blocks;
    
    /** The object responsible for laying out the blocks. */
    private Arrangement arrangement;
    
    /**
     * Creates a new instance with default settings.
     */
    public BlockContainer() {
        this(new BorderArrangement());
    }
    
    /**
     * Creates a new instance with the specified arrangement.
     * 
     * @param arrangement  the arrangement manager (<code>null</code> not 
     *                     permitted).
     */
    public BlockContainer(Arrangement arrangement) {
        if (arrangement == null) {
            throw new IllegalArgumentException("Null 'arrangement' argument.");
        }
        this.arrangement = arrangement;
        this.blocks = new ArrayList();
    }    

    /**
     * Returns the arrangement (layout) manager for the container.
     * 
     * @return The arrangement manager (never <code>null</code>).
     */
    public Arrangement getArrangement() {
        return this.arrangement;    
    }
    
    /**
     * Sets the arrangement (layout) manager.
     * 
     * @param arrangement  the arrangement (<code>null</code> not permitted).
     */
    public void setArrangement(Arrangement arrangement) {
        if (arrangement == null) {
            throw new IllegalArgumentException("Null 'arrangement' argument.");
        }
        this.arrangement = arrangement;   
    }
    
    /**
     * Returns <code>true</code> if there are no blocks in the container, and
     * <code>false</code> otherwise.
     * 
     * @return A boolean.
     */
    public boolean isEmpty() {
        return this.blocks.isEmpty();   
    }
    
    /**
     * Returns an unmodifiable list of the {@link Block} objects managed by 
     * this arrangement.
     * 
     * @return A list of blocks.
     */
    public List getBlocks() {
        return Collections.unmodifiableList(this.blocks);
    }
    
    /**
     * Adds a block to the container.
     * 
     * @param block  the block (<code>null</code> permitted).
     */
    public void add(Block block) {
        add(block, null);
    }
    
    /**
     * Adds a block to the container.
     * 
     * @param block  the block (<code>null</code> permitted).
     * @param key  the key (<code>null</code> permitted).
     */
    public void add(Block block, Object key) {
        this.blocks.add(block);
        this.arrangement.add(block, key);
    }
    
    /**
     * Clears all the blocks from the container.
     */
    public void clear() {
        this.blocks.clear();
        this.arrangement.clear();
    }
    
    /**
     * Arranges the contents of the block, within the given constraints, and 
     * returns the block size.
     * 
     * @param g2  the graphics device.
     * @param constraint  the constraint (<code>null</code> not permitted).
     * 
     * @return The block size (in Java2D units, never <code>null</code>).
     */
    public Size2D arrange(Graphics2D g2, RectangleConstraint constraint) {
        return this.arrangement.arrange(this, g2, constraint);
    }

    /**
     * Draws the container and all the blocks within it.
     * 
     * @param g2  the graphics device.
     * @param area  the area.
     */
    public void draw(Graphics2D g2, Rectangle2D area) {
        draw(g2, area, null);
    }
    
    /**
     * Draws the block within the specified area.
     * 
     * @param g2  the graphics device.
     * @param area  the area.
     * @param params  passed on to blocks within the container 
     *                (<code>null</code> permitted).
     * 
     * @return An instance of {@link EntityBlockResult}, or <code>null</code>.
     */
    public Object draw(Graphics2D g2, Rectangle2D area, Object params) {
        // check if we need to collect chart entities from the container
        EntityBlockParams ebp = null;
        StandardEntityCollection sec = null;
        if (params instanceof EntityBlockParams) {
            ebp = (EntityBlockParams) params;
            if (ebp.getGenerateEntities()) {
                sec = new StandardEntityCollection();   
            }
        }
        Rectangle2D contentArea = (Rectangle2D) area.clone();
        contentArea = trimMargin(contentArea);
        drawBorder(g2, contentArea);
        contentArea = trimBorder(contentArea);
        contentArea = trimPadding(contentArea);
        AffineTransform saved = g2.getTransform();
        g2.translate(contentArea.getX(), contentArea.getY());
        Iterator iterator = this.blocks.iterator();
        while (iterator.hasNext()) {
            Block block = (Block) iterator.next();
            Object r = block.draw(g2, block.getBounds(), params);
            if (sec != null) {
                if (r instanceof EntityBlockResult) {
                    EntityBlockResult ebr = (EntityBlockResult) r;
                    EntityCollection ec = ebr.getEntityCollection();
                    sec.addAll(ec);
                }
            }
        }
        g2.setTransform(saved);
        BlockResult result = null;
        if (sec != null) {
            result = new BlockResult();
            result.setEntityCollection(sec);
        }
        return result;
    }

    /**
     * Tests this container for equality with an arbitrary object.
     * 
     * @param obj  the object (<code>null</code> permitted).
     * 
     * @return A boolean.
     */
    public boolean equals(Object obj) {
        if (obj == this) {
            return true;   
        }
        if (!(obj instanceof BlockContainer)) {
            return false;   
        }
        if (!super.equals(obj)) {
            return false;   
        }
        BlockContainer that = (BlockContainer) obj;
        if (!this.arrangement.equals(that.arrangement)) {
            return false;   
        }
        if (!this.blocks.equals(that.blocks)) {
            return false;   
        }
        return true;
    }
    
    /**
     * Returns a clone of the container.
     * 
     * @return A clone.
     * 
     * @throws CloneNotSupportedException if there is a problem cloning.
     */
    public Object clone() throws CloneNotSupportedException {
        Object clone = (BlockContainer) super.clone();
        // TODO : complete this
        return clone;
    }
    
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品久久一牛影视| 精品福利av导航| 亚洲精选视频在线| 欧美色精品天天在线观看视频| 一区二区三区精品| 欧美日韩免费电影| 精品一区二区三区欧美| 中文字幕在线观看一区二区| 高清久久久久久| 欧美亚洲精品一区| 日本成人在线电影网| 精品国产乱码久久久久久牛牛| 国产成人精品综合在线观看| 成人免费在线观看入口| 欧美这里有精品| 久久国产欧美日韩精品| 亚洲欧洲国产日本综合| 欧美日韩一区中文字幕| 国产综合成人久久大片91| 亚洲四区在线观看| 7777精品伊人久久久大香线蕉最新版 | 国产精品夜夜爽| 自拍偷自拍亚洲精品播放| 欧美美女喷水视频| 国产精品一区二区不卡| 亚洲精品国产a| 日韩你懂的在线播放| 91丨九色丨蝌蚪丨老版| 在线观看一区二区精品视频| 国产一区在线观看视频| 亚洲在线视频免费观看| 久久久精品免费观看| 欧美三级电影精品| 国产成人精品网址| 日本欧美一区二区三区乱码| 中文字幕一区在线| 精品久久人人做人人爱| 在线视频一区二区三区| 国产福利精品导航| 日本不卡在线视频| 亚洲一区在线观看视频| 欧美韩国日本一区| 欧美成人性福生活免费看| 欧美在线色视频| 99久久国产免费看| 狠狠色丁香久久婷婷综合_中| 1区2区3区国产精品| 国产亚洲精品中文字幕| 日韩欧美一区二区三区在线| 一本高清dvd不卡在线观看| 国产精品一区二区在线看| 亚洲国产欧美一区二区三区丁香婷| 亚洲国产精品传媒在线观看| 日韩欧美二区三区| 欧美精选在线播放| 在线亚洲人成电影网站色www| 成人国产精品免费| 国产福利91精品一区| 久久丁香综合五月国产三级网站| 亚洲成人一区在线| 亚洲在线成人精品| 亚洲乱码国产乱码精品精小说| 久久免费视频色| 久久久久久9999| 久久综合色综合88| wwww国产精品欧美| 精品福利av导航| 免费看黄色91| 日韩精品一区第一页| 亚洲一区二区3| 亚洲综合小说图片| 亚洲成年人网站在线观看| 亚洲一区在线观看免费 | 最新成人av在线| 国产精品麻豆99久久久久久| 国产人成一区二区三区影院| 国产亚洲自拍一区| 国产精品久久久久久久久快鸭| 国产三级精品视频| 国产精品午夜电影| 亚洲免费av观看| 亚洲一区在线观看视频| 午夜精品久久久久影视| 日韩国产精品91| 九九精品一区二区| 国产成人免费在线视频| 岛国精品在线观看| 91视频你懂的| 欧美日本在线一区| 精品免费日韩av| 中文天堂在线一区| 亚洲婷婷综合久久一本伊一区| 亚洲精品乱码久久久久久| 亚洲一区影音先锋| 日本午夜精品视频在线观看| 久久99久久久久| 成人性视频免费网站| 一本大道久久a久久综合婷婷| 在线视频一区二区三区| 在线综合视频播放| 久久亚洲二区三区| 亚洲人123区| 日韩经典中文字幕一区| 国产高清精品网站| 91国在线观看| 日韩免费高清电影| 欧美国产一区二区在线观看 | 欧美视频一区二区三区在线观看 | 欧美精品一二三四| 精品成人私密视频| 最新高清无码专区| 蜜臀av一区二区| 99久久久精品免费观看国产蜜| 精品视频一区二区三区免费| 久久亚区不卡日本| 亚洲电影你懂得| 国产精品18久久久久久久网站| 91传媒视频在线播放| 精品盗摄一区二区三区| 亚洲一区自拍偷拍| 国产成人精品一区二区三区网站观看 | 久久亚洲私人国产精品va媚药| 亚洲男人的天堂一区二区| 蜜桃91丨九色丨蝌蚪91桃色| 一本高清dvd不卡在线观看| www国产成人| 丝袜亚洲另类欧美| 91在线视频免费91| 精品国产乱码久久久久久老虎| 亚洲午夜在线视频| 97se狠狠狠综合亚洲狠狠| 精品国产乱码久久久久久蜜臀| 香蕉成人啪国产精品视频综合网| 日韩视频免费直播| 亚洲激情自拍视频| 不卡高清视频专区| 久久亚洲影视婷婷| 久久国产日韩欧美精品| 欧美日韩一区三区四区| **性色生活片久久毛片| 国产黑丝在线一区二区三区| 欧美一区二区在线看| 一区二区三区四区在线免费观看 | 日欧美一区二区| 91国偷自产一区二区三区成为亚洲经典| 欧美一级理论性理论a| 亚洲国产aⅴ成人精品无吗| 不卡在线视频中文字幕| 国产人妖乱国产精品人妖| 精品制服美女丁香| 日韩精品一区二区在线观看| 午夜视频在线观看一区| 欧美系列日韩一区| 一区二区免费看| 91久久精品一区二区| 亚洲免费色视频| 91在线精品秘密一区二区| 欧美激情一区在线| 国产成人超碰人人澡人人澡| 久久精品这里都是精品| 国产精品一级在线| 久久综合网色—综合色88| 国产永久精品大片wwwapp| 欧美精品一区二区三区在线| 国产自产高清不卡| 久久久精品天堂| 国产ts人妖一区二区| 中文字幕精品一区| 99综合影院在线| 一区二区三区在线视频播放 | 制服丝袜激情欧洲亚洲| 婷婷六月综合网| 日韩一区二区三区免费观看| 久久精品999| 久久先锋资源网| 国产成人亚洲综合色影视| 国产精品视频一二| 91麻豆精东视频| 亚洲电影第三页| 精品久久人人做人人爽| 欧美精品一区二区三区蜜桃视频 | 色婷婷激情一区二区三区| 一区二区三区欧美视频| 欧美日韩成人一区二区| 蜜桃视频免费观看一区| 国产片一区二区| 91美女视频网站| 日本不卡中文字幕| 国产亚洲女人久久久久毛片| 91片黄在线观看| 丝袜a∨在线一区二区三区不卡| 日韩视频免费观看高清在线视频| 国产成人综合视频| 亚洲女同一区二区| 91精品国产综合久久久久久| 韩国视频一区二区| 亚洲日穴在线视频| 欧美一区二区三区在线看| 国产成a人亚洲精品| 亚洲mv在线观看|