1 23 24 package de.progra.charting.model; 25 26 import de.progra.charting.event.ChartDataModelListener; 27 import de.progra.charting.event.ChartDataModelEvent; 28 import javax.swing.event.EventListenerList ; 29 import de.progra.charting.CoordSystem; 30 import java.util.ArrayList ; 31 import java.util.Arrays ; 32 import java.util.TreeSet ; 33 import java.util.Set ; 34 import java.util.HashMap ; 35 36 41 public abstract class AbstractChartDataModel implements ChartDataModel { 42 43 44 protected EventListenerList listener = new EventListenerList (); 45 46 47 protected boolean autoscale = false; 48 49 50 protected boolean manualscale = false; 51 52 53 protected double maxcolumn, mincolumn; 54 55 56 protected Number maxvalue, minvalue; 57 58 59 public AbstractChartDataModel() { 60 } 61 62 65 public void removeChartDataModelListener(ChartDataModelListener l) { 66 listener.remove(ChartDataModelListener.class, l); 67 } 68 69 72 public void addChartDataModelListener(ChartDataModelListener l) { 73 listener.add(ChartDataModelListener.class, l); 74 } 75 76 79 public boolean isColumnNumeric() { 80 return false; 81 } 82 83 88 public void setValueAt(int set, int index, Object value) { 89 } 90 91 94 public Class getColumnClass() { 95 return Object .class; 96 } 97 98 101 public void fireChartDataModelChangedEvent(Object src) { 102 ChartDataModelEvent e = new ChartDataModelEvent(src); 103 Object [] ls = listener.getListenerList(); 104 for (int i = (ls.length - 2); i >= 0; i-=2) { 105 if (ls[i] == ChartDataModelListener.class) { 106 ((ChartDataModelListener)ls[i + 1]).chartDataChanged(e); 107 } 108 } 109 } 110 111 116 public int getAxisBinding(int set) { 117 return CoordSystem.FIRST_YAXIS; 118 } 119 120 124 public void setAxisBinding(int set, int axis) { 125 } 126 127 public void setAutoScale(boolean b) { 128 autoscale = b; 129 } 130 131 public boolean isAutoScale() { 132 return autoscale; 133 } 134 135 139 public void setManualScale(boolean b) { 140 manualscale = b; 141 } 142 143 146 public boolean isManualScale() { 147 return manualscale; 148 } 149 150 151 public void setMaximumColumnValue(double d) { 152 maxcolumn = d; 153 } 154 155 156 public void setMinimumColumnValue(double d) { 157 mincolumn = d; 158 } 159 160 161 public void setMaximumValue(Number n) { 162 maxvalue = n; 163 } 164 165 166 public void setMinimumValue(Number n) { 167 minvalue = n; 168 } 169 170 public double getManualMaximumColumnValue() { 171 return maxcolumn; 172 } 173 174 public double getManualMinimumColumnValue() { 175 return mincolumn; 176 } 177 178 public Number getManualMaximumValue() { 179 return maxvalue; 180 } 181 182 public Number getManualMinimumValue() { 183 return minvalue; 184 } 185 186 191 public String getDataSetName(int set) { 192 return "Dataset "+set; 193 } 194 195 200 public boolean equals(Object o) { 201 if(o == null) 202 return false; 203 try { 204 AbstractChartDataModel model = (AbstractChartDataModel)o; 205 206 if(getDataSetNumber() != model.getDataSetNumber()) { 207 return false; 208 } 209 210 for(int i = 0; i < getDataSetNumber(); i++) { 211 if(!getDataSetName(i).equals(model.getDataSetName(i))) { 212 return false; 213 } 214 215 for(int j = 0; j < getDataSetLength(j); j++) { 216 if(!getColumnValueAt(j).equals(model.getColumnValueAt(j))) { 217 return false; 218 } 219 } 220 } 221 } catch(Exception e) { return false;} 222 223 return true; 224 } 225 226 protected abstract TreeSet getOrderedValues(int axis); 227 228 protected abstract double getFirstColumnValue(); 229 230 protected abstract double getLastColumnValue(); 231 } 232 | Popular Tags |