/**
* Copyright (c) 2009-2014 Câmara dos Deputados. Todos os direitos reservados.
*
* e-Democracia é um software livre; você pode redistribuí-lo e/ou modificá-lo dentro
* dos termos da Licença Pública Geral Menor GNU como publicada pela Fundação do
* Software Livre (FSF); na versão 2.1 da Licença, ou (na sua opinião) qualquer versão.
*
* Este programa é distribuído na esperança de que possa ser útil, mas SEM NENHUMA GARANTIA;
* sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR.
* Veja a Licença Pública Geral Menor GNU para maiores detalhes.
*/
package br.gov.camara.edemocracia.portlets.priorizacao.ui.components;
import java.util.Collections;
import java.util.List;
import org.apache.wicket.markup.html.form.DropDownChoice;
import org.apache.wicket.markup.html.form.IChoiceRenderer;
import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.Model;
import br.gov.camara.edemocracia.portlets.priorizacao.model.Eixo;
import br.gov.camara.edemocracia.portlets.priorizacao.service.PriorizacaoServiceUtil;
import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;
public class EixosDropDown extends DropDownChoice<Eixo> {
private static final long serialVersionUID = 1L;
private static final Log LOG = LogFactoryUtil.getLog(EixosDropDown.class);
public EixosDropDown(String id, long groupId, IChoiceRenderer<Eixo> renderer) {
super(id, new Model<Eixo>(), new EixosListModel(groupId));
this.setOutputMarkupId(true);
if (renderer == null) {
this.setChoiceRenderer(new IChoiceRenderer<Eixo>() {
private static final long serialVersionUID = 1L;
@Override
public Object getDisplayValue(Eixo object) {
return object.getTitulo();
}
@Override
public String getIdValue(Eixo object, int index) {
return Long.toString(object.getEixoId());
}
});
} else {
setChoiceRenderer(renderer);
}
}
private static class EixosListModel extends
LoadableDetachableModel<List<Eixo>> {
private static final long serialVersionUID = 1L;
private final long groupId;
private EixosListModel(long groupId) {
this.groupId = groupId;
}
@Override
protected List<Eixo> load() {
try {
return PriorizacaoServiceUtil.listarEixos(groupId);
} catch (Exception e) {
LOG.error("Erro ao obter lista de eixos.Param groupId=\""
+ groupId + "\"", e);
return Collections.emptyList();
}
}
}
}