/*
* $Id: GroupRunInputCollectionHandler.java,v 1.1 2005/05/31 19:04:34 laddi Exp $
* Created on Feb 14, 2005
*
* Copyright (C) 2005 Idega Software hf. All Rights Reserved.
*
* This software is the proprietary information of Idega hf.
* Use is subject to license terms.
*/
package is.idega.idegaweb.marathon.presentation;
import is.idega.idegaweb.marathon.business.ConverterUtility;
import is.idega.idegaweb.marathon.business.RunBusiness;
import is.idega.idegaweb.marathon.data.Distance;
import is.idega.idegaweb.marathon.util.IWMarathonConstants;
import java.util.Collection;
import java.util.Iterator;
import java.util.Vector;
import com.idega.business.IBOLookup;
import com.idega.business.IBOLookupException;
import com.idega.idegaweb.IWResourceBundle;
import com.idega.presentation.IWContext;
import com.idega.presentation.PresentationObject;
import com.idega.presentation.remotescripting.RemoteScriptCollection;
import com.idega.presentation.remotescripting.RemoteScriptHandler;
import com.idega.presentation.remotescripting.RemoteScriptingResults;
import com.idega.user.data.Group;
import com.idega.util.IWTimestamp;
/**
*
* Last modified: $Date: 2005/05/31 19:04:34 $ by $Author: laddi $
*
* @author <a href="mailto:birna@idega.com">birna</a>
* @version $Revision: 1.1 $
*/
public class GroupRunInputCollectionHandler extends PresentationObject implements RemoteScriptCollection {
public String getBundleIdentifier() {
return IWMarathonConstants.IW_BUNDLE_IDENTIFIER;
}
public RemoteScriptingResults getResults(IWContext iwc) {
String sourceName = iwc.getParameter(RemoteScriptHandler.PARAMETER_SOURCE_PARAMETER_NAME);
String sourceID = iwc.getParameter(sourceName);
return handleDistanceUpdate(iwc, sourceName, sourceID);
}
private RemoteScriptingResults handleDistanceUpdate(IWContext iwc, String sourceName, String runIdString) {
IWResourceBundle iwrb = getResourceBundle(iwc);
if (runIdString != null) {
Integer runId = Integer.valueOf(runIdString);
RunBusiness runBiz = getRunBiz(iwc);
IWTimestamp ts = IWTimestamp.RightNow();
Integer y = new Integer(ts.getYear());
String yearString = y.toString();
try {
Group run = (Group) runBiz.getRunGroupByGroupId(runId);
Collection distances = runBiz.getDistancesMap(run,yearString);
Vector ids = new Vector();
Vector names = new Vector();
if (distances != null) {
Iterator disIter = distances.iterator();
if (disIter.hasNext()) {
ids.add("");
names.add(iwrb.getLocalizedString("run_year_ddd.select_distance","Select distance..."));
}
while (disIter.hasNext()) {
Group distance = (Group) disIter.next();
Distance dis = ConverterUtility.getInstance().convertGroupToDistance(distance);
if (dis.isAllowsGroups()) {
String s = iwrb.getLocalizedString(distance.getName(),distance.getName());
ids.add(distance.getPrimaryKey().toString());
names.add(s);
}
}
if (distances.isEmpty()) {
ids.add("");
names.add("Unavailable");
}
}
else {
ids.add("");
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 RunBusiness getRunBiz(IWContext iwc) {
RunBusiness business = null;
try {
business = (RunBusiness) IBOLookup.getServiceInstance(iwc, RunBusiness.class);
}
catch (IBOLookupException e) {
business = null;
}
return business;
}
}