protected void buildNormalContext(VelocityPortlet portlet,
Context context,
RunData rundata)
{
String mode = null;
Cafe cafe = null;
try
{
mode = this.getQueryParameter(rundata, UI_MODE, UI_REFRESH);
cafe = (Cafe)rundata.getUser().getTemp(SESSION_CAFE);
// refresh mode - simply keep state of fields from session,
// the request is for another portlet or simply a refresh
//
if (mode.equalsIgnoreCase(UI_REFRESH))
{
if (cafe != null)
{
rundata.getParameters().setProperties(cafe);
}
}
else if (mode.equalsIgnoreCase(UI_EDIT) ||
mode.equalsIgnoreCase(UI_DELETE))
{
int rowid = Integer.parseInt(this.getQueryParameter(rundata, UI_ROW_ID));
context.put(UI_ROW_ID, String.valueOf(rowid));
// get the primary key and put the object in the context
Criteria criteria = new Criteria();
criteria.add( CafePeer.CAFE_ID, rowid);
List cafes = CafePeer.doSelect(criteria);
if (cafes != null && cafes.size() > 0)
{
cafe = (Cafe)cafes.get(0);
}
else
{
throw new Exception("Cafe for id="+rowid+" not found.");
}
rundata.getUser().setTemp(SESSION_CAFE, cafe);
rundata.getUser().setTemp(SESSION_UPDATE_MODE, mode);
}
else if (mode.equalsIgnoreCase(UI_ADD))
{
cafe = new Cafe();
cafe.setCafeName("");
rundata.getUser().setTemp(SESSION_CAFE, cafe);
rundata.getUser().setTemp(SESSION_UPDATE_MODE, mode);
}
context.put(UI_CAFE, cafe);