Package org.jfree.data.general

Examples of org.jfree.data.general.PieDataset


                            int section,
                            Rectangle2D dataArea,
                            PiePlotState state,
                            int currentPass) {
   
        PieDataset dataset = getDataset();
        Number n = dataset.getValue(section);
        if (n == null) {
            return;  
        }
        double value = n.doubleValue();
        double angle1 = 0.0;
        double angle2 = 0.0;
       
        Rotation direction = getDirection();
        if (direction == Rotation.CLOCKWISE) {
            angle1 = state.getLatestAngle();
            angle2 = angle1 - value / state.getTotal() * 360.0;
        }
        else if (direction == Rotation.ANTICLOCKWISE) {
            angle1 = state.getLatestAngle();
            angle2 = angle1 + value / state.getTotal() * 360.0;        
        }
        else {
            throw new IllegalStateException("Rotation type not recognised.");  
        }
       
        double angle = (angle2 - angle1);
        if (Math.abs(angle) > getMinimumArcAngleToDraw()) {
            double ep = 0.0;
            double mep = getMaximumExplodePercent();
            if (mep > 0.0) {
                ep = getExplodePercent(section) / mep;               
            }
            Rectangle2D arcBounds = getArcBounds(
                state.getPieArea(), state.getExplodedPieArea(),
                angle1, angle, ep
            );           
            Arc2D.Double arc = new Arc2D.Double(
                arcBounds, angle1, angle, Arc2D.OPEN
            );

            // create the bounds for the inner arc
            RectangleInsets s = new RectangleInsets(
                UnitType.RELATIVE, 0.10, 0.10, 0.10, 0.10
            );
            Rectangle2D innerArcBounds = new Rectangle2D.Double();
            innerArcBounds.setRect(arcBounds);
            s.trim(innerArcBounds);
            // calculate inner arc in reverse direction, for later
            // GeneralPath construction
            Arc2D.Double arc2 = new Arc2D.Double(
                innerArcBounds, angle1 + angle, -angle, Arc2D.OPEN
            );
            GeneralPath path = new GeneralPath();
            path.moveTo(
                (float) arc.getStartPoint().getX(),
                (float) arc.getStartPoint().getY()
            );
            path.append(arc.getPathIterator(null), false);
            path.append(arc2.getPathIterator(null), true);
            path.closePath();
           
            Line2D separator = new Line2D.Double(
                arc2.getEndPoint(), arc.getStartPoint()
            );
           
            if (currentPass == 0) {
                Paint shadowPaint = getShadowPaint();
                double shadowXOffset = getShadowXOffset();
                double shadowYOffset = getShadowYOffset();
                if (shadowPaint != null) {
                    Shape shadowArc = ShapeUtilities.createTranslatedShape(
                        path, (float) shadowXOffset, (float) shadowYOffset
                    );
                    g2.setPaint(shadowPaint);
                    g2.fill(shadowArc);
                }
            }
            else if (currentPass == 1) {

                Paint paint = getSectionPaint(section);
                g2.setPaint(paint);
                g2.fill(path);
                Paint outlinePaint = getSectionOutlinePaint(section);
                Stroke outlineStroke = getSectionOutlineStroke(section);
                if (outlinePaint != null && outlineStroke != null) {
                    g2.setPaint(outlinePaint);
                    g2.setStroke(outlineStroke);
                    g2.draw(path);
                }
               
                if (this.separatorsVisible) {
                    Line2D extendedSeparator = extendLine(
                        separator, this.innerSeparatorExtension,
                        this.innerSeparatorExtension
                    )
                    g2.setStroke(this.separatorStroke);
                    g2.setPaint(this.separatorPaint);
                    g2.draw(extendedSeparator);
                }
               
                // add an entity for the pie section
                if (state.getInfo() != null) {
                    EntityCollection entities = state.getEntityCollection();
                    if (entities != null) {
                        Comparable key = dataset.getKey(section);
                        String tip = null;
                        PieToolTipGenerator toolTipGenerator
                            = getToolTipGenerator();
                        if (toolTipGenerator != null) {
                            tip = toolTipGenerator.generateToolTip(
View Full Code Here


            else {
                title = this.dataset.getColumnKey(pieIndex).toString();
            }
            this.pieChart.setTitle(title);
           
            PieDataset piedataset = null;
            PieDataset dd = new CategoryToPieDataset(
                this.dataset, this.dataExtractOrder, pieIndex
            );
            if (this.limit > 0.0) {
                piedataset = DatasetUtilities.createConsolidatedPieDataset(
                    dd, "Other", this.limit
View Full Code Here

TOP

Related Classes of org.jfree.data.general.PieDataset

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.