KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > albel > tags > table > controll > StateController


1 /*
2  * StateController.java
3  *
4  * Created on Pirmadienis, 2004, Rugsėjo 6, 15.38
5  */

6
7 package albel.tags.table.controll;
8
9 /**
10  *
11  * @author alblau
12  */

13 import albel.tags.table.utils.*;
14 import albel.tags.table.model.*;
15 public class StateController
16 {
17     
18     /** Creates a new instance of StateController */
19     public StateController()
20     {
21     }
22      public static void setupTableState(albel.tags.table.model.Table t,java.util.Map JavaDoc attrs)
23      throws TableTagException
24      {
25          String JavaDoc saveButton=(String JavaDoc)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 JavaDoc createButton=(String JavaDoc)attrs.get(t.getKeys().getCreateButtonNameKey());
33          if(createButton!=null)
34          {
35              processCreate(t,attrs);
36          }
37          String JavaDoc deleteButton=(String JavaDoc)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 JavaDoc o=attrs.get(t.getKeys().getEditRowNumberKey());
49          if(o!=null)
50          {
51             String JavaDoc editRowNumber=(String JavaDoc)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 JavaDoc attrs)
68      throws TableTagException
69      {
70          java.util.List JavaDoc 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 JavaDoc val=(String JavaDoc)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 JavaDoc attrs)
84      throws TableTagException
85      {
86          java.util.List JavaDoc 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 JavaDoc val=(String JavaDoc)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