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 }