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

import org.zkoss.zkplus.spring.SpringUtil;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;

import com.rjconsultores.ventaboletos.entidad.Conexion;
import com.rjconsultores.ventaboletos.entidad.ConexionConf;
import com.rjconsultores.ventaboletos.entidad.Parada;
import com.rjconsultores.ventaboletos.service.ConexionConfService;
import com.rjconsultores.ventaboletos.service.ParadaService;

public class RenderEditarConexion implements ListitemRenderer {
	private ParadaService paradaService = (ParadaService) SpringUtil.getBean("paradaService");
	private ConexionConfService conexionConfService = (ConexionConfService) SpringUtil.getBean("conexionConfService");
	private static int grupo = 0;
	private boolean changeColor = true;
	private String style1 = "Font-weight:bold;background-color: #858a8a";
	private String style2 = "Font-weight:bold;background-color: #535757";
	private String styleDesativada1 = "Font-weight:bold;background-color: #A52A2A";
	private String styleDesativada2 = "Font-weight:bold;background-color: #800000";

	private void setStyle(Listcell lc, ConexionConf conexionConf) {
		lc.setStyle(changeColor ? style1 : style2);
		if ((conexionConf != null) && (conexionConf.getIndisponible() != null) && (conexionConf.getIndisponible())) {
			lc.setStyle(changeColor ? styleDesativada1 : styleDesativada2);
		}
	}

	public void render(Listitem lstm, Object o) throws Exception {
		Conexion conexion = (Conexion) o;

		if (grupo != conexion.getNumgrupo()) {
			grupo = conexion.getNumgrupo();
			changeColor = !changeColor;
		}

		ConexionConf conexionConf = conexionConfService.buscar(conexion.getConexionctrlId(), conexion.getNumgrupo());

		Parada origem = paradaService.obtenerID(conexion.getOrigenId());
		Listcell lc = new Listcell(origem.getDescparada());
		setStyle(lc, conexionConf);
		lc.setParent(lstm);

		Parada destino = paradaService.obtenerID(conexion.getDestinoId());
		lc = new Listcell(destino.getDescparada());
		setStyle(lc, conexionConf);
		lc.setParent(lstm);

		lc = new Listcell(conexion.getNumgrupo().toString());
		setStyle(lc, conexionConf);
		lc.setParent(lstm);

		lc = new Listcell(conexion.getNumsecuencia().toString());
		setStyle(lc, conexionConf);
		lc.setParent(lstm);

		lstm.setValue(conexion);
	}
}
