View Javadoc

1   package org.weda.model.actions;
2   
3   import org.weda.action.Action;
4   import org.weda.action.ActionContainer;
5   import org.weda.action.ActionState;
6   import org.weda.action.Parameter;
7   import org.weda.action.Parameter.Direction;
8   import org.weda.model.PageableTableModel;
9   import org.weda.model.PageableTableModelData;
10  import org.weda.model.TableModel;
11  import org.weda.model.TableModelData;
12  import org.weda.store.ObjectSource;
13  import org.weda.action.impl.AbstractAction;
14  import org.weda.action.impl.ActionStateImpl;
15  
16  /**Цель: переход на произвольную страницу
17   *
18   * @author tim
19   */
20  public class PageableTableModelGoToPageAction extends AbstractAction {
21      private int pageNumber;
22      private String pageAndRowCount;
23      
24      public ActionState getActionState(ActionContainer targetObject) 
25          throws Exception 
26      {
27          PageableTableModel model = (PageableTableModel)targetObject;
28          if (model.getMode()==TableModel.Mode.VIEW){
29              PageableTableModelData data = model.getData();
30              TableModelData linkedData = data.getLinkedTableModelData();
31              pageNumber = data.getPageNumber()+1;
32              pageAndRowCount=
33                      String.format(
34                          "(%d/%d/%d)"
35                          , linkedData.getRowCount()
36                          , linkedData.getSelectedRowCount()
37                          , data.getPageCount());
38              return new ActionStateImpl(true, data.getPageCount()>1);
39          }
40          return new ActionStateImpl(true, false);
41      }
42  
43      public Object execute(ActionContainer targetObject) throws Exception {
44          PageableTableModel model = (PageableTableModel)targetObject;
45          model.getData().setPageNumber(pageNumber-1);
46          return null;
47      }
48  
49      @Parameter(direction=Direction.READ_WRITE)
50      public Integer getPageNumber() {
51          return pageNumber;
52      }
53  
54      public void setPageNumber(Integer pageNumber) {
55          this.pageNumber = pageNumber;
56      }
57  
58      @Parameter(direction=Direction.READ)
59      public String getPageAndRowCount() {
60          return pageAndRowCount;
61      }
62      
63  }