KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > calipso > reportgenerator > userinterface > dinamicchart > ChartMetricsSelection


1 package com.calipso.reportgenerator.userinterface.dinamicchart;
2
3 import com.calipso.reportgenerator.common.ReportMetricSpec;
4 import javax.swing.*;
5 import java.util.HashMap JavaDoc;
6 import java.util.Iterator JavaDoc;
7 import java.awt.*;
8 import java.awt.event.ItemListener JavaDoc;
9 import java.awt.event.ItemEvent JavaDoc;
10
11 /**
12  *
13  * User: soliveri
14  * Date: Aug 8, 2003
15  * Time: 1:47:25 PM
16  *
17  */

18 public class ChartMetricsSelection extends JPanel implements ItemListener JavaDoc{
19
20   private ChartPivotTableManager manager = ChartPivotTableManager.getManager();
21   private HashMap JavaDoc metricsValues;
22
23   public ChartMetricsSelection(Object JavaDoc [] metrics) {
24     setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
25     fillPanel(metrics);
26   }
27
28   private void fillPanel(Object JavaDoc [] metrics) {
29     for(int i = 0 ; i < metrics.length ; i++) {
30       ReportMetricSpec metricSpec = (ReportMetricSpec) metrics[i];
31       JCheckBox checkBox = new JCheckBox(metricSpec.getCaption(), metricSpec.getVisible());
32       checkBox.setFont(new Font("Arial", Font.ROMAN_BASELINE, 11));
33       checkBox.setName(metricSpec.getName());
34       checkBox.addItemListener(this);
35       getMetrics().put(metricSpec.getName(), checkBox);
36       add(checkBox);
37     }
38   }
39
40   public void itemStateChanged(ItemEvent JavaDoc e) {
41     Iterator JavaDoc iterator = getMetrics().keySet().iterator();
42     while(iterator.hasNext()) {
43       JCheckBox box = (JCheckBox) getMetrics().get(iterator.next());
44       if(e.getSource() == box) {
45         manager.metricStateChanged(box.getName(), box.isSelected());
46         break;
47       }
48     }
49   }
50
51   private HashMap JavaDoc getMetrics() {
52     if(metricsValues == null) {
53       metricsValues = new HashMap JavaDoc();
54     }
55     return metricsValues;
56   }
57 }
58
Popular Tags