1 23 package org.dbforms.event.datalist; 24 25 import org.apache.commons.logging.Log; 26 import org.apache.commons.logging.LogFactory; 27 28 import org.dbforms.config.DbEventInterceptorData; 29 import org.dbforms.config.DbFormsConfig; 30 import org.dbforms.config.FieldValue; 31 import org.dbforms.config.ResultSetVector; 32 import org.dbforms.config.Table; 33 34 import org.dbforms.event.NavigationEvent; 35 import org.dbforms.event.datalist.dao.DataSourceFactory; 36 import org.dbforms.event.datalist.dao.DataSourceSessionList; 37 import org.dbforms.event.eventtype.EventType; 38 39 import java.sql.SQLException ; 40 41 import javax.servlet.http.HttpServletRequest ; 42 43 49 public class ReloadEvent extends NavigationEvent { 50 private static Log logCat = LogFactory.getLog(ReloadEvent.class.getName()); 52 private boolean isForce = false; 57 58 private boolean isInsert = false; 59 60 70 public ReloadEvent(String action, HttpServletRequest request, 71 DbFormsConfig config) { 72 super(action, request, config); 73 isForce = action.indexOf("_force_") > 0; 74 isInsert = !isForce && (action.indexOf("_ins_") > 0); 75 } 76 77 87 public ReloadEvent(Table table, HttpServletRequest request, 88 DbFormsConfig config) { 89 super(table, request, config); 90 } 91 92 123 public ResultSetVector processEvent(FieldValue[] filterFieldValues, 124 FieldValue[] orderConstraint, String sqlFilter, 125 FieldValue[] sqlFilterParams, int count, String firstPosition, 126 String lastPosition, DbEventInterceptorData interceptorData) 127 throws SQLException { 128 if (isInsert) { 129 return null; 130 } 131 logCat.info("==>NavCurrentEvent.processEvent"); 132 133 DataSourceSessionList ds = DataSourceSessionList 134 .getInstance(getRequest()); 135 DataSourceFactory qry = null; 136 String position = null; 137 138 if (isForce) { 139 setType(EventType.EVENT_NAVIGATION_FORCERELOAD); 140 ds.remove(getTable(), getRequest()); 141 } else { 142 qry = ds.get(getTable(), getRequest()); 143 } 144 145 if (qry == null) { 146 qry = new DataSourceFactory((String ) interceptorData 147 .getAttribute(DbEventInterceptorData.CONNECTIONNAME), 148 interceptorData.getConnection(), getTable()); 149 qry.setSelect(filterFieldValues, orderConstraint, sqlFilter, 150 sqlFilterParams); 151 ds.put(getTable(), getRequest(), qry); 152 } 153 154 position = (count == 0) ? null : getTable().getKeyPositionString( 155 getTable().getFieldValues(lastPosition)); 156 157 ResultSetVector res = qry.getCurrent(interceptorData, position, count); 158 159 if (ResultSetVector.isNull(res)) { 160 res = qry.getLast(interceptorData, count); 161 } 162 163 return res; 164 } 165 } 166 | Popular Tags |