package com.rjconsultores.ventaboletos.web.utilerias.render;

import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.zkoss.util.media.AMedia;
import org.zkoss.util.media.Media;
import org.zkoss.util.resource.Labels;
import org.zkoss.zhtml.Filedownload;
import org.zkoss.zhtml.Fileupload;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zul.Button;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;
import org.zkoss.zul.Messagebox;

import com.rjconsultores.ventaboletos.entidad.SolicitudExpreso;
import com.rjconsultores.ventaboletos.entidad.TrayectosExpresos;
import com.rjconsultores.ventaboletos.service.TrayectosExpresosService;
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
import com.rjconsultores.ventaboletos.web.gui.controladores.expressos.AsignarBusExpresosController;
import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria;

public class RenderAsignarBusExpresos implements ListitemRenderer {
	
	EventListener listenerGenerico;
	
	TrayectosExpresos trayecto;
	
	AsignarBusExpresosController winAsignarBus;

	public RenderAsignarBusExpresos(AsignarBusExpresosController window, EventListener listenerGenerico) {
		super();
		winAsignarBus = window;
		this.listenerGenerico = listenerGenerico;
	}

	@Override
	public void render(Listitem item, Object data) throws Exception {
		TrayectosExpresos trayectos = (TrayectosExpresos) data;
		
		Listcell lc = new Listcell(trayectos.getDescTrayecto());
		lc.setParent(item);
		
		lc = new Listcell(DateUtil.getStringDate(trayectos.getSolicitudExpresoId().getFechaHoraIda(), "dd/MM/yyyy"));
        lc.setParent(item);
        
        lc = new Listcell(trayectos.getTrayectoExpresoId().toString());
        lc.setParent(item);
        
    	if(trayectos.getNumPlaca() == null) {
    		lc = new Listcell();
        	lc.setParent(item);
        	
        	Button btnCargarPlaca = new Button(Labels.getLabel("expresosController.lbl.cargarPlaca"));
        	btnCargarPlaca.addEventListener("onClick", new EventListener() {
    			@Override
    			public void onEvent(Event event) throws Exception {
    				Listitem listItem = (Listitem) event.getTarget().getParent().getParent();
    				trayecto = (TrayectosExpresos)listItem.getAttribute("data");
    				
    				Map args = new HashMap();
    				args.put("trayecto", trayecto);

    				winAsignarBus.openWindow("/gui/expressos/cargarPlacaBusExpreso.zul", Labels.getLabel("asignarBusExpreso.window.title"), args, PantallaUtileria.MODAL);
    			}
    		});
        	
            lc.appendChild(btnCargarPlaca);
        }else {
        	lc = new Listcell(trayectos.getNumPlaca());
            lc.setParent(item);
        }
        
        if(trayectos.getDocFluec() == null) {
        	lc = new Listcell();
        	lc.setParent(item);
        	
        	Button btnCargarFluec = new Button(Labels.getLabel("expresosController.lbl.cargarFluec"));
        	btnCargarFluec.setAttribute("data", data);
        	btnCargarFluec.addEventListener("onClick", listenerGenerico);
    		
    		lc.appendChild(btnCargarFluec);
        }else {
        	lc = new Listcell(Labels.getLabel("expresosController.lbl.fluecCargado"));
            lc.setParent(item);
        }
        
        item.setAttribute("data", trayectos);
	}

}
