package de.flower.rmt.ui.markup.html.form;
import de.flower.rmt.model.db.entity.Team;
import de.flower.rmt.model.db.entity.Uniform;
import de.flower.rmt.service.IUniformManager;
import de.flower.rmt.ui.markup.html.form.field.AbstractFormFieldPanel;
import de.flower.rmt.ui.markup.html.form.field.DropDownChoicePanel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.spring.injection.annot.SpringBean;
import java.util.Collections;
import java.util.List;
/**
* @author flowerrrr
*/
public class UniformDropDownChoicePanel extends DropDownChoicePanel<Uniform> {
@SpringBean
private IUniformManager uniformManager;
private IModel<Team> teamModel;
public UniformDropDownChoicePanel(String id, final IModel<Team> teamModel) {
super(id, new UniformDropDownChoice(AbstractFormFieldPanel.ID));
this.teamModel = teamModel;
setChoices(getUniformChoices());
}
private IModel<List<Uniform>> getUniformChoices() {
return new LoadableDetachableModel<List<Uniform>>() {
@Override
protected List<Uniform> load() {
Team team = teamModel.getObject();
if (team == null) {
return Collections.emptyList();
} else {
return uniformManager.findAllByTeam(team);
}
}
};
}
public void setTeamModel(final IModel<Team> teamModel) {
this.teamModel = teamModel;
}
@Override
public void onDetach() {
if (teamModel != null) {
teamModel.detach();
}
super.onDetach();
}
}