/*
  * (non-Javadoc)
  *
  * @see javax.swing.table.TableModel#getValueAt(int, int)
  */
 public Object getValueAt(int rowIndex, int columnIndex) {
   final ConstructionRow row = this.rows.get(rowIndex);
   switch (columnIndex) {
     case 0:
       return row.getCanvas();
     case 1:
       return new BrickReportElement(row.getCut());
     case 2:
       return row.getCutCount();
     case 3:
       return row.getCutDescription();
   }
   return null;
 }
 @Override
 public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
   final ConstructionRow row = this.rows.get(rowIndex);
   switch (columnIndex) {
     case 0:
       row.setCanvas((java.awt.Image) aValue);
       break;
     case 1:
       row.setCut((com.stoneworks.Brick) aValue);
       break;
     case 2:
       row.setCutCount(Integer.valueOf(aValue.toString()));
       break;
     case 3:
       row.setCutDescription((String) aValue);
       break;
   }
 }
 private void getInventory(Image canvasImage) {
   for (Brick b : this.canvas.getBricks()) {
     boolean found = false;
     int foundOnRow = 0;
     int foundQuantity = 0;
     for (int i = 0; i < this.getRowCount(); i++) {
       final ConstructionRow row = this.rows.get(i);
       // TODO: I don't like this here...need a more robust solution
       // for equals in Brick
       if (row.getCut().getDescription().equals(b.getDescription())) {
         found = true;
         foundOnRow = i;
         foundQuantity = row.getCutCount();
         break;
       }
     }
     if (found) {
       this.setValueAt(foundQuantity + 1, foundOnRow, 2);
     } else {
       Brick newBrick = new Brick(b.getCuttable(), this.colorAssigned(b.getDescription()));
       this.rows.add(new ConstructionRow(canvasImage, 1, newBrick.getDescription(), newBrick));
     }
   }
 }