001    /**
002     * Created by IntelliJ IDEA.
003     * User: Wei Wang
004     * Date: Nov 28, 2002
005     * Time: 10:23:35 AM
006     */
007    
008    package EVolve.visualization.XYViz.ValRefViz;
009    
010    import EVolve.visualization.*;
011    import EVolve.util.Painters.BarChartPainter;
012    import EVolve.data.*;
013    import javax.swing.*;
014    
015    public class BarChartViz extends ValueReferenceVisualization{
016        private static JMenuItem selectionMenu[] = null;
017        private JMenuItem itemSelectOccurredEntities;
018    
019        public void makeSelection() {
020            int y1 = ((AxesPanel)panel).getEndY();
021            int y2 = ((AxesPanel)panel).getStartY();
022    
023            if (!normalOrientation) {
024                y1 = ((AxesPanel)panel).getStartX();
025                y2 = ((AxesPanel)panel).getEndX();
026            }
027    
028            if (y1 < 0) {
029                y1 = 0;
030            }
031    
032            if (y2 > (yAxis.getEntityNumber() - 1)) {
033                y2 = yAxis.getEntityNumber() - 1;
034            }
035    
036            int[] selection = new int[y2 - y1 + 1];
037            for (int i = y1; i <= y2; i++) {
038                selection[i - y1] = i;
039            }
040    
041            yAxis.makeSelection(selection);
042        }
043    
044        public void preVisualize() {
045            image = new AutoImage();
046            installPainter();
047        }
048    
049        public void receiveElement(Element element) {
050            if (element.getField()[element.getField().length-1] == Integer.MAX_VALUE)
051                return;
052    
053            int y = yAxis.getField(element);
054            int v = xAxis.getField(element);
055            painter.paint(image,v,y,0);
056    
057        }
058    
059        public void visualize() {
060            xMax = ((BarChartPainter)painter).getxMax();
061    
062            yAxis.addComparator(new ValueComparator("Value", false, ((BarChartPainter)painter).getValue()));
063            sort();
064        }
065    
066        protected void installPainter() {
067            painter = new BarChartPainter(yAxis.getMaxEntityNumber());
068        }
069    
070        public JMenuItem[] createSelectionMenuItem() {
071            if (selectionMenu != null) return selectionMenu;
072    
073            itemSelectOccurredEntities = new JCheckBoxMenuItem("Occurred Entities");
074            itemSelectOccurredEntities.setSelected(true);
075            itemSelectOccurredEntities.setEnabled(false);
076    
077            selectionMenu = new JMenuItem[1];
078            selectionMenu[0] = itemSelectOccurredEntities;
079    
080            return selectionMenu;
081        }
082    }