package br.com.centralit.citcorpore.ajaxForms;
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.centralit.citajax.html.AjaxFormAction;
import br.com.centralit.citajax.html.DocumentHTML;
import br.com.centralit.citajax.html.HTMLElement;
import br.com.centralit.citajax.html.HTMLForm;
import br.com.centralit.citcorpore.bean.GrupoItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.InformacaoItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.ItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.ParametroCorporeDTO;
import br.com.centralit.citcorpore.bean.TipoItemConfiguracaoDTO;
import br.com.centralit.citcorpore.bean.ValorDTO;
import br.com.centralit.citcorpore.negocio.GrupoItemConfiguracaoService;
import br.com.centralit.citcorpore.negocio.InformacaoItemConfiguracaoService;
import br.com.centralit.citcorpore.negocio.ItemConfiguracaoService;
import br.com.centralit.citcorpore.negocio.ParametroCorporeService;
import br.com.centralit.citcorpore.negocio.ValorService;
import br.com.centralit.citcorpore.util.CITCorporeUtil;
import br.com.centralit.citcorpore.util.Enumerados;
import br.com.centralit.citcorpore.util.Enumerados.TipoDate;
import br.com.centralit.citcorpore.util.ParametroUtil;
import br.com.centralit.citcorpore.util.WebUtil;
import br.com.citframework.excecao.ServiceException;
import br.com.citframework.service.ServiceLocator;
import br.com.citframework.util.UtilDatas;
public class InformacaoItemConfiguracaoTree extends AjaxFormAction {
private InformacaoItemConfiguracaoDTO informacaoItemConfiguracao;
private TipoItemConfiguracaoDTO tipoItemConfiguracao = new TipoItemConfiguracaoDTO();
private ItemConfiguracaoDTO itemConfiguracao = new ItemConfiguracaoDTO();
@SuppressWarnings("rawtypes")
@Override
public Class getBeanClass() {
return InformacaoItemConfiguracaoDTO.class;
}
@Override
public void load(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
this.informacao(document, request, response);
}
@SuppressWarnings("unused")
public void informacao(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws Exception {
this.setInformacaoItemConfiguracao((InformacaoItemConfiguracaoDTO) document.getBean());
this.getItemConfiguracao().setIdItemConfiguracao(Integer.parseInt(request.getParameter("id")));
this.setItemConfiguracao((ItemConfiguracaoDTO) this.getItemConfiguracaoService().restore(this.getItemConfiguracao()));
this.setInformacaoItemConfiguracao(this.getInformacaoItemConfiguracaoService().listByInformacao(this.getItemConfiguracao()));
GrupoItemConfiguracaoDTO grupoItemConfiguracaoDTO = new GrupoItemConfiguracaoDTO();
ParametroCorporeService parametroService = (ParametroCorporeService) ServiceLocator.getInstance().getService(ParametroCorporeService.class, null);
ParametroCorporeDTO parametroDTO = new ParametroCorporeDTO();
if(this.getItemConfiguracao().getIdGrupoItemConfiguracao() != null && this.getItemConfiguracao().getIdGrupoItemConfiguracao() > 0){
grupoItemConfiguracaoDTO.setIdGrupoItemConfiguracao(this.getItemConfiguracao().getIdGrupoItemConfiguracao());
GrupoItemConfiguracaoService grupoItemConfiguracaoService = (GrupoItemConfiguracaoService) ServiceLocator.getInstance().getService(GrupoItemConfiguracaoService.class, null);
grupoItemConfiguracaoDTO = (GrupoItemConfiguracaoDTO) grupoItemConfiguracaoService.restore(grupoItemConfiguracaoDTO);
} else {
}
StringBuilder subDiv = new StringBuilder();
/* Cabe�alho */
subDiv.append("<div id='cabecalhoInf'>");
subDiv.append("<h2>Descrição dos Ativos da Máquina</h2><hr />");
subDiv.append("<label>");
subDiv.append("Identifica��o: <input id='input' readonly='readonly' value='" + this.getItemConfiguracao().getIdentificacao() + "' type='text' maxlength='80' name='unidade'/>");
subDiv.append("</label>");
subDiv.append("<label>");
if(this.getItemConfiguracao().getIdGrupoItemConfiguracao() != null && this.getItemConfiguracao().getIdGrupoItemConfiguracao() > 0){
subDiv.append("Grupo: <input id='input' readonly='readonly' value='" + grupoItemConfiguracaoDTO.getNomeGrupoItemConfiguracao() + "' type='text' maxlength='80' name='unidade'/>");
} else {
if (!ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.NOME_GRUPO_ITEM_CONFIG_NOVOS, " ").trim().equalsIgnoreCase("")) {
subDiv.append("Grupo: <input id='input' readonly='readonly' value='" + ParametroUtil.getValorParametroCitSmartHashMap(Enumerados.ParametroSistema.NOME_GRUPO_ITEM_CONFIG_NOVOS, " ") + "' type='text' maxlength='80' name='unidade'/>");
}
}
subDiv.append("</label>");
subDiv.append("<hr />");
subDiv.append("</div>");
/* Treeview */
subDiv.append("<div id='corpoInf'>");
subDiv.append("<ul id='browser' class='filetree treeview'>");
subDiv.append("<li class='closed' >");
subDiv.append("<div class='hitarea closed-hitarea collapsable-hitarea'>");
subDiv.append("</div>");
subDiv.append("<span class='folder'>");
subDiv.append("BIOS");
subDiv.append("</span>");
subDiv.append("<ul>");
subDiv.append("<li class='closed'>");
subDiv.append("<div class='hitarea closed-hitarea collapsable-hitarea'>");
subDiv.append("</div>");
subDiv.append("<span class='folder'>");
subDiv.append("Data do Último Iventário");
subDiv.append("</span>");
subDiv.append("<ul>");
subDiv.append("<li>");
subDiv.append("<span class='file'>");
subDiv.append(UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, this.getItemConfiguracao().getDataInicio(), WebUtil.getLanguage(request)));
subDiv.append("</span>");
subDiv.append("</li>");
subDiv.append("</ul>");
subDiv.append("</li>");
subDiv.append("<li class='closed'>");
subDiv.append("<div class='hitarea' onclick='restaurarValoresBios();'>");
subDiv.append("</div>");
subDiv.append("<span class='folder' onclick='restaurarValoresBios();'>");
subDiv.append("Características");
subDiv.append("</span>");
subDiv.append("<ul id='subBios'>");
// subDiv.append("<div id='subBios'></div>");
// aqui sera incluso via InnerHTML quando o ator clicar em BIOS.
subDiv.append("</ul>");
subDiv.append("</li>");
subDiv.append("</ul>");
subDiv.append("</li>");
subDiv.append("<li class='closed'>");
subDiv.append("<div class='hitarea closed-hitarea collapsable-hitarea'>");
subDiv.append("</div>");
subDiv.append("<span class='folder' >");
subDiv.append("Hardware");
subDiv.append("</span>");
subDiv.append("<ul>");
subDiv.append("<li class='closed'>");
subDiv.append("<div class='hitarea closed-hitarea collapsable-hitarea'>");
subDiv.append("</div>");
subDiv.append("<span class='folder'>");
subDiv.append("Data do Último Iventário");
subDiv.append("</span>");
subDiv.append("<ul >");
subDiv.append("<li>");
subDiv.append("<span class='file'>");
subDiv.append(UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, this.getItemConfiguracao().getDataInicio(), WebUtil.getLanguage(request)));
subDiv.append("</span>");
subDiv.append("</li>");
subDiv.append("</ul>");
subDiv.append("</li>");
subDiv.append("<li class='closed' >");
subDiv.append("<div class='hitarea closed-hitarea collapsable-hitarea' onclick='restaurarValoresHardware();'>");
subDiv.append("</div>");
subDiv.append("<span class='folder' onclick='restaurarValoresHardware();'>");
subDiv.append("Características");
subDiv.append("</span>");
subDiv.append("<ul>");
subDiv.append("<div id='subHardware'></div>");
// aqui sera incluso via InnerHTML quando o ator clicar em HARDWARE.
subDiv.append("</ul>");
subDiv.append("</li>");
subDiv.append("</ul>");
subDiv.append("</li>");
subDiv.append("<li class='closed'>");
subDiv.append("<div class='hitarea closed-hitarea collapsable-hitarea'>");
subDiv.append("</div>");
subDiv.append("<span class='folder' name='bios' >");
subDiv.append("Software");
subDiv.append("</span>");
subDiv.append("<ul>");
subDiv.append("<li class='closed'>");
subDiv.append("<div class='hitarea closed-hitarea collapsable-hitarea'>");
subDiv.append("</div>");
subDiv.append("<span class='folder'>");
subDiv.append("Data do Último Iventário");
subDiv.append("</span>");
subDiv.append("<ul >");
subDiv.append("<li>");
subDiv.append("<span class='file'>");
subDiv.append(UtilDatas.convertDateToString(TipoDate.DATE_DEFAULT, this.getItemConfiguracao().getDataInicio(), WebUtil.getLanguage(request)));
subDiv.append("</span>");
subDiv.append("</li>");
subDiv.append("</ul>");
subDiv.append("</li>");
subDiv.append("<li class='closed'>");
subDiv.append("<div class='hitarea closed-hitarea collapsable-hitarea' onclick='restaurarValoresSoftware();'>");
subDiv.append("</div>");
subDiv.append("<span class='folder' onclick='restaurarValoresSoftware();'>");
subDiv.append("Características");
subDiv.append("</span>");
subDiv.append("<ul>");
subDiv.append("<div id='subSoftware'></div>");
// aqui sera incluso via InnerHTML quando o ator clicar em SOFTWARE.
subDiv.append("</ul>");
subDiv.append("</li>");
subDiv.append("</ul>");
subDiv.append("</li>");
subDiv.append("</ul>");
subDiv.append("</div>");
HTMLElement divPrincipal = document.getElementById("principalInf");
divPrincipal.setInnerHTML(subDiv.toString());
document.executeScript("tree('#browser'); $('#loading_overlay').hide();");
HTMLForm form = CITCorporeUtil.limparFormulario(document);
form.setValues(this.getInformacaoItemConfiguracao());
}
public void prepararHtmlBios(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws ServiceException, Exception {
this.setInformacaoItemConfiguracao((InformacaoItemConfiguracaoDTO) document.getBean());
this.getItemConfiguracao().setIdItemConfiguracao(this.getInformacaoItemConfiguracao().getIdItemConfiguracao());
StringBuilder htmlBios = new StringBuilder();
for (ValorDTO valor : this.getListaCaracteristica(this.getItemConfiguracao(), "BIOS")) {
if (!valor.getValorStr().equalsIgnoreCase("")) {
htmlBios.append("<li class='closed'>");
htmlBios.append("<div class='hitarea'>");
htmlBios.append("</div>");
htmlBios.append("<span class='file'>");
htmlBios.append(valor.getNomeCaracteristica() + " - " + valor.getValorStr());
htmlBios.append("</span>");
htmlBios.append("</li>");
}
}
HTMLElement divPrincipal = document.getElementById("subBios");
divPrincipal.setInnerHTML(htmlBios.toString());
document.executeScript("tree('#subBios'); $('#loading_overlay').hide();");
}
public void prepararHtmlHardware(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws ServiceException, Exception {
this.setInformacaoItemConfiguracao((InformacaoItemConfiguracaoDTO) document.getBean());
this.getItemConfiguracao().setIdItemConfiguracao(this.getInformacaoItemConfiguracao().getIdItemConfiguracao());
StringBuilder htmlHardware = new StringBuilder();
String agrupAnterior = "";
Integer idItemAnterior = -9999;
htmlHardware.append("<li class='closed'>");
for (ValorDTO valor : this.getListaCaracteristica(this.getItemConfiguracao(), "HARDWARE")) {
if (!valor.getValorStr().equalsIgnoreCase("")) {
if (!agrupAnterior.equalsIgnoreCase(valor.getTagtipoitemconfiguracao())){
if (!agrupAnterior.equalsIgnoreCase("")){
htmlHardware.append("</ul></li>");
htmlHardware.append("</ul></li>");
idItemAnterior = -9999;
}
htmlHardware.append("<li class='closed'>");
htmlHardware.append("<span class='folder'>" + valor.getTagtipoitemconfiguracao() + "</span>");
htmlHardware.append("<ul>");
}
if (idItemAnterior.intValue() != valor.getIdItemConfiguracao().intValue()){
if (idItemAnterior.intValue() != -9999){
htmlHardware.append("</ul></li>");
}
htmlHardware.append("<li class='closed'>");
htmlHardware.append("<span class='folder'>" + valor.getTagtipoitemconfiguracao() + " - Id: " + valor.getIdItemConfiguracao() + "</span>");
htmlHardware.append("<ul>");
}
htmlHardware.append("<span class='file'>");
htmlHardware.append(valor.getNomeCaracteristica() + " - " + valor.getValorStr());
htmlHardware.append("</span>");
agrupAnterior = valor.getTagtipoitemconfiguracao();
idItemAnterior = valor.getIdItemConfiguracao();
}
}
if (!agrupAnterior.equalsIgnoreCase("")){
htmlHardware.append("</ul></li>");
htmlHardware.append("</ul></li>");
}
htmlHardware.append("</li>");
HTMLElement divPrincipal = document.getElementById("subHardware");
divPrincipal.setInnerHTML(htmlHardware.toString());
document.executeScript("tree('#subHardware'); $('#loading_overlay').hide();");
}
public void prepararHtmlSoftware(DocumentHTML document, HttpServletRequest request, HttpServletResponse response) throws ServiceException, Exception {
this.setInformacaoItemConfiguracao((InformacaoItemConfiguracaoDTO) document.getBean());
this.getItemConfiguracao().setIdItemConfiguracao(this.getInformacaoItemConfiguracao().getIdItemConfiguracao());
StringBuilder htmlSoftware = new StringBuilder();
htmlSoftware.append("<li class='closed'>");
for (ValorDTO valor : this.getListaCaracteristica(this.getItemConfiguracao(), "SOFTWARES")) {
if (!valor.getValorStr().equalsIgnoreCase("")) {
if (valor.getTag().equalsIgnoreCase("NAME")) {
htmlSoftware.append("</ul>" );
htmlSoftware.append("</li>" );
htmlSoftware.append("<li class='closed'>");
htmlSoftware.append("<span class='folder'>");
htmlSoftware.append(valor.getValorStr());
htmlSoftware.append("</span>");
htmlSoftware.append("<ul>");
}
htmlSoftware.append("<span class='file'>");
htmlSoftware.append(valor.getNomeCaracteristica() + " - " + valor.getValorStr());
htmlSoftware.append("</span>");
}
}
htmlSoftware.append("</li>");
HTMLElement divPrincipal = document.getElementById("subSoftware");
divPrincipal.setInnerHTML(htmlSoftware.toString());
document.executeScript("tree('#subSoftware'); $('#loading_overlay').hide();");
}
/**
* Retorna lista de caracter�sticas.
*
* @param idItemConfiguracao
* @param tagTipoItemConfiguracao
* @return listaCaracteristica
* @throws ServiceException
* @throws Exception
* @author rosana.godinho
*/
public Collection<ValorDTO> getListaCaracteristica(ItemConfiguracaoDTO itemConfiguracao, String tagTipoItemConfiguracao) throws ServiceException, Exception {
TipoItemConfiguracaoDTO tipoItemConfiguracao = new TipoItemConfiguracaoDTO();
tipoItemConfiguracao.setTag(tagTipoItemConfiguracao);
return this.getValorService().findByItemAndTipoItemConfiguracao(itemConfiguracao, tipoItemConfiguracao);
}
/**
* Retorna Service de Valor.
*
* @return ValorService
* @throws Exception
* @author rosana.godinho
*/
public ValorService getValorService() throws Exception {
return (ValorService) ServiceLocator.getInstance().getService(ValorService.class, null);
}
/**
* Retorna Service de InformacaoItemConfiguracao.
*
* @return InformacaoItemConfiguracaoService
* @throws ServiceException
* @throws Exception
* @author rosana.godinho
*/
public InformacaoItemConfiguracaoService getInformacaoItemConfiguracaoService() throws ServiceException, Exception {
return (InformacaoItemConfiguracaoService) ServiceLocator.getInstance().getService(InformacaoItemConfiguracaoService.class, null);
}
/**
* @return valor do atributo tipoItemConfiguracao.
*/
public TipoItemConfiguracaoDTO getTipoItemConfiguracao() {
return tipoItemConfiguracao;
}
/**
* Define valor do atributo tipoItemConfiguracao.
*
* @param tipoItemConfiguracao
*/
public void setTipoItemConfiguracao(TipoItemConfiguracaoDTO tipoItemConfiguracao) {
this.tipoItemConfiguracao = tipoItemConfiguracao;
}
public ItemConfiguracaoService getItemConfiguracaoService() throws Exception {
return (ItemConfiguracaoService) ServiceLocator.getInstance().getService(ItemConfiguracaoService.class, null);
}
/**
* @return valor do atributo itemConfiguracao.
*/
public ItemConfiguracaoDTO getItemConfiguracao() {
return itemConfiguracao;
}
/**
* Define valor do atributo itemConfiguracao.
*
* @param itemConfiguracao
*/
public void setItemConfiguracao(ItemConfiguracaoDTO itemConfiguracao) {
this.itemConfiguracao = itemConfiguracao;
}
/**
* @return valor do atributo informacaoItemConfiguracao.
*/
public InformacaoItemConfiguracaoDTO getInformacaoItemConfiguracao() {
return informacaoItemConfiguracao;
}
/**
* Define valor do atributo informacaoItemConfiguracao.
*
* @param informacaoItemConfiguracao
*/
public void setInformacaoItemConfiguracao(InformacaoItemConfiguracaoDTO informacaoItemConfiguracao) {
this.informacaoItemConfiguracao = informacaoItemConfiguracao;
}
}