/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
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.ConexionConf;
import com.rjconsultores.ventaboletos.service.ConexionConfService;
import com.rjconsultores.ventaboletos.vo.conexion.ConexionVO;

/**
 * 
 * @author Administrador
 */
public class RenderConexion implements ListitemRenderer {
	private boolean changeColor = true;
	private static long grupo = 0;
	private static long grupoConexionCtrl = 0;
	private ConexionConfService conexionConfService = (ConexionConfService) SpringUtil.getBean("conexionConfService");
	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.getIndisponible() != null) && (conexionConf.getIndisponible())) {
			lc.setStyle(changeColor ? styleDesativada1 : styleDesativada2);
		}
	}

	public void render(Listitem lstm, Object o) throws Exception {
		ConexionVO conexion = (ConexionVO) o;
		ConexionConf conexionConf = conexionConfService.buscar(conexion.getConexionCtrlId(), conexion.getGrupo());

		if (grupo != conexionConf.getGrupo() ||
				grupoConexionCtrl != conexion.getConexionCtrlId()) {
			grupo = conexionConf.getGrupo();
			grupoConexionCtrl = conexion.getConexionCtrlId();
			changeColor = !changeColor;
		}

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

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

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

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

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

		lstm.setValue(conexion);
	}
}
