Want more features on Pastebin? Sign Up, it's FREE!
Guest

quick non compilate sample

By: a guest on May 1st, 2012  |  syntax: Java  |  size: 5.25 KB  |  views: 86  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. public class ExpenseTableModel extends AbstractTableModel {
  2.  
  3.     private static ResourceMap rm = Application.getInstance().getContext().getResourceManager().getResourceMap(ExpenseTable.class);
  4.  
  5.     public static enum ExpenseColumns {
  6.  
  7.         COLUMN_CATEGORY_ID,
  8.         COLUMN_CATEGORY_DESCRIPTION,
  9.         COLUMN_RESOURCE_ID,
  10.         COLUMN_RESOURCE_NAME,
  11.         COLUMN_AMOUNT,
  12.         COLUMN_DESCRIPTION
  13.     }
  14.  
  15.     protected String[] columnsNames;
  16.     protected List<ActivityExpense> rows;
  17.  
  18.     public ExpenseTableModel() {
  19.         rows = Lists.newArrayList();
  20.  
  21.         loadStrings();
  22.         fireTableChanged(null);
  23.     }
  24.  
  25.     public void setData(List<ActivityExpense> pages) {
  26.         clear();
  27.         this.rows.addAll(pages);
  28.  
  29.         if (!pages.isEmpty()) {
  30.             fireTableRowsInserted(0, pages.size() - 1);
  31.         }
  32.     }
  33.    
  34.     public void addData(ActivityExpense e) {
  35.         this.rows.add(e);
  36.         int row = getRowCount() - 1;
  37.         fireTableRowsInserted(row, row);
  38.     }
  39.    
  40.     public void removeData(ActivityExpense e) {
  41.        
  42.     }
  43.  
  44.     public ActivityExpense getActivityExpense(int row) {
  45.         return rows.get(row);
  46.     }
  47.  
  48.     public int getNextAvailableId() {
  49.         int max = 0;
  50.  
  51.         for (ActivityExpense e : rows) {
  52.             max = Math.max(max, e.getLineId());
  53.         }
  54.  
  55.         return max + 1;
  56.     }
  57.  
  58.     public void clear() {
  59.         int old = rows.size();
  60.         rows.clear();
  61.  
  62.         if (old > 0) {
  63.             fireTableRowsDeleted(0, 0 == old ? 0 : old -1);
  64.         }
  65.     }
  66.  
  67.     @Override
  68.     public String getColumnName(int column) {
  69.         return columnsNames[column];
  70.     }
  71.  
  72.     @Override
  73.     public Class<?> getColumnClass(int column) {
  74.         ExpenseColumns c = ExpenseColumns.values()[column];
  75.  
  76.         switch (c) {
  77.             case COLUMN_CATEGORY_ID:
  78.                 return String.class;
  79.             case COLUMN_CATEGORY_DESCRIPTION:
  80.                 return String.class;
  81.             case COLUMN_RESOURCE_ID:
  82.                 return String.class;
  83.             case COLUMN_RESOURCE_NAME:
  84.                 return String.class;
  85.             case COLUMN_AMOUNT:
  86.                 return Double.class;
  87.             case COLUMN_DESCRIPTION:
  88.                 return String.class;
  89.         }
  90.  
  91.         return String.class;
  92.     }
  93.  
  94.     @Override
  95.     public int getColumnCount() {
  96.         return columnsNames.length;
  97.     }
  98.  
  99.     @Override
  100.     public int getRowCount() {
  101.         return rows == null ? 0 : rows.size();
  102.     }
  103.  
  104.     @Override
  105.     public Object getValueAt(int row, int column) {
  106.         ExpenseColumns c = ExpenseColumns.values()[column];
  107.  
  108.         ActivityExpense e = rows.get(row);
  109.  
  110.         switch (c) {
  111.             case COLUMN_CATEGORY_ID:
  112.                 return e.getCategory().getId();
  113.             case COLUMN_CATEGORY_DESCRIPTION:
  114.                 return e.getCategory().getDescription();
  115.             case COLUMN_RESOURCE_ID:
  116.                 return e.getResource().getId();
  117.             case COLUMN_RESOURCE_NAME:
  118.                 return e.getResource().getDescription();
  119.             case COLUMN_AMOUNT:
  120.                 return e.getAmount();
  121.             case COLUMN_DESCRIPTION:
  122.                 return e.getDescription();
  123.         }
  124.  
  125.         return null;
  126.     }
  127.  
  128.     @Override
  129.     public boolean isCellEditable(int row, int column) {
  130.         ExpenseColumns c = ExpenseColumns.values()[column];
  131.  
  132.         switch (c) {
  133.             case COLUMN_CATEGORY_ID:
  134.                 return false; // for now
  135.             case COLUMN_CATEGORY_DESCRIPTION:
  136.                 return false;
  137.             case COLUMN_RESOURCE_ID:
  138.                 return false; // for now
  139.             case COLUMN_RESOURCE_NAME:
  140.                 return false;
  141.             case COLUMN_AMOUNT:
  142.                 return true;
  143.             case COLUMN_DESCRIPTION:
  144.                 return true;
  145.         }
  146.  
  147.         return false;
  148.     }
  149.  
  150.     @Override
  151.     public void setValueAt(Object value, int row, int column) {
  152.         ExpenseColumns c = ExpenseColumns.values()[column];
  153.  
  154.         ActivityExpense e = rows.get(row);
  155.  
  156.         switch (c) {
  157.             case COLUMN_CATEGORY_ID:
  158.                 // todo
  159.                 break;
  160.             case COLUMN_CATEGORY_DESCRIPTION:
  161.                 break;
  162.             case COLUMN_RESOURCE_ID:
  163.                 break;
  164.             case COLUMN_RESOURCE_NAME:
  165.                 break;
  166.             case COLUMN_AMOUNT:
  167.                 e.setAmount((Double)value);
  168.                 UnitOfWork.getInstance().registerDirty(e);
  169.                 break;
  170.             case COLUMN_DESCRIPTION:
  171.                 e.setDescription(value.toString());
  172.                 UnitOfWork.getInstance().registerDirty(e);
  173.                 break;
  174.         }
  175.     }
  176.  
  177.     private void loadStrings() {
  178.         int i = 0;
  179.         columnsNames = new String[ExpenseColumns.COLUMN_DESCRIPTION.ordinal() + 1];
  180.         columnsNames[i++] = rm.getString("column.category.id");
  181.         columnsNames[i++] = rm.getString("column.category.desc");
  182.         columnsNames[i++] = rm.getString("column.res.id");
  183.         columnsNames[i++] = rm.getString("column.res.desc");
  184.         columnsNames[i++] = rm.getString("column.amount.text");
  185.         columnsNames[i++] = rm.getString("column.description.text");
  186.     }
  187.  
  188. }
clone this paste RAW Paste Data