/*
* $Id: SchoolGroupSelectorCollectionHandler.java,v 1.1 2004/11/26 09:07:12 aron Exp $
* Created on 25.11.2004
*
* Copyright (C) 2004 Idega Software hf. All Rights Reserved.
*
* This software is the proprietary information of Idega hf.
* Use is subject to license terms.
*/
package com.idega.block.school.presentation;
import java.util.Collection;
import java.util.Iterator;
import java.util.Vector;
import com.idega.block.school.data.School;
import com.idega.block.school.data.SchoolClass;
import com.idega.block.school.data.SchoolClassHome;
import com.idega.block.school.data.SchoolHome;
import com.idega.data.IDOLookup;
import com.idega.presentation.IWContext;
import com.idega.presentation.remotescripting.RemoteScriptCollection;
import com.idega.presentation.remotescripting.RemoteScriptHandler;
import com.idega.presentation.remotescripting.RemoteScriptingResults;
/**
*
* Last modified: $Date: 2004/11/26 09:07:12 $ by $Author: aron $
*
* @author <a href="mailto:aron@idega.com">aron</a>
* @version $Revision: 1.1 $
*/
public class SchoolGroupSelectorCollectionHandler implements RemoteScriptCollection {
/* (non-Javadoc)
* @see com.idega.presentation.remotescripting.RemoteScriptCollection#getResults(com.idega.presentation.IWContext)
*/
public RemoteScriptingResults getResults(IWContext iwc) {
String sourceName = iwc.getParameter(RemoteScriptHandler.PARAMETER_SOURCE_PARAMETER_NAME);
String action = iwc.getParameter(SchoolGroupSelector.PARAMETER_ACTION);
String sourceID = iwc.getParameter(sourceName);
if (SchoolGroupSelector.ACTION_UPDATE_SCHOOLS.equals(action)) {
return handleSchoolUpdate(sourceName, sourceID);
} else if (SchoolGroupSelector.ACTION_UPDATE_GROUPS.equals(action)) {
return handleGroupUpdate(iwc, sourceName, sourceID);
}
return null;
}
private RemoteScriptingResults handleSchoolUpdate(String sourceName, String typeID) {
if (typeID != null) {
try {
SchoolHome schoolHome = (SchoolHome) IDOLookup.getHome(School.class);
Collection schools = schoolHome.findAllBySchoolType(Integer.parseInt(typeID));
Vector ids = new Vector();
Vector names = new Vector();
Iterator iter = schools.iterator();
if (iter.hasNext()) {
ids.add("-1");
names.add("Select");
}
while (iter.hasNext()) {
School s = (School) iter.next();
ids.add(s.getPrimaryKey());
names.add(s.getName());
}
if (schools.isEmpty()) {
ids.add("-1");
names.add("Unavailable");
}
RemoteScriptingResults rsr = new RemoteScriptingResults(RemoteScriptHandler.getLayerName(sourceName, "id"), ids);
rsr.addLayer(RemoteScriptHandler.getLayerName(sourceName, "name"), names);
return rsr;
}
catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
private RemoteScriptingResults handleGroupUpdate(IWContext iwc, String sourceName, String schoolID) {
if (schoolID != null) {
try {
//String parTypeID = iwc.getParameter(SchoolGroupSelector.PARAMETER_TYPE_ID);
//String typeID = iwc.getParameter(parTypeID);
SchoolClassHome groupHome = (SchoolClassHome) IDOLookup.getHome(SchoolClass.class);
Collection groups = groupHome.findBySchool(Integer.parseInt(schoolID));
Vector ids = new Vector();
Vector names = new Vector();
Iterator iter = groups.iterator();
if (iter.hasNext()) {
ids.add("-1");
names.add("Select");
}
while (iter.hasNext()) {
SchoolClass c = (SchoolClass) iter.next();
ids.add(c.getPrimaryKey().toString());
names.add(c.getName());
}
if (groups.isEmpty()) {
ids.add("-1");
names.add("Unavailable");
}
RemoteScriptingResults rsr = new RemoteScriptingResults(RemoteScriptHandler.getLayerName(sourceName, "id"), ids);
rsr.addLayer(RemoteScriptHandler.getLayerName(sourceName, "name"), names);
return rsr;
}
catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
}