package is.idega.idegaweb.marathon.presentation;
import is.idega.idegaweb.marathon.business.RunBusiness;
import is.idega.idegaweb.marathon.util.IWMarathonConstants;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Vector;
import com.idega.business.IBOLookup;
import com.idega.business.IBOLookupException;
import com.idega.core.cache.IWCacheManager2;
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.ListUtil;
public class DistanceMenuShirtSizeMenuInputCollectionHandler extends PresentationObject implements RemoteScriptCollection {
private static final String PARAMETER_SHIRT_SIZES_PER_RUN = "shirt_sizes_per_run";
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 handleShirtSizeUpdate(iwc, sourceName, sourceID);
}
private RemoteScriptingResults handleShirtSizeUpdate(IWContext iwc, String sourceName, String distanceIdString) {
IWResourceBundle iwrb = getResourceBundle(iwc);
if (distanceIdString != null) {
Integer distanceID = Integer.valueOf(distanceIdString);
RunBusiness runBiz = getRunBiz(iwc);
try {
Vector ids = new Vector();
Vector names = new Vector();
String shirtSizeMetadata = null;
if (distanceID.intValue() != -1) {
Group runDistance = runBiz.getRunGroupByGroupId(distanceID);
shirtSizeMetadata = runDistance.getMetaData(PARAMETER_SHIRT_SIZES_PER_RUN);
}
List shirtSizes = null;
if (shirtSizeMetadata != null) {
shirtSizes = ListUtil. convertCommaSeparatedStringToList(shirtSizeMetadata);
Iterator shirtIt = shirtSizes.iterator();
//ShirtSizeHome shirtSizeHome = (ShirtSizeHome) IDOLookup.getHome(ShirtSize.class);
if (shirtIt.hasNext()) {
ids.add("-1");
names.add(iwrb.getLocalizedString("run_distance_dd.select_shirt_size","Select shirt size..."));
}
while (shirtIt.hasNext()) {
String shirtSizeKey = (String) shirtIt.next();
//ShirtSize shirtSize = shirtSizeHome.findByPrimaryKey(shirtSizeKey);
//String s = iwrb.getLocalizedString(shirtSize.getName(),shirtSize.getName());
ids.add(shirtSizeKey);
names.add(iwrb.getLocalizedString("shirt_size."+shirtSizeKey,shirtSizeKey));
}
if (shirtSizes.isEmpty()) {
ids.add("-1");
names.add(iwrb.getLocalizedString("unavailable","Unavailable"));
}
} else {
ids.add("-1");
names.add(iwrb.getLocalizedString("unavailable","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;
}
}