1 package sellwin.gui; 2 3 import sellwin.domain.*; 4 import javax.swing.*; 5 import javax.swing.text.*; 6 import javax.swing.table.*; 7 import java.util.*; 8 import java.text.*; 9 10 14 17 public class ForecastTableModel extends AbstractTableModel { 18 public final static String [] columnNames = 19 { "Forecast", "Scenario", "Submitted", 20 "Total Revenue", "Total Profit", "Profit Margin", "Close Date", 21 "Jan", "Feb", "Mar", "Q1", "Apr", "May", "Jun", "Q2", 22 "Jul", "Aug", "Sep", "Q3", "Oct", "Nov", "Dec", "Q4" }; 23 24 25 private ArrayList wholeList = null; 26 private Forecast sample = new Forecast(); 27 28 32 public ForecastTableModel(ArrayList wholeList) { 33 34 this.wholeList = wholeList; 35 sample.setName("hi"); 36 sample.setScenario(Forecast.SCEN_BEST_CASE); 37 sample.setSubmitted(new Boolean (true)); 38 sample.setRevenue(new Integer (1)); 39 sample.setProfit(new Integer (1)); 40 sample.setMargin(new Double (1.00)); 41 sample.setCloseDate(new Date()); 42 sample.setAmountJan(new Integer (0)); 43 sample.setAmountFeb(new Integer (0)); 44 sample.setAmountMar(new Integer (0)); 45 sample.setQ1(new Integer (0)); 46 sample.setAmountApr(new Integer (0)); 47 sample.setAmountMay(new Integer (0)); 48 sample.setAmountJun(new Integer (0)); 49 sample.setQ2(new Integer (0)); 50 sample.setAmountJul(new Integer (0)); 51 sample.setAmountAug(new Integer (0)); 52 sample.setAmountSep(new Integer (0)); 53 sample.setQ3(new Integer (0)); 54 sample.setAmountOct(new Integer (0)); 55 sample.setAmountNov(new Integer (0)); 56 sample.setAmountDec(new Integer (0)); 57 sample.setQ4(new Integer (0)); 58 59 setLang(); 60 } 61 62 66 public final void addForecast(Forecast f) { 67 wholeList.add(f); 68 } 69 70 75 public final Forecast getForecast(int index) { 76 return (Forecast)(wholeList.get(index)); 77 } 78 79 83 public final void deleteForecast(int index) { 84 wholeList.remove(index); 85 } 86 87 91 public final ArrayList getForecasts() { 92 return wholeList; 93 } 94 95 101 public final Object getValueAt(int inRow, int col) { 102 Forecast row = (Forecast)wholeList.get(inRow); 103 switch (col) { 104 case 0: return row.getName(); 106 case 1: return row.getScenario(); 108 case 2: return row.getSubmitted(); 110 case 3: return row.getRevenue(); 112 case 4: return row.getProfit(); 114 case 5: return row.getMargin(); 116 case 6: return row.getCloseDate(); 118 case 7: return row.getAmountJan(); 120 case 8: return row.getAmountFeb(); 122 case 9: return row.getAmountMar(); 124 case 10: return row.getQ1(); 126 case 11: return row.getAmountApr(); 128 case 12: return row.getAmountMay(); 130 case 13: return row.getAmountJun(); 132 case 14: return row.getQ2(); 134 case 15: return row.getAmountJul(); 136 case 16: return row.getAmountAug(); 138 case 17: return row.getAmountSep(); 140 case 18: return row.getQ3(); 142 case 19: return row.getAmountOct(); 144 case 20: return row.getAmountNov(); 146 case 21: return row.getAmountDec(); 148 case 22: return row.getQ4(); 150 default: 151 System.out.println("oops its dorked"); 152 break; 153 } 154 155 Exception e = new Exception (); 156 e.printStackTrace(); 157 System.exit(1); 158 return null; 159 } 160 161 164 public final int getRowCount() { 165 return wholeList.size(); 166 } 167 168 171 public final int getColumnCount() { 172 return columnNames.length; 173 } 174 175 178 public final String getColumnName(int col) { 179 return columnNames[col]; 180 } 181 182 185 public final Class getColumnClass(int col) { 186 switch (col) { 187 case 0: return sample.getName().getClass(); 189 case 1: return sample.getScenario().getClass(); 191 case 2: return sample.getSubmitted().getClass(); 193 case 3: return sample.getRevenue().getClass(); 195 case 4: return sample.getProfit().getClass(); 197 case 5: return sample.getMargin().getClass(); 199 case 6: return sample.getCloseDate().getClass(); 201 case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19: case 20: case 21: case 22: return sample.getAmountJan().getClass(); 218 default: 219 System.out.println("oops its dorked"); 220 break; 221 } 222 Exception e = new Exception (); 223 e.printStackTrace(); 224 System.exit(0); 225 return null; 226 } 227 228 231 public final void setValueAt(Object value, int row, int col) { 232 Forecast f = (Forecast)wholeList.get(row); 233 switch (col) { 234 case 0: f.setName((String )value); 236 break; 237 case 1: f.setScenario((String )value); 239 break; 240 case 2: f.setSubmitted((Boolean )value); 242 break; 243 case 3: f.setRevenue((Integer )value); 245 break; 246 case 4: f.setProfit((Integer )value); 248 break; 249 case 5: Double dd = (Double )value; 251 if (dd.doubleValue() > 100.00) 252 System.out.println("setting margin too high"); 253 f.setMargin((Double )value); 254 break; 255 case 6: if (value == null) value = new Date(); 257 f.setCloseDate((Date)value); 258 break; 259 case 7: f.setAmountJan((Integer )value); 261 break; 262 case 8: f.setAmountFeb((Integer )value); 264 break; 265 case 9: f.setAmountMar((Integer )value); 267 break; 268 case 10: f.setQ1((Integer )value); 270 break; 271 case 11: f.setAmountApr((Integer )value); 273 break; 274 case 12: f.setAmountMay((Integer )value); 276 break; 277 case 13: f.setAmountJun((Integer )value); 279 break; 280 case 14: f.setQ2((Integer )value); 282 break; 283 case 15: f.setAmountJul((Integer )value); 285 break; 286 case 16: f.setAmountAug((Integer )value); 288 break; 289 case 17: f.setAmountSep((Integer )value); 291 break; 292 case 18: f.setQ3((Integer )value); 294 break; 295 case 19: f.setAmountOct((Integer )value); 297 break; 298 case 20: f.setAmountNov((Integer )value); 300 break; 301 case 21: f.setAmountDec((Integer )value); 303 break; 304 case 22: f.setQ4((Integer )value); 306 break; 307 default: 308 System.out.println("oops its dorked"); 309 break; 310 } 311 312 fireTableRowsUpdated(row, row); 314 } 315 316 319 public final boolean isCellEditable(int row, int col) { 320 if ((col == 3) || (col == 4)) 322 return false; 323 324 if (col == 2) 328 return false; 329 330 Boolean submitted = (Boolean )(getValueAt(row, 2)); 332 if (submitted.booleanValue() == true) 333 return false; 334 335 336 if ( ( col == 10) || (col == 14) || (col == 18) || (col == 22)) 338 return false; 339 340 Class cls = getColumnClass(col); 341 String name = getColumnName(col); 342 343 return true; 344 } 345 346 349 public final void setLang() { 350 351 Whiteboard wb = MainWindow.getWhiteboard(); 352 353 columnNames[0] = wb.getLang().getString("forecast"); 354 columnNames[1] = wb.getLang().getString("scenario"); 355 columnNames[2] = wb.getLang().getString("submitted"); 356 columnNames[3] = wb.getLang().getString("totalRev"); 357 columnNames[4] = wb.getLang().getString("totalProfit"); 358 columnNames[5] = wb.getLang().getString("profitMargin"); 359 columnNames[6] = wb.getLang().getString("closeDate"); 360 columnNames[7] = wb.getLang().getString("jan"); 361 columnNames[8] = wb.getLang().getString("feb"); 362 columnNames[9] = wb.getLang().getString("mar"); 363 columnNames[10] = wb.getLang().getString("Q1"); 364 columnNames[11] = wb.getLang().getString("apr"); 365 columnNames[12] = wb.getLang().getString("may"); 366 columnNames[13] = wb.getLang().getString("jun"); 367 columnNames[14] = wb.getLang().getString("Q2"); 368 columnNames[15] = wb.getLang().getString("jul"); 369 columnNames[16] = wb.getLang().getString("aug"); 370 columnNames[17] = wb.getLang().getString("sep"); 371 columnNames[18] = wb.getLang().getString("Q3"); 372 columnNames[19] = wb.getLang().getString("oct"); 373 columnNames[20] = wb.getLang().getString("nov"); 374 columnNames[21] = wb.getLang().getString("dec"); 375 columnNames[22] = wb.getLang().getString("Q4"); 376 } 377 } 378 | Popular Tags |