1 6 7 package albel.tags.table.controll; 8 9 13 import albel.tags.table.utils.*; 14 import albel.tags.table.model.*; 15 public class StateController 16 { 17 18 19 public StateController() 20 { 21 } 22 public static void setupTableState(albel.tags.table.model.Table t,java.util.Map attrs) 23 throws TableTagException 24 { 25 String saveButton=(String )attrs.get(t.getKeys().getSaveButtonNameKey()); 26 if(saveButton!=null) 27 { 28 processSave(t,attrs); 29 t.setSource(t.getTableHandlers().fireRowHandlerHandleLoad()); 30 return ; 31 } 32 String createButton=(String )attrs.get(t.getKeys().getCreateButtonNameKey()); 33 if(createButton!=null) 34 { 35 processCreate(t,attrs); 36 } 37 String deleteButton=(String )attrs.get(t.getKeys().getDeleteRowNumberKey()); 38 if(deleteButton!=null) 39 { 40 albel.tags.table.model.Row r=new albel.tags.table.model.Row(t); 41 RowState rstate=new RowState(); 42 rstate.setDeleting(true); 43 r.setRowState(rstate); 44 t.getTableState().setSelectedRow(r); 45 r.setNumber(Integer.parseInt(deleteButton)); 46 processDelete(r); 47 } 48 Object o=attrs.get(t.getKeys().getEditRowNumberKey()); 49 if(o!=null) 50 { 51 String editRowNumber=(String )o; 52 int rowNum=org.apache.commons.lang.math.NumberUtils.stringToInt(editRowNumber,-1); 53 if(rowNum>-1) 54 setupTableEditState(t, rowNum); 55 } 56 t.setSource(t.getTableHandlers().fireRowHandlerHandleLoad()); 57 } 58 private static void setupTableEditState(albel.tags.table.model.Table t,int rowNum) 59 { 60 Row row=new Row(t); 61 row.setNumber(rowNum); 62 RowState rowState=new RowState(); 63 rowState.setEditing(true); 64 row.setRowState(rowState); 65 t.getTableState().setSelectedRow(row); 66 } 67 private static void processSave(albel.tags.table.model.Table t,java.util.Map attrs) 68 throws TableTagException 69 { 70 java.util.List cols=t.getColumns(); 71 Cell cells[]=new Cell[cols.size()]; 72 albel.tags.table.model.Row row=t.getTableState().getSelectedRow(); 73 for(int i=0;i<cols.size();i++) 74 { 75 Column col=(Column)cols.get(i); 76 String val=(String )attrs.get(col.getProperty()); 77 Cell cell=new Cell(row,col,val); 78 cells[i]=cell; 79 } 80 t.getTableHandlers().fireRowHandlerHandleUpdate(cells); 81 t.getTableState().getSelectedRow().getRowState().setEditing(false); 82 } 83 private static void processCreate(albel.tags.table.model.Table t,java.util.Map attrs) 84 throws TableTagException 85 { 86 java.util.List cols=t.getColumns(); 87 Cell cells[]=new Cell[cols.size()]; 88 albel.tags.table.model.Row row=t.getTableState().getSelectedRow(); 89 for(int i=0;i<cols.size();i++) 90 { 91 Column col=(Column)cols.get(i); 92 String val=(String )attrs.get(col.getProperty()); 93 Cell cell=new Cell(row,col,val); 94 cells[i]=cell; 95 } 96 t.getTableHandlers().fireRowHandlerHandleCreate(t,cells); 97 } 98 private static void processDelete(albel.tags.table.model.Row row) 99 throws TableTagException 100 { 101 row.getTable().getTableHandlers().fireRowHandlerHandleDelete(row); 102 } 103 } 104 | Popular Tags |