1 23 package org.dbforms.event.datalist; 24 import org.apache.commons.logging.Log; 25 import org.apache.commons.logging.LogFactory; 26 27 import org.dbforms.config.DbEventInterceptorData; 28 import org.dbforms.config.DbFormsConfig; 29 import org.dbforms.config.FieldValue; 30 import org.dbforms.config.ResultSetVector; 31 import org.dbforms.config.Table; 32 33 import org.dbforms.event.NavigationEvent; 34 import org.dbforms.event.datalist.dao.DataSourceFactory; 35 import org.dbforms.event.datalist.dao.DataSourceSessionList; 36 37 import java.sql.SQLException ; 38 39 import javax.servlet.http.HttpServletRequest ; 40 41 42 43 50 public class NavPrevEvent extends NavigationEvent { 51 private static Log logCat = LogFactory.getLog(NavPrevEvent.class.getName()); 53 54 61 public NavPrevEvent(String action, HttpServletRequest request, 62 DbFormsConfig config) { 63 super(action, request, config); 64 } 65 66 67 74 public NavPrevEvent(Table table, HttpServletRequest request, 75 DbFormsConfig config) { 76 super(table, request, config); 77 } 78 79 100 public ResultSetVector processEvent(FieldValue[] filterFieldValues, 101 FieldValue[] orderConstraint, String sqlFilter, 102 FieldValue[] sqlFilterParams, int count, String firstPosition, 103 String lastPosition, DbEventInterceptorData interceptorData) 104 throws SQLException { 105 logCat.info("==>NavPrevEvent.processEvent"); 106 107 DataSourceSessionList ds = DataSourceSessionList.getInstance(getRequest()); 108 DataSourceFactory qry = ds.get(getTable(), getRequest()); 109 110 if (qry == null) { 111 qry = new DataSourceFactory((String ) interceptorData.getAttribute( 112 DbEventInterceptorData.CONNECTIONNAME), 113 interceptorData.getConnection(), getTable()); 114 qry.setSelect(filterFieldValues, orderConstraint, sqlFilter, 115 sqlFilterParams); 116 ds.put(getTable(), getRequest(), qry); 117 } 118 119 String position = getTable().getKeyPositionString(getTable() 120 .getFieldValues(firstPosition)); 121 ResultSetVector res = qry.getPrev(interceptorData, position, count); 122 123 if (ResultSetVector.isNull(res)) { 125 res = qry.getFirst(interceptorData, count); 126 } 127 128 return res; 129 } 130 } 131 | Popular Tags |