package fr.chantier.tapestry.pages.clients;
import fr.chantier.model.ClientsEntity;
import fr.chantier.service.ClientsManager;
import org.apache.log4j.Logger;
import org.apache.tapestry.commons.components.InPlaceEditor;
import org.apache.tapestry5.annotations.OnEvent;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.SetupRender;
import org.apache.tapestry5.corelib.components.Form;
import org.apache.tapestry5.ioc.annotations.Inject;
import java.util.Collection;
import java.util.List;
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 GestionClients {
private Logger log = Logger.getLogger(this.getClass());
@Property
private ClientsEntity client;
@Property(write = false)
private Collection<ClientsEntity> clientsEntityList;
@Property
private ClientsEntity clientRow;
@Inject
private ClientsManager clientsManager;
private List<ClientsEntity> clientsToDeletes;
/**
* Au rendu de la page
*/
@SetupRender
private void onSetupRender() {
clientsEntityList = clientsManager.findAllExisting();
}
/**
* Au succes du beaneditForm, creation du client en base
*/
@OnEvent(value = Form.SUCCESS, component = "client")
private void onSuccess() {
clientsManager.makePersistent(client);
}
@OnEvent(component = "clientForm", value = Form.PREPARE_FOR_SUBMIT)
private void prepareForSubmit() {
clientsToDeletes = new ArrayList<ClientsEntity>();
}
/**
* Au succes du formulaire, mise a jour des clients a archiver
*/
@OnEvent(value = Form.SUCCESS, component = "clientForm")
private void onSuccessFromClientForm() {
for (ClientsEntity delete : clientsToDeletes) {
delete.setClientOld(true);
clientsManager.makePersistent(delete);
}
}
public boolean getSuppressClient() {
return false;
}
public void setSuppressClient(boolean checked) {
if (checked) {
clientsToDeletes.add(clientRow);
}
}
public String getClientNameField() {
return clientRow.getClientName();
}
public void setClientNameField(String input) {
if (!input.equals(clientRow.getClientName())) {
clientRow.setClientName(input);
clientsManager.makePersistent(clientRow);
}
}
}