edgar 2016-07-28 20:54:26 +00:00
parent ac335094f5
commit 0b62d27239
7 changed files with 111 additions and 207 deletions

View File

@ -17,7 +17,6 @@ import org.zkoss.zhtml.Messagebox;
import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Combobox; import org.zkoss.zul.Combobox;
import org.zkoss.zul.Comboitem; import org.zkoss.zul.Comboitem;
import org.zkoss.zul.Intbox; import org.zkoss.zul.Intbox;
@ -80,7 +79,7 @@ public class BusquedaCatalogoDeRutaController extends MyGenericForwardComposer {
private Combobox cmbOrgaoConcedente; private Combobox cmbOrgaoConcedente;
private Combobox cmbGrupoRuta; private Combobox cmbGrupoRuta;
private Combobox cmbEmpresa; private Combobox cmbEmpresa;
private Checkbox chkRutaCancelada;
public List<Empresa> getLsEmpresa() { public List<Empresa> getLsEmpresa() {
return lsEmpresa; return lsEmpresa;
@ -161,7 +160,8 @@ public class BusquedaCatalogoDeRutaController extends MyGenericForwardComposer {
} }
private void refreshLista() { private void refreshLista() {
HibernateSearchObject<Ruta> rutaBusqueda = new HibernateSearchObject<Ruta>(Ruta.class, pagingRuta.getPageSize()); HibernateSearchObject<Ruta> rutaBusqueda =
new HibernateSearchObject<Ruta>(Ruta.class, pagingRuta.getPageSize());
rutaBusqueda.addFilterEqual("activo", Boolean.TRUE); rutaBusqueda.addFilterEqual("activo", Boolean.TRUE);
if (cmbEmpresa.getSelectedIndex() >= 0){ if (cmbEmpresa.getSelectedIndex() >= 0){
@ -171,6 +171,7 @@ public class BusquedaCatalogoDeRutaController extends MyGenericForwardComposer {
rutaBusqueda.addFilterAll("lsRutaEmpresa", Filter.in("empresa.empresaId", getIdEmpresas(lsEmpresa))); rutaBusqueda.addFilterAll("lsRutaEmpresa", Filter.in("empresa.empresaId", getIdEmpresas(lsEmpresa)));
} }
rutaBusqueda.addFilterNotEqual("rutaId", -1); rutaBusqueda.addFilterNotEqual("rutaId", -1);
if (txtId.getValue() != null) { if (txtId.getValue() != null) {
@ -200,7 +201,6 @@ public class BusquedaCatalogoDeRutaController extends MyGenericForwardComposer {
OrgaoConcedente orgaoConcedente = (OrgaoConcedente) cbiOrgaoConcedente.getValue(); OrgaoConcedente orgaoConcedente = (OrgaoConcedente) cbiOrgaoConcedente.getValue();
rutaBusqueda.addFilterEqual("orgaoConcedente", orgaoConcedente); rutaBusqueda.addFilterEqual("orgaoConcedente", orgaoConcedente);
} }
rutaBusqueda.addFilterEqual("indRutaCancelada", chkRutaCancelada.isChecked());
rutaBusqueda.addSortAsc("descruta"); rutaBusqueda.addSortAsc("descruta");

View File

@ -7,11 +7,11 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.esquemaoperacional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.sql.SQLException; import java.sql.SQLException;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -19,6 +19,8 @@ import java.util.Map;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.Predicate; import org.apache.commons.collections.Predicate;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.apache.log4j.lf5.util.DateFormatManager;
import org.hibernate.Hibernate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope; import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -33,8 +35,8 @@ import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Combobox; import org.zkoss.zul.Combobox;
import org.zkoss.zul.Comboitem; import org.zkoss.zul.Comboitem;
import org.zkoss.zul.Constraint; import org.zkoss.zul.Constraint;
import org.zkoss.zul.Hbox;
import org.zkoss.zul.Intbox; import org.zkoss.zul.Intbox;
import org.zkoss.zul.ListModel;
import org.zkoss.zul.ListModelList; import org.zkoss.zul.ListModelList;
import org.zkoss.zul.Listcell; import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem; import org.zkoss.zul.Listitem;
@ -44,14 +46,12 @@ import org.zkoss.zul.Paging;
import org.zkoss.zul.Radio; import org.zkoss.zul.Radio;
import org.zkoss.zul.Spinner; import org.zkoss.zul.Spinner;
import org.zkoss.zul.Textbox; import org.zkoss.zul.Textbox;
import org.zkoss.zul.Toolbar; import org.zkoss.zul.event.ListDataListener;
import org.zkoss.zul.Window; import org.zkoss.zul.ext.Constrainted;
import com.rjconsultores.ventaboletos.entidad.CasetaPeaje; import com.rjconsultores.ventaboletos.entidad.CasetaPeaje;
import com.rjconsultores.ventaboletos.entidad.ClaseServicio; import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
import com.rjconsultores.ventaboletos.entidad.Corrida;
import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
import com.rjconsultores.ventaboletos.entidad.GrupoRuta; import com.rjconsultores.ventaboletos.entidad.GrupoRuta;
import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente; import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente;
import com.rjconsultores.ventaboletos.entidad.Parada; import com.rjconsultores.ventaboletos.entidad.Parada;
@ -66,7 +66,6 @@ import com.rjconsultores.ventaboletos.entidad.TramoServicio;
import com.rjconsultores.ventaboletos.entidad.Via; import com.rjconsultores.ventaboletos.entidad.Via;
import com.rjconsultores.ventaboletos.exception.BusinessException; import com.rjconsultores.ventaboletos.exception.BusinessException;
import com.rjconsultores.ventaboletos.service.ClaseServicioService; import com.rjconsultores.ventaboletos.service.ClaseServicioService;
import com.rjconsultores.ventaboletos.service.CorridaService;
import com.rjconsultores.ventaboletos.service.EmpresaService; import com.rjconsultores.ventaboletos.service.EmpresaService;
import com.rjconsultores.ventaboletos.service.EsquemaCorridaService; import com.rjconsultores.ventaboletos.service.EsquemaCorridaService;
import com.rjconsultores.ventaboletos.service.GrupoRutaService; import com.rjconsultores.ventaboletos.service.GrupoRutaService;
@ -125,9 +124,6 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer
private GrupoRutaService grupoRutaService; private GrupoRutaService grupoRutaService;
@Autowired @Autowired
private transient PagedListWrapper<RutaCombinacion> plwRutaCombinacion; private transient PagedListWrapper<RutaCombinacion> plwRutaCombinacion;
@Autowired
private CorridaService corridaService;
private Ruta ruta; private Ruta ruta;
private MyListbox rutaList; private MyListbox rutaList;
private MyListbox rutaSecuenciaList; private MyListbox rutaSecuenciaList;
@ -167,7 +163,6 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer
private Intbox txtCantAsientos; private Intbox txtCantAsientos;
private Checkbox chkIndVentaRioCard; private Checkbox chkIndVentaRioCard;
private MyTextbox txtNumRioCard; private MyTextbox txtNumRioCard;
private Button btnCancelarRetomar;
public Ruta getRuta() { public Ruta getRuta() {
return ruta; return ruta;
@ -276,6 +271,8 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer
ruta = (Ruta) Executions.getCurrent().getArg().get("ruta"); ruta = (Ruta) Executions.getCurrent().getArg().get("ruta");
rutaList = (MyListbox) Executions.getCurrent().getArg().get("rutaList"); rutaList = (MyListbox) Executions.getCurrent().getArg().get("rutaList");
super.doAfterCompose(comp); super.doAfterCompose(comp);
// Secuencia // Secuencia
@ -329,6 +326,7 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer
} }
}); });
// Combinacion // Combinacion
rutaCombinacionList.setItemRenderer(this); rutaCombinacionList.setItemRenderer(this);
lsRutaCombinacion = new ArrayList<RutaCombinacion>(); lsRutaCombinacion = new ArrayList<RutaCombinacion>();
@ -376,18 +374,6 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer
} }
carregouCombinacao = false; carregouCombinacao = false;
alterarBotaoRetomarCancelar();
}
private void alterarBotaoRetomarCancelar() {
if (ruta.getIndRutaCancelada()) {
btnCancelarRetomar.setTooltiptext(Labels.getLabel("editarCatalogoDeRutaController.btnRetomarCancelar.tooltipRetomar"));
btnCancelarRetomar.setImage("/gui/img/back.png");
} else {
btnCancelarRetomar.setTooltiptext(Labels.getLabel("editarCatalogoDeRutaController.btnRetomarCancelar.tooltipCancelar"));
btnCancelarRetomar.setImage("/gui/img/forbidden.png");
}
} }
private List<CasetaPeaje> getCasetasPeage(List<RutaCaseta> casetas) { private List<CasetaPeaje> getCasetasPeage(List<RutaCaseta> casetas) {
@ -404,41 +390,6 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer
return casetasPeage; return casetasPeage;
} }
public void onClick$btnCancelarRetomar(Event ev) throws Exception {
if (!ruta.getIndRutaCancelada()) {
if (!existeEsquemaCorridaVigente() && !existeCorridaVenda()) {
ruta.setIndRutaCancelada(true);// cancelar
salvarRuta();
}
} else {
ruta.setIndRutaCancelada(false);// retomar
}
alterarBotaoRetomarCancelar();
}
private boolean existeCorridaVenda() throws InterruptedException {
Corrida corrida = corridaService.buscaCorrridaFutura(ruta, new Date());
if (corrida != null) {
Messagebox.show(Labels.getLabel("editarCatalogoDeRutaController.msg.corridaGeradaVigente")
+ " " + corrida.getId().getCorridaId()
+ " "
+ Labels.getLabel("editarCatalogoDeRutaController.msg.corridaGeradaVigentePt2")
+ " " + corrida.getId().getFeccorrida());
return true;
}
return false;
}
private Boolean existeEsquemaCorridaVigente() throws InterruptedException {
EsquemaCorrida esquemaCorrida = esquemaCorridaService.buscaEsquemaPorRuta(ruta);
if (esquemaCorrida != null) {
Messagebox.show(Labels.getLabel("editarCatalogoDeRutaController.msg.existeEsquemaCorridaVigente")
+ " " + esquemaCorrida.getEsquemacorridaId());
return true;
}
return false;
}
protected void disableEnableNumRioCard() { protected void disableEnableNumRioCard() {
if(chkIndVentaRioCard.isChecked()) { if(chkIndVentaRioCard.isChecked()) {
txtNumRioCard.setDisabled(false); txtNumRioCard.setDisabled(false);
@ -452,7 +403,8 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer
private void paginarCombinacao() { private void paginarCombinacao() {
if (ruta.getRutaId() != null) { if (ruta.getRutaId() != null) {
HibernateSearchObject<RutaCombinacion> claseServicioBusqueda = new HibernateSearchObject<RutaCombinacion>(RutaCombinacion.class, HibernateSearchObject<RutaCombinacion> claseServicioBusqueda =
new HibernateSearchObject<RutaCombinacion>(RutaCombinacion.class,
pagingRutaCombinacion.getPageSize()); pagingRutaCombinacion.getPageSize());
claseServicioBusqueda.addFilterEqual("activo", Boolean.TRUE); claseServicioBusqueda.addFilterEqual("activo", Boolean.TRUE);
@ -469,7 +421,6 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer
paradaSecuencia.setVia(via); paradaSecuencia.setVia(via);
lsParadasSequencia.add(paradaSecuencia); lsParadasSequencia.add(paradaSecuencia);
} }
private void addTramoPardaSecuencia(Parada parada, Via via, Short numsecuencia, List<RutaCaseta> lCas, String tempo, String km) { private void addTramoPardaSecuencia(Parada parada, Via via, Short numsecuencia, List<RutaCaseta> lCas, String tempo, String km) {
ParadaSecuencia paradaSecuencia = new ParadaSecuencia(); ParadaSecuencia paradaSecuencia = new ParadaSecuencia();
paradaSecuencia.setParada(parada); paradaSecuencia.setParada(parada);
@ -781,14 +732,6 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer
} }
public void onClick$btnSalvar(Event ev) throws InterruptedException { public void onClick$btnSalvar(Event ev) throws InterruptedException {
if (ruta.getIndRutaCancelada()) {
Messagebox.show(Labels.getLabel("editarCatalogoDeRutaController.msg.linhaDesativada"));
return;
}
salvarRuta();
}
private void salvarRuta() throws InterruptedException {
txtPrefixo.getValue(); txtPrefixo.getValue();
txtNumRioCard.getValue(); txtNumRioCard.getValue();
@ -914,6 +857,7 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer
Labels.getLabel("editarCatalogoDeRutaController.window.title"), Labels.getLabel("editarCatalogoDeRutaController.window.title"),
Messagebox.OK, Messagebox.ERROR); Messagebox.OK, Messagebox.ERROR);
} }
} }
public void onClick$btnApagar(Event ev) { public void onClick$btnApagar(Event ev) {
@ -972,6 +916,7 @@ public class EditarCatalogoDeRutaController extends MyGenericForwardComposer
lc.appendChild(comboVenda); lc.appendChild(comboVenda);
lc.setParent(lstm); lc.setParent(lstm);
Tramo tramo = rutaCombinacion.getTramo(); Tramo tramo = rutaCombinacion.getTramo();
String descTramoDetalhado = tramo.getOrigem().getDescparada() + "|" +tramo.getDestino().getDescparada(); String descTramoDetalhado = tramo.getOrigem().getDescparada() + "|" +tramo.getDestino().getDescparada();

View File

@ -490,11 +490,6 @@ public class EditarCorridaController extends MyGenericForwardComposer {
@SuppressWarnings({ "deprecation", "unchecked" }) @SuppressWarnings({ "deprecation", "unchecked" })
public void onClick$btnSalvar(Event ev) throws InterruptedException { public void onClick$btnSalvar(Event ev) throws InterruptedException {
if(esquemaCorrida.getRuta().getIndRutaCancelada()){
Messagebox.show(Labels.getLabel("editarCatalogoDeRutaController.msg.rutaDesativadaId")
+ " " + esquemaCorrida.getRuta().getRutaId());
return;
}
Date dataDe = fecniciovigencia.getValue(); Date dataDe = fecniciovigencia.getValue();
Date dataAte = fecfinvigencia.getValue(); Date dataAte = fecfinvigencia.getValue();
txtNumCorrida.getValue(); txtNumCorrida.getValue();

View File

@ -1737,17 +1737,10 @@ busquedaCatalogoDeRutaController.lbClase.value = Clase de servicio
busquedaCatalogoDeRutaController.msg.validactionRemocionParada=No es posible quitar la parada "{0}" de la linea pues ya existe(n) servicio(s) que la ocupa. Quite la parada "{0}" de las siguientes corridas : ({1}) para después quitar en la linea busquedaCatalogoDeRutaController.msg.validactionRemocionParada=No es posible quitar la parada "{0}" de la linea pues ya existe(n) servicio(s) que la ocupa. Quite la parada "{0}" de las siguientes corridas : ({1}) para después quitar en la linea
# Pantalla Editar linea # Pantalla Editar linea
editarCatalogoDeRutaController.btnRetomarCancelar.tooltipCancelar=Desactivar
editarCatalogoDeRutaController.btnRetomarCancelar.tooltipRetomar=Reactivar
editarCatalogoDeRutaController.lbChkCancelarRuta=Cancelar Ruta editarCatalogoDeRutaController.lbChkCancelarRuta=Cancelar Ruta
editarCatalogoDeRutaController.excepcionRecorrido = Excepción de tiempo editarCatalogoDeRutaController.excepcionRecorrido = Excepción de tiempo
editarCatalogoDeRutaController.padraoRecorrido = Tiempo estandar editarCatalogoDeRutaController.padraoRecorrido = Tiempo estandar
editarCatalogoDeRutaController.tempoLocalidade = Tempo Localidade editarCatalogoDeRutaController.tempoLocalidade = Tempo Localidade
editarCatalogoDeRutaController.msg.rutaDesativadaId=La edición no permitida! El servicio contiene una ruta inactiva con id
editarCatalogoDeRutaController.msg.linhaDesativada=Ruta inactiva, edicíon no permitida
editarCatalogoDeRutaController.msg.existeEsquemaCorridaVigente=Hay un servicio existente para esta ruta con id
editarCatalogoDeRutaController.msg.corridaGeradaVigente=Hay servicios disponibles de esa línea con id
editarCatalogoDeRutaController.msg.corridaGeradaVigentePt2=y la fecha prevista para el
editarCatalogoDeRutaController.msg.validacionCambionEnCombinaciones = Al incluir o eliminar una parada las combinaciones serán rehechas. Es necesário revisar las combinaciones en el caso de que haya alguna configuración específica para una(s) de elas(s). Confirmar cambio? editarCatalogoDeRutaController.msg.validacionCambionEnCombinaciones = Al incluir o eliminar una parada las combinaciones serán rehechas. Es necesário revisar las combinaciones en el caso de que haya alguna configuración específica para una(s) de elas(s). Confirmar cambio?
editarCatalogoDeRutaController.msg.cambioSecuencia = No es posible cambiar la origen inicial o destino final para una linea ya existente editarCatalogoDeRutaController.msg.cambioSecuencia = No es posible cambiar la origen inicial o destino final para una linea ya existente
editarCatalogoDeRutaController.msg.validacion.paradas = Debe de informar las secuencias de la linea editarCatalogoDeRutaController.msg.validacion.paradas = Debe de informar las secuencias de la linea

View File

@ -1785,17 +1785,13 @@ busquedaCatalogoDeRutaController.lhId.label = ID
busquedaCatalogoDeRutaController.lhDesc.label = Linha busquedaCatalogoDeRutaController.lhDesc.label = Linha
busquedaCatalogoDeRutaController.lhClase.label = Classe busquedaCatalogoDeRutaController.lhClase.label = Classe
busquedaCatalogoDeRutaController.lbClase.value = Tipo de Classe busquedaCatalogoDeRutaController.lbClase.value = Tipo de Classe
busquedaCatalogoDeRutaController.chkRutaCancelada=Linhas Inativas
busquedaCatalogoDeRutaController.msg.validactionRemocionParada=Não é possível quitar a localidade "{0}" da linha pues já existe(n) serviço(s) que a ocupa. Quite a localidade "{0}" de as seguintes serviços : ({1}) para depois quitar na linha. busquedaCatalogoDeRutaController.msg.validactionRemocionParada=Não é possível quitar a localidade "{0}" da linha pues já existe(n) serviço(s) que a ocupa. Quite a localidade "{0}" de as seguintes serviços : ({1}) para depois quitar na linha.
# Pantalla Editar Linha # Pantalla Editar Linha
editarCatalogoDeRutaController.btnRetomarCancelar.tooltipCancelar=Desativar editarCatalogoDeRutaController.lbChkCancelarRuta=Cancelar Linha
editarCatalogoDeRutaController.btnRetomarCancelar.tooltipRetomar=Reativar
editarCatalogoDeRutaController.excepcionRecorrido = Exceção de tempo editarCatalogoDeRutaController.excepcionRecorrido = Exceção de tempo
editarCatalogoDeRutaController.padraoRecorrido = Tempo Padrão editarCatalogoDeRutaController.padraoRecorrido = Tempo Padrão
editarCatalogoDeRutaController.tempoLocalidade = Tempo Localidade editarCatalogoDeRutaController.tempoLocalidade = Tempo Localidade
editarCatalogoDeRutaController.msg.rutaDesativadaId=Edição não permitida! O serviço contem uma rota inativa com id
editarCatalogoDeRutaController.msg.linhaDesativada=Linha desativada, edição não permitida
editarCatalogoDeRutaController.msg.existeEsquemaCorridaVigente=Existe um serviço vigente para esta linha com id editarCatalogoDeRutaController.msg.existeEsquemaCorridaVigente=Existe um serviço vigente para esta linha com id
editarCatalogoDeRutaController.msg.corridaGeradaVigente=Existem serviços disponíveis nessa linha com id editarCatalogoDeRutaController.msg.corridaGeradaVigente=Existem serviços disponíveis nessa linha com id
editarCatalogoDeRutaController.msg.corridaGeradaVigentePt2= e data marcada para o dia editarCatalogoDeRutaController.msg.corridaGeradaVigentePt2= e data marcada para o dia

View File

@ -76,7 +76,6 @@
</grid> </grid>
<toolbar> <toolbar>
<checkbox id="chkRutaCancelada" label="${c:l('busquedaCatalogoDeRutaController.chkRutaCancelada')}"/>
<button id="btnPesquisa" image="/gui/img/find.png" label="${c:l('busquedaCatalogoDeRutaController.btnPesquisa.label')}" /> <button id="btnPesquisa" image="/gui/img/find.png" label="${c:l('busquedaCatalogoDeRutaController.btnPesquisa.label')}" />
</toolbar> </toolbar>

View File

@ -9,7 +9,6 @@
apply="${editarCatalogoDeRutaController}" height="550px" width="700px" apply="${editarCatalogoDeRutaController}" height="550px" width="700px"
contentStyle="overflow:auto" contentStyle="overflow:auto"
title="${c:l('editarCatalogoDeRutaController.window.title')}"> title="${c:l('editarCatalogoDeRutaController.window.title')}">
<toolbar> <toolbar>
<hbox spacing="5px" style="padding:1px" align="right"> <hbox spacing="5px" style="padding:1px" align="right">
<button id="btnApagar" height="20" <button id="btnApagar" height="20"
@ -28,29 +27,6 @@
tooltiptext="${c:l('editarCatalogoDeRutaController.btnCopiar.tooltiptext')}" /> tooltiptext="${c:l('editarCatalogoDeRutaController.btnCopiar.tooltiptext')}" />
</hbox> </hbox>
</toolbar> </toolbar>
<hbox spacing="5px" style="padding:1px" align="right">
<button id="btnApagar" height="20"
image="/gui/img/remove.png" width="35px"
tooltiptext="${c:l('editarCatalogoDeRutaController.btnApagar.tooltiptext')}" />
<button id="btnSalvar" height="20"
image="/gui/img/save.png" width="35px"
tooltiptext="${c:l('editarCatalogoDeRutaController.btnSalvar.tooltiptext')}" />
<button id="btnCancelarRetomar" height="20" width="35px"/>
<button id="btnCopiar" height="20"
image="/gui/img/copiar.png" width="35px"
tooltiptext="${c:l('editarCatalogoDeRutaController.btnCopiar.tooltiptext')}" />
<separator orient="vertical" />
<button id="btnFechar" height="20" image="/gui/img/exit.png"
width="35px" onClick="winEditarRuta.detach()"
tooltiptext="${c:l('editarCatalogoDeRutaController.btnFechar.tooltiptext')}" />
</hbox>
<tabbox id="tb"> <tabbox id="tb">
<tabs id="tabs"> <tabs id="tabs">
<tab id="A" <tab id="A"