/* * Created on 18.8.2003 */ package com.idega.presentation.ui.util; import java.lang.reflect.InvocationTargetException; import java.util.Collection; import java.util.Iterator; import com.idega.data.IDOEntity; import com.idega.idegaweb.IWResourceBundle; import com.idega.presentation.ui.GenericSelect; import com.idega.presentation.ui.SelectOption; import com.idega.util.reflect.MethodInvoker; /** * @author laddi */ public class SelectorUtility { public GenericSelect getSelectorFromIDOEntities(GenericSelect selector, Collection entities) { return getSelectorFromIDOEntities(selector, entities, null); } public GenericSelect getSelectorFromIDOEntities(GenericSelect selector, Collection entities, String methodName) { return getSelectorFromIDOEntities(selector, entities, methodName, null); } public GenericSelect getSelectorFromIDOEntities(GenericSelect selector, Collection entities, String methodName, IWResourceBundle resourceBundle) { return getSelectorFromIDOEntities(selector, entities, methodName, resourceBundle, null); } public GenericSelect getSelectorFromIDOEntities(GenericSelect selector, Collection entities, String methodName, IWResourceBundle resourceBundle, String defaultReturnValue) { if (entities != null) { Iterator iter = entities.iterator(); while (iter.hasNext()) { IDOEntity entity = (IDOEntity) iter.next(); SelectOption option = new SelectOption(entity.getPrimaryKey().toString()); if (methodName != null) { try { String value = MethodInvoker.getInstance().invokeMethodWithNoParameters(entity, methodName).toString(); if (resourceBundle != null) { if (defaultReturnValue == null){ value = resourceBundle.getLocalizedString(value, value); } else{ value = resourceBundle.getLocalizedString(value, defaultReturnValue); } } option.setName(value); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { option.setName(entity.toString()); } } else { option.setName(entity.toString()); } selector.addOption(option); } } return selector; } }