/*
* -------------------------------------------------------------------------
* $Id: PortfolioPie.java,v 1.4 2004/05/26 18:54:55 estewart Exp $
* -------------------------------------------------------------------------
* Copyright (c) 1999 Visual Numerics Inc. All Rights Reserved.
*
* This software is confidential information which is proprietary to
* and a trade secret of Visual Numerics, Inc. Use, duplication or
* disclosure is subject to the terms of an appropriate license
* agreement.
*
* VISUAL NUMERICS MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE
* SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING
* BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. VISUAL
* NUMERICS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE
* AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR
* ITS DERIVATIVES.
*--------------------------------------------------------------------------
*/
package com.imsl.demo.risk;
import com.imsl.chart.*;
/**
*
* @author brophy
* @created February 1, 2002
*/
public class PortfolioPie extends javax.swing.JDialog {
static private final String COLORS[] = {"red", "green", "yellow", "blue", "gray"};
private JPanelChart jPanelChart;
private Pie pie;
/** Creates new form PortfolioPie */
public PortfolioPie(java.awt.Frame parent) {
super(parent, false);
initComponents();
setLocation(200, 0);
jPanelChart = new JPanelChart();
jPanelChart.setPreferredSize(new java.awt.Dimension(225,225));
getContentPane().add(jPanelChart);
}
void update(String tickers[], double values[]) {
if (pie != null) pie.remove();
Chart chart = jPanelChart.getChart();
chart.setComponent(this);
int n = 0;
for (int k = 0; k < tickers.length; k++) {
if (values[k] > 0.0) n++;
}
double x[] = new double[n];
n = 0;
for (int k = 0; k < tickers.length; k++) {
if (values[k] > 0.0) x[n++] = values[k];
}
n = 0;
pie = new Pie(chart, x);
pie.setExplode(0.2);
pie.setLabelType(Pie.LABEL_TYPE_TITLE);
for (int k = 0; k < tickers.length; k++) {
if (values[k] > 0.0) {
PieSlice s = pie.getPieSlice(n);
s.setTitle(tickers[k]);
s.setFillColor(COLORS[n]);
n++;
}
}
repaint();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
private void initComponents() {//GEN-BEGIN:initComponents
setTitle("Portfolio");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
closeDialog(evt);
}
});
pack();
}//GEN-END:initComponents
/** Closes the dialog */
private void closeDialog(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_closeDialog
setVisible(false);
dispose();
}//GEN-LAST:event_closeDialog
// Variables declaration - do not modify//GEN-BEGIN:variables
// End of variables declaration//GEN-END:variables
}