/*
* Created on 14.5.2004
*/
package com.idega.block.school.presentation;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import com.idega.block.school.business.SchoolComparator;
import com.idega.block.school.business.SchoolContentBusiness;
import com.idega.block.school.data.School;
import com.idega.business.IBOLookup;
import com.idega.business.IBOLookupException;
import com.idega.business.IBORuntimeException;
import com.idega.core.builder.data.ICPage;
import com.idega.idegaweb.IWUserContext;
import com.idega.presentation.IWContext;
import com.idega.presentation.text.Link;
import com.idega.presentation.text.Lists;
import com.idega.presentation.text.Text;
/**
* @author laddi
*/
public class SchoolListViewer extends SchoolBlock {
private static final String STYLENAME_SCHOOL_LIST = "schoolList";
private String iSchoolCategory;
private ICPage iResponsePage;
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.school.music.presentation.MusicSchoolBlock#init(com.idega.presentation.IWContext)
*/
public void init(IWContext iwc) throws Exception {
List schools = null;
if (this.iSchoolCategory != null) {
schools = new ArrayList(getBusiness().findAllSchoolsByCategory(this.iSchoolCategory));
}
else {
schools = new ArrayList(getBusiness().findAllSchools());
}
Collections.sort(schools, new SchoolComparator(iwc.getCurrentLocale()));
Lists list = new Lists();
list.setStyleClass(STYLENAME_SCHOOL_LIST);
Iterator iter = schools.iterator();
while (iter.hasNext()) {
School school = (School) iter.next();
if (this.iResponsePage != null) {
Link link = new Link(school.getSchoolName());
link.setPage(this.iResponsePage);
link.addParameter(getSchoolContentBusiness(iwc).getParameterSchoolId(), school.getPrimaryKey().toString());
list.add(link);
}
else {
Text text = new Text(school.getSchoolName());
list.add(text);
}
}
add(list);
}
private SchoolContentBusiness getSchoolContentBusiness(IWUserContext iwuc) {
try {
return (SchoolContentBusiness) IBOLookup.getSessionInstance(iwuc, SchoolContentBusiness.class);
}
catch (IBOLookupException ile) {
throw new IBORuntimeException(ile);
}
}
public void setSchoolCategory(String category) {
this.iSchoolCategory = category;
}
public void setResponsePage(ICPage page) {
this.iResponsePage = page;
}
}