package fr.chantier.tapestry.pages.sousTraitants;
import fr.chantier.model.SousTraitantsEntity;
import fr.chantier.model.IntervenantsEntity;
import fr.chantier.model.CoefficientEntity;
import fr.chantier.service.SousTraitantsManager;
import fr.chantier.service.CoefficientManager;
import fr.chantier.dao.CoefficientDAO;
import fr.chantier.tapestry.base.GestionEntite;
import org.apache.tapestry5.annotations.*;
import org.apache.tapestry5.corelib.components.Form;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry.commons.components.InPlaceEditor;
import java.util.List;
import java.util.Collection;
import java.util.ArrayList;
/**
* Created by IntelliJ IDEA.
* User: sora
* Date: Oct 28, 2008
* Time: 3:55:25 PM
* To change this template use File | Settings | File Templates.
*/
public class GestionSousTraitants extends GestionEntite {
@Property
private SousTraitantsEntity sousTraitant;
@Property(write = false)
private Collection<SousTraitantsEntity> sousTraitantsEntityList;
@Property
private SousTraitantsEntity sousTraitantRow;
@Inject
private SousTraitantsManager sousTraitantsManager;
@Inject
private CoefficientManager coefficientManager;
private List<SousTraitantsEntity> sousTraitantsToDelete;
@SetupRender
private void onSetupRender() {
sousTraitantsEntityList = sousTraitantsManager.findAllExisting();
}
@OnEvent(component = "sousTraitantsForm", value = Form.SUCCESS)
private void onSuccess() {
sousTraitantsManager.makePersistent(sousTraitant);
}
/**
* Suppression des sous-traitants
*
* @param idSousTraitants
*/
@OnEvent(component = "suppressionEntite", value = "action")
private void onActionLink(Integer idSousTraitants) {
SousTraitantsEntity temp = sousTraitantsManager.findById(idSousTraitants, false);
temp.setStOld(true);
sousTraitantsManager.makePersistent(temp);
}
/**
* Modification du nom des sous-traitants
*
* @param stId
* @param nomSousTraitants
*/
@OnEvent(component = "inPlaceEditor", value = InPlaceEditor.SAVE_EVENT)
void actionFromEditor(Integer stId, String nomSousTraitants) {
SousTraitantsEntity entite = sousTraitantsManager.findById(stId, false);
entite.setStName(nomSousTraitants);
sousTraitantsManager.makePersistent(entite);
}
@OnEvent(component = "stForm", value = Form.PREPARE_FOR_SUBMIT)
private void onPrepareForSubmit() {
sousTraitantsToDelete = new ArrayList<SousTraitantsEntity>();
}
public boolean getSelected() {
return false;
}
public void setSelected(boolean checked) {
if(checked){
sousTraitantsToDelete.add(sousTraitantRow);
}
}
public String getStName() {
return sousTraitantRow.getStName();
}
public void setStName(String input) {
if (!sousTraitantRow.getStName().equals(input)) {
sousTraitantRow.setStName(input);
sousTraitantsManager.makePersistent(sousTraitantRow);
}
}
@OnEvent(component = "stForm", value = Form.SUCCESS)
private void onSuccessFromStForm() {
for (SousTraitantsEntity entity : sousTraitantsToDelete) {
entity.setStOld(true);
sousTraitantsManager.makePersistent(entity);
}
}
}