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

📄 waterfallbarrenderer.java

📁 这是一个segy数据显示程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     * @param dataArea  the data area.     * @param plot  the plot.     * @param domainAxis  the domain axis.     * @param rangeAxis  the range axis.     * @param dataset  the dataset.     * @param row  the row index (zero-based).     * @param column  the column index (zero-based).     */    public void drawItem(Graphics2D g2,                         CategoryItemRendererState state,                         Rectangle2D dataArea,                         CategoryPlot plot,                         CategoryAxis domainAxis,                         ValueAxis rangeAxis,                         CategoryDataset dataset,                         int row,                         int column) {        double previous = state.getSeriesRunningTotal();        if (column == dataset.getColumnCount() - 1) {            previous = 0.0;        }        double current = 0.0;        Number n = dataset.getValue(row, column);        if (n != null) {            current = previous + n.doubleValue();        }        state.setSeriesRunningTotal(current);                int seriesCount = getRowCount();        int categoryCount = getColumnCount();        PlotOrientation orientation = plot.getOrientation();                double rectX = 0.0;        double rectY = 0.0;        RectangleEdge domainAxisLocation = plot.getDomainAxisEdge();        RectangleEdge rangeAxisLocation = plot.getRangeAxisEdge();                // Y0        double j2dy0 = rangeAxis.valueToJava2D(previous, dataArea, rangeAxisLocation);        // Y1        double j2dy1 = rangeAxis.valueToJava2D(current, dataArea, rangeAxisLocation);        double valDiff = current - previous;        if (j2dy1 < j2dy0) {            double temp = j2dy1;            j2dy1 = j2dy0;            j2dy0 = temp;        }        // BAR WIDTH        double rectWidth = state.getBarWidth();        // BAR HEIGHT        double rectHeight = Math.max(getMinimumBarLength(), Math.abs(j2dy1 - j2dy0));        if (orientation == PlotOrientation.HORIZONTAL) {            // BAR Y            rectY = domainAxis.getCategoryStart(column, getColumnCount(), dataArea,                                                 domainAxisLocation);            if (seriesCount > 1) {                double seriesGap = dataArea.getHeight() * getItemMargin()                                   / (categoryCount * (seriesCount - 1));                rectY = rectY + row * (state.getBarWidth() + seriesGap);            }            else {                rectY = rectY + row * state.getBarWidth();            }                         rectX = j2dy0;            rectHeight = state.getBarWidth();            rectWidth = Math.max(getMinimumBarLength(), Math.abs(j2dy1 - j2dy0));        }        else if (orientation == PlotOrientation.VERTICAL) {            // BAR X            rectX = domainAxis.getCategoryStart(column, getColumnCount(), dataArea,                                                domainAxisLocation);            if (seriesCount > 1) {                double seriesGap = dataArea.getWidth() * getItemMargin()                                   / (categoryCount * (seriesCount - 1));                rectX = rectX + row * (state.getBarWidth() + seriesGap);            }            else {                rectX = rectX + row * state.getBarWidth();            }            rectY = j2dy0;        }        Rectangle2D bar = new Rectangle2D.Double(rectX, rectY, rectWidth, rectHeight);        Paint seriesPaint = getFirstBarPaint();        if (column == 0) {            seriesPaint = getFirstBarPaint();        }        else if (column == categoryCount - 1) {            seriesPaint = getLastBarPaint();            }         else {            if (valDiff < 0.0) {                seriesPaint = getNegativeBarPaint();            }             else if (valDiff > 0.0) {                seriesPaint = getPositiveBarPaint();            }             else {                seriesPaint = getLastBarPaint();            }        }        if (getGradientPaintTransformer() != null && seriesPaint instanceof GradientPaint) {            GradientPaint gp = (GradientPaint) seriesPaint;            seriesPaint = getGradientPaintTransformer().transform(gp, bar);        }        g2.setPaint(seriesPaint);        g2.fill(bar);                // draw the outline...        if (isDrawBarOutline() && state.getBarWidth() > BAR_OUTLINE_WIDTH_THRESHOLD) {            Stroke stroke = getItemOutlineStroke(row, column);            Paint paint = getItemOutlinePaint(row, column);            if (stroke != null && paint != null) {                g2.setStroke(stroke);                g2.setPaint(paint);                g2.draw(bar);            }        }                CategoryLabelGenerator generator = getLabelGenerator(row, column);        if (generator != null && isItemLabelVisible(row, column)) {            drawItemLabel(g2, dataset, row, column, plot, generator, bar, (valDiff < 0.0));        }                // collect entity and tool tip information...        if (state.getInfo() != null) {            EntityCollection entities = state.getInfo().getOwner().getEntityCollection();            if (entities != null) {                String tip = null;                CategoryToolTipGenerator tipster = getToolTipGenerator(row, column);                if (tipster != null) {                    tip = tipster.generateToolTip(dataset, row, column);                }                String url = null;                if (getItemURLGenerator(row, column) != null) {                    url = getItemURLGenerator(row, column).generateURL(dataset, row, column);                }                CategoryItemEntity entity = new CategoryItemEntity(                    bar, tip, url, dataset, row, dataset.getColumnKey(column), column                );                entities.addEntity(entity);            }        }    }        /**     * Tests an object for equality with this instance.     *      * @param object  the object.     *      * @return A boolean.     */    public boolean equals(Object object) {                if (object == null) {            return false;        }                if (object == this) {            return true;        }                if (super.equals(object) && (object instanceof WaterfallBarRenderer)) {            WaterfallBarRenderer r = (WaterfallBarRenderer) object;            boolean b0 = PaintUtils.equal(this.firstBarPaint, r.firstBarPaint);                          boolean b1 = PaintUtils.equal(this.lastBarPaint, r.lastBarPaint);                          boolean b2 = PaintUtils.equal(this.positiveBarPaint, r.positiveBarPaint);                          boolean b3 = PaintUtils.equal(this.negativeBarPaint, r.negativeBarPaint);                          return b0 && b1 && b2 && b3;        }                return false;            }        /**     * Provides serialization support.     *     * @param stream  the output stream.     *     * @throws IOException  if there is an I/O error.     */    private void writeObject(ObjectOutputStream stream) throws IOException {        stream.defaultWriteObject();        SerialUtilities.writePaint(this.firstBarPaint, stream);        SerialUtilities.writePaint(this.lastBarPaint, stream);        SerialUtilities.writePaint(this.positiveBarPaint, stream);        SerialUtilities.writePaint(this.negativeBarPaint, stream);    }    /**     * Provides serialization support.     *     * @param stream  the input stream.     *     * @throws IOException  if there is an I/O error.     * @throws ClassNotFoundException  if there is a classpath problem.     */    private void readObject(ObjectInputStream stream) throws IOException, ClassNotFoundException {        stream.defaultReadObject();        this.firstBarPaint = SerialUtilities.readPaint(stream);        this.lastBarPaint = SerialUtilities.readPaint(stream);        this.positiveBarPaint = SerialUtilities.readPaint(stream);        this.negativeBarPaint = SerialUtilities.readPaint(stream);    }}

⌨️ 快捷键说明

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