⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 barrenderer.java

📁 这是一个segy数据显示程序
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                }                CategoryItemEntity entity = new CategoryItemEntity(                    bar, tip, url, dataset, row, dataset.getColumnKey(column), column                );                entities.addEntity(entity);            }        }    }    /**     * Calculates the available space for each series.     *      * @param space  the space along the entire axis (in Java2D units).     * @param axis  the category axis.     * @param categories  the number of categories.     * @param series  the number of series.     *      * @return  the width of one series.     */    protected double calculateSeriesWidth(double space, CategoryAxis axis,                                           int categories, int series) {        double factor = 1.0 - getItemMargin() - axis.getLowerMargin() - axis.getUpperMargin();        if (categories > 1) {            factor = factor - axis.getCategoryMargin();        }        return (space * factor) / (categories * series);    }        /**     * Draws an item label.  This method is overridden so that the bar can be used     * to calculate the label anchor point.     *      * @param g2  the graphics device.     * @param data  the dataset.     * @param row  the row.     * @param column  the column.     * @param plot  the plot.     * @param generator  the label generator.     * @param bar  the bar.     * @param negative  a flag indicating a negative value.     */    protected void drawItemLabel(Graphics2D g2,                                 CategoryDataset data,                                 int row,                                 int column,                                 CategoryPlot plot,                                 CategoryLabelGenerator generator,                                 Rectangle2D bar,                                 boolean negative) {                                             String label = generator.generateLabel(data, row, column);        if (label == null) {            return;  // nothing to do           }                Font labelFont = getItemLabelFont(row, column);        g2.setFont(labelFont);        Paint paint = getItemLabelPaint(row, column);        g2.setPaint(paint);        // find out where to place the label...        ItemLabelPosition position = null;        if (!negative) {            position = getPositiveItemLabelPosition(row, column);        }        else {            position = getNegativeItemLabelPosition(row, column);        }        // work out the label anchor point...        Point2D anchorPoint = calculateLabelAnchorPoint(            position.getItemLabelAnchor(), bar, plot.getOrientation()        );                if (isInternalAnchor(position.getItemLabelAnchor())) {            Shape bounds = RefineryUtilities.calculateRotatedStringBounds(                label, g2,                (float) anchorPoint.getX(),                (float) anchorPoint.getY(),                position.getTextAnchor(),                 position.getRotationAnchor(),                 position.getAngle()            );                        if (bounds != null) {                if (!bar.contains(bounds.getBounds2D())) {                    if (!negative) {                        position = getPositiveItemLabelPositionFallback();                    }                    else {                        position = getNegativeItemLabelPositionFallback();                    }                    if (position != null) {                        anchorPoint = calculateLabelAnchorPoint(                            position.getItemLabelAnchor(), bar, plot.getOrientation()                        );                    }                }            }                }                if (position != null) {            RefineryUtilities.drawRotatedString(                label, g2, (float) anchorPoint.getX(), (float) anchorPoint.getY(),                position.getTextAnchor(), position.getRotationAnchor(), position.getAngle()            );        }            }        /**     * Calculates the item label anchor point.     *     * @param anchor  the anchor.     * @param bar  the bar.     * @param orientation  the plot orientation.     *     * @return The anchor point.     */    private Point2D calculateLabelAnchorPoint(ItemLabelAnchor anchor,                                              Rectangle2D bar, PlotOrientation orientation) {        Point2D result = null;        double offset = getItemLabelAnchorOffset();        double x0 = bar.getX() - offset;        double x1 = bar.getX();        double x2 = bar.getX() + offset;        double x3 = bar.getCenterX();        double x4 = bar.getMaxX() - offset;        double x5 = bar.getMaxX();        double x6 = bar.getMaxX() + offset;        double y0 = bar.getMaxY() + offset;        double y1 = bar.getMaxY();        double y2 = bar.getMaxY() - offset;        double y3 = bar.getCenterY();        double y4 = bar.getMinY() + offset;        double y5 = bar.getMinY();        double y6 = bar.getMinY() - offset;        if (anchor == ItemLabelAnchor.CENTER) {            result = new Point2D.Double(x3, y3);        }        else if (anchor == ItemLabelAnchor.INSIDE1) {            result = new Point2D.Double(x4, y4);        }        else if (anchor == ItemLabelAnchor.INSIDE2) {            result = new Point2D.Double(x4, y4);        }        else if (anchor == ItemLabelAnchor.INSIDE3) {            result = new Point2D.Double(x4, y3);        }        else if (anchor == ItemLabelAnchor.INSIDE4) {            result = new Point2D.Double(x4, y2);        }        else if (anchor == ItemLabelAnchor.INSIDE5) {            result = new Point2D.Double(x4, y2);        }        else if (anchor == ItemLabelAnchor.INSIDE6) {            result = new Point2D.Double(x3, y2);        }        else if (anchor == ItemLabelAnchor.INSIDE7) {            result = new Point2D.Double(x2, y2);        }        else if (anchor == ItemLabelAnchor.INSIDE8) {            result = new Point2D.Double(x2, y2);        }        else if (anchor == ItemLabelAnchor.INSIDE9) {            result = new Point2D.Double(x2, y3);        }        else if (anchor == ItemLabelAnchor.INSIDE10) {            result = new Point2D.Double(x2, y4);        }        else if (anchor == ItemLabelAnchor.INSIDE11) {            result = new Point2D.Double(x2, y4);        }        else if (anchor == ItemLabelAnchor.INSIDE12) {            result = new Point2D.Double(x3, y4);        }        else if (anchor == ItemLabelAnchor.OUTSIDE1) {            result = new Point2D.Double(x5, y6);        }        else if (anchor == ItemLabelAnchor.OUTSIDE2) {            result = new Point2D.Double(x6, y5);        }        else if (anchor == ItemLabelAnchor.OUTSIDE3) {            result = new Point2D.Double(x6, y3);        }        else if (anchor == ItemLabelAnchor.OUTSIDE4) {            result = new Point2D.Double(x6, y1);        }        else if (anchor == ItemLabelAnchor.OUTSIDE5) {            result = new Point2D.Double(x5, y0);        }        else if (anchor == ItemLabelAnchor.OUTSIDE6) {            result = new Point2D.Double(x3, y0);        }        else if (anchor == ItemLabelAnchor.OUTSIDE7) {            result = new Point2D.Double(x1, y0);        }        else if (anchor == ItemLabelAnchor.OUTSIDE8) {            result = new Point2D.Double(x0, y1);        }        else if (anchor == ItemLabelAnchor.OUTSIDE9) {            result = new Point2D.Double(x0, y3);        }        else if (anchor == ItemLabelAnchor.OUTSIDE10) {            result = new Point2D.Double(x0, y5);        }        else if (anchor == ItemLabelAnchor.OUTSIDE11) {            result = new Point2D.Double(x1, y6);        }        else if (anchor == ItemLabelAnchor.OUTSIDE12) {            result = new Point2D.Double(x3, y6);        }        return result;    }        /**     * Returns <code>true</code> if the specified anchor point is inside a bar.     *      * @param anchor  the anchor point.     *      * @return A boolean.     */    private boolean isInternalAnchor(ItemLabelAnchor anchor) {        return anchor == ItemLabelAnchor.CENTER                || anchor == ItemLabelAnchor.INSIDE1               || anchor == ItemLabelAnchor.INSIDE2               || anchor == ItemLabelAnchor.INSIDE3               || anchor == ItemLabelAnchor.INSIDE4               || anchor == ItemLabelAnchor.INSIDE5               || anchor == ItemLabelAnchor.INSIDE6               || anchor == ItemLabelAnchor.INSIDE7               || anchor == ItemLabelAnchor.INSIDE8               || anchor == ItemLabelAnchor.INSIDE9               || anchor == ItemLabelAnchor.INSIDE10               || anchor == ItemLabelAnchor.INSIDE11               || anchor == ItemLabelAnchor.INSIDE12;      }        /**     * Tests this instance for equality with an arbitrary object.     *      * @param object  the object (<code>null</code> permitted).     *      * @return A boolean.     */    public boolean equals(Object object) {                if (object == null) {            return false;        }                if (object == this) {            return true;        }                if (super.equals(object) && (object instanceof BarRenderer)) {            BarRenderer r = (BarRenderer) object;            boolean b0 = (this.itemMargin == r.itemMargin);                          boolean b1 = (this.drawBarOutline == r.drawBarOutline);            boolean b2 = (this.maxBarWidth == r.maxBarWidth);            boolean b3 = (this.minimumBarLength == r.minimumBarLength);            boolean b4 = ObjectUtils.equal(                this.gradientPaintTransformer, r.gradientPaintTransformer            );            boolean b5 = ObjectUtils.equal(                this.positiveItemLabelPositionFallback, r.positiveItemLabelPositionFallback            );            boolean b6 = ObjectUtils.equal(                this.negativeItemLabelPositionFallback, r.negativeItemLabelPositionFallback            );            return b0 && b1 && b2 && b3 && b4 && b5 && b6;                    }                return false;            }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -