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 }