View difference between Paste ID: GRV8evZE and VvEShjYd
SHOW: | | - or go back to the newest paste.
1
    package admin.mangedbean;
2
3
    import admin.dao.service.SharableService;
4
    import admin.dao.service.StateService;
5
    import java.math.BigDecimal;
6
    import java.util.ArrayList;
7
    import java.util.Collections;
8
    import java.util.List;
9
    import java.util.Map;
10
    import javax.annotation.PostConstruct;
11
    import javax.faces.application.FacesMessage;
12
    import javax.faces.bean.ManagedBean;
13
    import javax.faces.bean.RequestScoped;
14
    import javax.faces.context.FacesContext;
15
    import javax.faces.event.ActionEvent;
16
    import model.Country;
17
    import model.StateTable;
18
    import org.primefaces.component.datatable.DataTable;
19
    import org.primefaces.event.CellEditEvent;
20
    import org.primefaces.event.RowEditEvent;
21
    import org.primefaces.event.SelectEvent;
22
    import org.primefaces.model.LazyDataModel;
23
    import org.primefaces.model.SelectableDataModel;
24
    import org.primefaces.model.SortOrder;
25
    import org.springframework.beans.factory.annotation.Autowired;
26
    import org.springframework.stereotype.Controller;
27
28
    @Controller
29
    @ManagedBean
30
    @RequestScoped
31
    public final class StateManagedBean extends LazyDataModel<StateTable>
32
    {
33
        @Autowired
34
        private StateService stateService;
35
        @Autowired
36
        private SharableService sharableService;
37
        private final List<StateTable>list;
38
        private List<StateTable> selectedValues;
39
        private List<StateTable> filteredValues;
40
        private List<Country>countries;
41
        private Long countryId;
42
        private Long id;
43
44
        public StateManagedBean()
45
        {
46
            list=null;
47
            stateService=null;
48
        }
49
50
        @PostConstruct
51
        public void init()
52
        {
53
            countries=sharableService.getCountryList();        
54
        }
55
56
        public List<Country> getCountries()
57
        {
58
            if(countries==null)
59
            {
60
                countries=sharableService.getCountryList();
61
            }
62
            return countries;
63
        }
64
65
        public Long getId()
66
        {
67
            return id;
68
        }
69
70
        public void setId(Long id)
71
        {
72
            this.id = id;
73
        }
74
75
        public StateService getStateService() {
76
            return stateService;
77
        }
78
79
        public void setStateService(StateService stateService) {
80
            this.stateService = stateService;
81
        }
82
83
        @Override
84
        public StateTable getRowData(String rowKey)
85
        {
86
            if(list==null)
87
            {
88
                return null;
89
            }
90
91
            for(StateTable stateTable:list)
92
            {
93
                if(stateTable.getStateId().toString().equals(rowKey))
94
                {
95
                    return stateTable;
96
                }
97
            }
98
            return null;
99
        }
100
101
        @Override
102
        public Object getRowKey(StateTable stateTable)
103
        {
104
            return stateTable.getStateId();
105
        }
106
107
        public List<StateTable> getSelectedValues()
108
        {
109
            return selectedValues;
110
        }
111
112
        public void setSelectedValues(List<StateTable> selectedValues)
113
        {        
114
            this.selectedValues = selectedValues;
115
        }
116
117
        public List<StateTable> getFilteredValues()
118
        {
119
            return filteredValues;
120
        }
121
122
        public void setFilteredValues(List<StateTable> filteredValues)
123
        {
124
            this.filteredValues = filteredValues;
125
        }
126
127
        public int currentPage(int first, int pageSize)
128
        {
129
            return first<=0||pageSize<=0?1:new BigDecimal(first+1).divide(new BigDecimal(pageSize), 0, BigDecimal.ROUND_CEILING).intValue();
130
        }
131
132
        @Override
133
        public void setRowIndex(int rowIndex)
134
        {
135
            int pageSize = getPageSize();
136
            if(rowIndex==-1||pageSize==0)
137
            {
138
                super.setRowIndex(-1);
139
            }
140
            else
141
            {
142
                 super.setRowIndex(rowIndex%pageSize);
143
            }
144
        }
145
146
        public void setSelectedValue(List<StateTable> stateTables)
147
        {
148
            for(StateTable stateTable:stateTables)
149
            {
150
                if(id.equals(stateTable.getStateId()))
151
                {                    
152
                    selectedValues=new ArrayList<StateTable>();
153
                    selectedValues.add(stateTable);
154
                    break;
155
                }
156
            }
157
        }
158
159
        @Override
160
        public List<StateTable> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, String> filters)
161
        {        
162
            int rowCount = stateService.rowCount().intValue();
163
            int currentPage = currentPage(first, pageSize);
164
165
            if(rowCount<=currentPage*pageSize-pageSize)
166
            {
167
                first-=pageSize;
168
            }
169
170
            if(pageSize<=0)
171
            {
172
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_FATAL, "Error!", "The page size supplied is incorrect. The current operation has been rejected.");
173
                FacesContext.getCurrentInstance().addMessage(null, message);
174
                return Collections.emptyList();
175
            }
176
177
            int currentRow=0;
178
            if(id!=null&&id>0&&stateService.checkId(id))
179
            {
180
                currentRow=(int) (stateService.getCurrentRow(id)-1);            
181
                final DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("form:dataTable");
182
                first=currentRow-(currentRow%pageSize);
183
                dataTable.setFirst(first);
184
185
            }
186
187
            if(filters!=null&&!filters.isEmpty())
188
            {
189
                List<StateTable> stateTables = stateService.getList(first, pageSize, sortOrder, sortField, filters);
190
                setRowCount(stateTables.size());
191
                if(id!=null)
192
                {
193
                    setSelectedValue(stateTables);
194
                }            
195
                id=null;
196
                return stateTables;
197
            }
198
            setRowCount(rowCount);
199
            List<StateTable> stateTables = stateService.getList(first, pageSize, sortOrder, sortField);
200
201
            if(id!=null)
202
            {
203
                setSelectedValue(stateTables);
204
            }
205
            id=null;
206
            return stateTables;
207
        }
208
209
        public void deleteMultiple(ActionEvent actionEvent)
210
        {
211
            int size=selectedValues.size();
212
            if(size<=0)
213
            {
214
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Message", "Please select the rows you want to delete.");
215
                FacesContext.getCurrentInstance().addMessage(null, message);
216
            }
217
            else if(actionEvent.getComponent().getId().equals("confirmDeleteMultiple")&&selectedValues!=null&&!selectedValues.isEmpty())
218
            {
219
                stateService.delete(selectedValues);            
220
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Sucess!", size+(size==1?" row has":" rows have")+" been deleted successfully as you stated.");
221
                FacesContext.getCurrentInstance().addMessage(null, message);
222
            }
223
            else
224
            {
225
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_FATAL, "System Error",  "Please try again later.");
226
                FacesContext.getCurrentInstance().addMessage(null, message);
227
            }
228
        }
229
230
        public void deleteSingle(ActionEvent actionEvent)
231
        {
232
            if(actionEvent.getComponent().getId().equals("confirmDeleteSingle")&&selectedValues!=null&&!selectedValues.isEmpty())
233
            {
234
                stateService.delete(selectedValues.get(0).getStateId());
235
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Sucess!",  "The row with the id "+selectedValues.get(0).getStateId()+" has been deleted successfully as you stated.");
236
                FacesContext.getCurrentInstance().addMessage(null, message);
237
            }
238
            else
239
            {
240
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_FATAL, "System Error",  "Please try again later.");
241
                FacesContext.getCurrentInstance().addMessage(null, message);
242
            }
243
        }    
244
245
        public Long getCountryId()
246
        {
247
            return countryId;
248
        }
249
250
        public void setCountryId(Long countryId)
251
        {
252
            this.countryId = countryId;
253
        }
254
255
        public void onRowEdit(RowEditEvent event)
256
        {
257
            StateTable stateTable=(StateTable) event.getObject();
258
259
            if(stateService.update(stateTable))
260
            {
261
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Success : ",  "The row with the id "+stateTable.getStateId()+" has been updated successfully.");
262
                FacesContext.getCurrentInstance().addMessage(null, message);
263
            }
264
        }
265
266
        public void onRowEditCancel(RowEditEvent event)
267
        {
268
            StateTable stateTable=(StateTable) event.getObject();
269
            if(stateTable!=null)
270
            {
271
                FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_WARN, "Warning : ",  "The changes to the row with the id "+stateTable.getStateId()+" were not made, since you have chosen to cancel.");
272
                FacesContext.getCurrentInstance().addMessage(null, message);
273
            }
274
        }
275
    }