Chart.java |
/* * Copyright 2002 Sun Microsystems, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistribution in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * Neither the name of Sun Microsystems, Inc. or the names of * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * This software is provided "AS IS," without a warranty of any * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR * DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN * OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. * * You acknowledge that Software is not designed, licensed or intended * for use in the design, construction, operation or maintenance of * any nuclear facility. */ package com.sun.j2ee.blueprints.admin.client; import java.awt.*; import java.awt.image.*; import javax.swing.*; /** * Abstract class used for defining various charts in this application. * * @author Joshua Outwater */ public abstract class Chart extends JPanel { /** * List of colors that can be used by the various charts. */ public static final Color colorList[] = { new Color(170, 170, 178), new Color(170, 139, 232), new Color(229, 223, 129), new Color(136, 184, 224), new Color(142, 232, 158) }; protected float totalRevenue = 0f; protected int totalOrders = 0; protected DataSource.ChartModel chartModel; /** * Creates a new instance of the Chart class with the specified data model. * * @param chartModel The model to use for retrieving data. * @param width Width of the chart. * @param height Height of the chart. */ public Chart(DataSource.ChartModel chartModel) { setBackground(new Color(196, 194, 195)); this.chartModel = chartModel; } protected abstract void renderChart(Graphics2D g2); protected void calculateTotals() { String keys[] = chartModel.getKeys(); if (keys == null) { return; } totalRevenue = 0f; totalOrders = 0; for (int i = 0; i < keys.length; i++) { totalRevenue += chartModel.getRevenue(keys[i]); totalOrders += chartModel.getOrders(keys[i]); } } public void paintComponent(Graphics g) { super.paintComponent(g); if (!(g instanceof Graphics2D)) { return; } Graphics2D g2 = (Graphics2D)g; renderChart(g2); } }
Chart.java |