58010 - Falha seleção Bloqueio - ADM

bug#al-1845
dev:
qua:

O multiselect causa um bug com um duplo clique, foi necessário
implementar o evento dentro do Renderer, pois com varios selecionados a
tela chamava o objeto errado e era preciso selecionar antes de dar os
dois cliques.
master
valdir.cordeiro 2022-12-06 10:42:06 -03:00
parent 308f7a5d97
commit 30f691ea15
4 changed files with 226 additions and 185 deletions

View File

@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.rjconsultores</groupId>
<artifactId>ventaboletosadm</artifactId>
<version>1.0.8</version>
<version>1.0.9</version>
<packaging>war</packaging>
<distributionManagement>

View File

@ -15,8 +15,6 @@ import org.zkoss.util.resource.Labels;
import org.zkoss.zhtml.Messagebox;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zul.Button;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Comboitem;
import org.zkoss.zul.Datebox;
@ -103,16 +101,9 @@ public class BusquedaConfRestricaoCanalVentaController extends MyGenericForwardC
lsTipoPtoVta = tipoPtoVtaService.obtenerTodos();
super.doAfterCompose(comp);
cmbRuta.setItemRenderer(new MyComboRutaRenderer());
confRestricaoCanalVentaList.setItemRenderer(new RenderConfRestricaoCanalVenta());
confRestricaoCanalVentaList.addEventListener("onDoubleClick", new EventListener() {
@Override
public void onEvent(Event event) throws Exception {
ConfRestricaoCanalVenta conf = (ConfRestricaoCanalVenta) confRestricaoCanalVentaList.getSelected();
verConfRestricaoCanalVenta(conf);
}
});
confRestricaoCanalVentaList.setItemRenderer(new RenderConfRestricaoCanalVenta(confRestricaoCanalVentaList, this));
refreshLista();
}

View File

@ -1,38 +1,74 @@
package com.rjconsultores.ventaboletos.web.utilerias.render;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;
import org.zkoss.util.resource.Labels;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;
import com.rjconsultores.ventaboletos.entidad.ConfRestricaoCanalVenta;
import com.rjconsultores.ventaboletos.web.gui.controladores.esquemaoperacional.BusquedaConfRestricaoCanalVentaController;
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria;
public class RenderConfRestricaoCanalVenta implements ListitemRenderer {
private SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
private MyListbox confRestricaoCanalVentaList;
private BusquedaConfRestricaoCanalVentaController telaPrincipal;
public RenderConfRestricaoCanalVenta() {
super();
}
public RenderConfRestricaoCanalVenta(MyListbox confList, BusquedaConfRestricaoCanalVentaController telaMae) {
super();
confRestricaoCanalVentaList = confList;
telaPrincipal = telaMae;
}
public void render(Listitem lstm, Object o) throws Exception {
ConfRestricaoCanalVenta confRestricaoCanalVenta = (ConfRestricaoCanalVenta) o;
EventListener doubleClick = new EventListener() {
@Override
public void onEvent(Event event) throws Exception {
verConfRestricaoCanalVenta(confRestricaoCanalVenta);
}
};
Listcell lc = new Listcell();
lc = new Listcell(confRestricaoCanalVenta.getConfRestricaoCanalVentaId().toString() == null ? "-" : confRestricaoCanalVenta.getConfRestricaoCanalVentaId().toString());
lc.addEventListener("onDoubleClick", doubleClick);
lc.setParent(lstm);
lc = new Listcell(confRestricaoCanalVenta.getRuta() == null ? "-" : MyComboRutaRenderer.buscarDescricaoComboRuta(confRestricaoCanalVenta.getRuta()));
lc.setParent(lstm);
lc = new Listcell(confRestricaoCanalVenta.getDescConfRestricaoCanalVenta() == null ? "-" : confRestricaoCanalVenta.getDescConfRestricaoCanalVenta());
lc.addEventListener("onDoubleClick", doubleClick);
lc.setParent(lstm);
lc = new Listcell(confRestricaoCanalVenta.getCorridaId() == null ? "-" : confRestricaoCanalVenta.getCorridaId().toString());
lc.addEventListener("onDoubleClick", doubleClick);
lc.setParent(lstm);
lc = new Listcell(confRestricaoCanalVenta.getFecCorrida() == null ? "-" : sdf.format(confRestricaoCanalVenta.getFecCorrida()));
lc.addEventListener("onDoubleClick", doubleClick);
lc.setParent(lstm);
lc = new Listcell(buscarDescricaoVigencia(confRestricaoCanalVenta));
lc.addEventListener("onDoubleClick", doubleClick);
lc.setParent(lstm);
lc.setParent(lstm);
lstm.setAttribute("data", confRestricaoCanalVenta);
@ -44,5 +80,19 @@ public class RenderConfRestricaoCanalVenta implements ListitemRenderer {
}
return " - ";
}
@SuppressWarnings({ "rawtypes", "unchecked" })
private void verConfRestricaoCanalVenta(ConfRestricaoCanalVenta conf) {
if (conf == null) {
return;
}
Map args = new HashMap();
args.put("confRestricaoCanalVenta", conf);
args.put("confRestricaoCanalVentaList", confRestricaoCanalVentaList);
telaPrincipal.openWindow("/gui/esquema_operacional/editarConfRestricaoCanalVenta.zul",
Labels.getLabel("editarConfRestricaoCanalVentaController.window.title"),
args, PantallaUtileria.MODAL);
}
}

View File

@ -1,173 +1,173 @@
<?xml version="1.0" encoding="UTF-8"?>
<?page contentType="text/html;charset=UTF-8"?>
<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" arg0="winBusquedaConfRestricaoCanalVenta"?>
<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c"?>
<zk xmlns="http://www.zkoss.org/2005/zul">
<window id="winBusquedaConfRestricaoCanalVenta"
title="${c:l('confRestricaoCanalVentaController.window.title')}"
apply="${confRestricaoCanalVentaController}"
contentStyle="overflow:auto" height="550px" width="950px"
border="normal" xmlns:h="http://www.w3.org/1999/xhtml">
<toolbar>
<button id="btnRefresh" image="/gui/img/refresh.png"
width="35px"
tooltiptext="${c:l('confRestricaoCanalVentaController.btnRefresh.tooltiptext')}" />
<separator orient="vertical" />
<button id="btnNovo" image="/gui/img/add.png" width="35px"
tooltiptext="${c:l('confRestricaoCanalVentaController.btnNovo.tooltiptext')}" />
<separator orient="vertical" />
<button id="btnCerrar"
onClick="winBusquedaConfRestricaoCanalVenta.detach()"
image="/gui/img/exit.png" width="35px"
tooltiptext="${c:l('confRestricaoCanalVentaController.btnCerrar.tooltiptext')}" />
<separator orient="vertical" />
<button id="btnApagar" height="20"
image="/gui/img/remove.png" width="35px"
tooltiptext="${c:l('confRestricaoCanalVentaController.btnApagar.tooltiptext')}" />
</toolbar>
<grid fixedLayout="true">
<columns>
<column width="15%" />
<column width="35%" />
<column width="15%" />
<column width="35%" />
</columns>
<rows>
<row spans="1,3">
<label
value="${c:l('confRestricaoCanalVentaController.lhDesc.label')}" />
<textbox id="txtDescConf" width="98%"
use="com.rjconsultores.ventaboletos.web.utilerias.MyTextbox" />
</row>
<row spans="1,3" >
<label
value="${c:l('confRestricaoCanalVentaController.lhEmpresa.label')}" />
<combobox id="cmbEmpresa"
use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar"
mold="rounded" buttonVisible="true" width="70%"
model="@{winBusquedaConfRestricaoCanalVenta$composer.lsEmpresa}" />
</row>
<row spans="1,3">
<label
value="${c:l('editarConfiguracionCorridaController.cmbRuta.value')}" />
<combobox id="cmbRuta"
use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxRuta"
mold="rounded" buttonVisible="true" width="70%" />
</row>
<row>
<label
value="${c:l('confRestricaoCanalVentaController.Origem.label')}" />
<combobox id="cmbOrigen" autodrop="true"
mold="rounded" buttonVisible="true" width="99%"
use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxParada" />
<label
value="${c:l('confRestricaoCanalVentaController.CanalVenda.label')}" />
<combobox id="cmbTipoPtoVta"
use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar"
mold="rounded" buttonVisible="true" width="98%"
model="@{winBusquedaConfRestricaoCanalVenta$composer.lsTipoPtoVta}" />
</row>
<row>
<label
value="${c:l('confRestricaoCanalVentaController.Destino.label')}" />
<combobox id="cmbDestino" autodrop="true"
mold="rounded" buttonVisible="true" width="99%"
use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxParada" />
<label
value="${c:l('confRestricaoCanalVentaController.PuntoVenta.label')}" />
<combobox id="cmbPtoVta"
mold="rounded" buttonVisible="true" width="98%"
use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxPuntoVenta"
/>
</row>
<row>
<label
value="${c:l('confRestricaoCanalVentaController.DataServico.label')}" />
<datebox id="dtServicio" width="50%"
mold="rounded" />
<label
value="${c:l('confRestricaoCanalVentaController.lhVigencia.label')}" />
<hbox>
<h:table border="0">
<h:tr>
<h:td>
<label
value="${c:l('confRestricaoCanalVentaController.lhDe.label')}" />
</h:td>
<h:td>
<datebox
id="feciniciovigencia" width="90%"
mold="rounded" />
</h:td>
<h:td>
<label
value="${c:l('confRestricaoCanalVentaController.lhAte.label')}" />
</h:td>
<h:td>
<datebox
id="fecfinvigencia" width="90%"
mold="rounded" />
</h:td>
</h:tr>
</h:table>
</hbox>
</row>
<row>
<label
value="${c:l('confRestricaoCanalVentaController.Servico.label')}" />
<intbox id="txtServico" width="60%" />
<label
value="${c:l('confRestricaoCanalVentaController.IdBloqueio.label')}" />
<intbox id="txtIdBloqueio" width="60%" />
</row>
</rows>
</grid>
<toolbar>
<button id="btnPesquisa" image="/gui/img/find.png"
label="${c:l('confRestricaoCanalVentaController.btnPesquisa.label')}" />
</toolbar>
<paging id="pagingConfRestricaoCanalVenta" pageSize="20" />
<listbox id="confRestricaoCanalVentaList"
use="com.rjconsultores.ventaboletos.web.utilerias.MyListbox"
multiple="true" checkmark="true" vflex="true" height="95%">
<listhead sizable="true">
<listheader width="10%" image="/gui/img/create_doc.gif"
label="${c:l('lb.id')}" sort="auto(confRestricaoCanalVentaId)" />
<listheader image="/gui/img/create_doc.gif"
label="${c:l('confRestricaoCanalVentaController.lhRuta.label')}"
sort="auto(ruta.numRuta)" width="25%" />
<listheader image="/gui/img/create_doc.gif"
label="${c:l('confRestricaoCanalVentaController.lhDesc.label')}"
sort="auto(descConfRestricaoCanalVenta)" />
<listheader image="/gui/img/create_doc.gif" width="10%"
label="${c:l('confRestricaoCanalVentaController.Servico.label')}"
sort="auto(corridaId)" />
<listheader image="/gui/img/create_doc.gif" width="12%"
label="${c:l('confRestricaoCanalVentaController.DataServico.label')}"
sort="auto(fecCorrida)" />
<listheader image="/gui/img/create_doc.gif"
label="${c:l('confRestricaoCanalVentaController.lhVigencia.label')}" />
</listhead>
</listbox>
</window>
<?xml version="1.0" encoding="UTF-8"?>
<?page contentType="text/html;charset=UTF-8"?>
<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" arg0="winBusquedaConfRestricaoCanalVenta"?>
<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c"?>
<zk xmlns="http://www.zkoss.org/2005/zul">
<window id="winBusquedaConfRestricaoCanalVenta"
title="${c:l('confRestricaoCanalVentaController.window.title')}"
apply="${confRestricaoCanalVentaController}"
contentStyle="overflow:auto" height="550px" width="950px"
border="normal" xmlns:h="http://www.w3.org/1999/xhtml">
<toolbar>
<button id="btnRefresh" image="/gui/img/refresh.png"
width="35px"
tooltiptext="${c:l('confRestricaoCanalVentaController.btnRefresh.tooltiptext')}" />
<separator orient="vertical" />
<button id="btnNovo" image="/gui/img/add.png" width="35px"
tooltiptext="${c:l('confRestricaoCanalVentaController.btnNovo.tooltiptext')}" />
<separator orient="vertical" />
<button id="btnCerrar"
onClick="winBusquedaConfRestricaoCanalVenta.detach()"
image="/gui/img/exit.png" width="35px"
tooltiptext="${c:l('confRestricaoCanalVentaController.btnCerrar.tooltiptext')}" />
<separator orient="vertical" />
<button id="btnApagar" height="20"
image="/gui/img/remove.png" width="35px"
tooltiptext="${c:l('confRestricaoCanalVentaController.btnApagar.tooltiptext')}" />
</toolbar>
<grid fixedLayout="true">
<columns>
<column width="15%" />
<column width="35%" />
<column width="15%" />
<column width="35%" />
</columns>
<rows>
<row spans="1,3">
<label
value="${c:l('confRestricaoCanalVentaController.lhDesc.label')}" />
<textbox id="txtDescConf" width="98%"
use="com.rjconsultores.ventaboletos.web.utilerias.MyTextbox" />
</row>
<row spans="1,3" >
<label
value="${c:l('confRestricaoCanalVentaController.lhEmpresa.label')}" />
<combobox id="cmbEmpresa"
use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar"
mold="rounded" buttonVisible="true" width="70%"
model="@{winBusquedaConfRestricaoCanalVenta$composer.lsEmpresa}" />
</row>
<row spans="1,3">
<label
value="${c:l('editarConfiguracionCorridaController.cmbRuta.value')}" />
<combobox id="cmbRuta"
use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxRuta"
mold="rounded" buttonVisible="true" width="70%" />
</row>
<row>
<label
value="${c:l('confRestricaoCanalVentaController.Origem.label')}" />
<combobox id="cmbOrigen" autodrop="true"
mold="rounded" buttonVisible="true" width="99%"
use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxParada" />
<label
value="${c:l('confRestricaoCanalVentaController.CanalVenda.label')}" />
<combobox id="cmbTipoPtoVta"
use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar"
mold="rounded" buttonVisible="true" width="98%"
model="@{winBusquedaConfRestricaoCanalVenta$composer.lsTipoPtoVta}" />
</row>
<row>
<label
value="${c:l('confRestricaoCanalVentaController.Destino.label')}" />
<combobox id="cmbDestino" autodrop="true"
mold="rounded" buttonVisible="true" width="99%"
use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxParada" />
<label
value="${c:l('confRestricaoCanalVentaController.PuntoVenta.label')}" />
<combobox id="cmbPtoVta"
mold="rounded" buttonVisible="true" width="98%"
use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxPuntoVenta"
/>
</row>
<row>
<label
value="${c:l('confRestricaoCanalVentaController.DataServico.label')}" />
<datebox id="dtServicio" width="50%"
mold="rounded" />
<label
value="${c:l('confRestricaoCanalVentaController.lhVigencia.label')}" />
<hbox>
<h:table border="0">
<h:tr>
<h:td>
<label
value="${c:l('confRestricaoCanalVentaController.lhDe.label')}" />
</h:td>
<h:td>
<datebox
id="feciniciovigencia" width="90%"
mold="rounded" />
</h:td>
<h:td>
<label
value="${c:l('confRestricaoCanalVentaController.lhAte.label')}" />
</h:td>
<h:td>
<datebox
id="fecfinvigencia" width="90%"
mold="rounded" />
</h:td>
</h:tr>
</h:table>
</hbox>
</row>
<row>
<label
value="${c:l('confRestricaoCanalVentaController.Servico.label')}" />
<intbox id="txtServico" width="60%" />
<label
value="${c:l('confRestricaoCanalVentaController.IdBloqueio.label')}" />
<intbox id="txtIdBloqueio" width="60%" />
</row>
</rows>
</grid>
<toolbar>
<button id="btnPesquisa" image="/gui/img/find.png"
label="${c:l('confRestricaoCanalVentaController.btnPesquisa.label')}" />
</toolbar>
<paging id="pagingConfRestricaoCanalVenta" pageSize="20" />
<listbox id="confRestricaoCanalVentaList" nonselectableTags="*"
use="com.rjconsultores.ventaboletos.web.utilerias.MyListbox"
multiple="true" checkmark="true" vflex="true" height="95%">
<listhead sizable="true">
<listheader width="10%" image="/gui/img/create_doc.gif"
label="${c:l('lb.id')}" sort="auto(confRestricaoCanalVentaId)" />
<listheader image="/gui/img/create_doc.gif"
label="${c:l('confRestricaoCanalVentaController.lhRuta.label')}"
sort="auto(ruta.numRuta)" width="25%" />
<listheader image="/gui/img/create_doc.gif"
label="${c:l('confRestricaoCanalVentaController.lhDesc.label')}"
sort="auto(descConfRestricaoCanalVenta)" />
<listheader image="/gui/img/create_doc.gif" width="10%"
label="${c:l('confRestricaoCanalVentaController.Servico.label')}"
sort="auto(corridaId)" />
<listheader image="/gui/img/create_doc.gif" width="12%"
label="${c:l('confRestricaoCanalVentaController.DataServico.label')}"
sort="auto(fecCorrida)" />
<listheader image="/gui/img/create_doc.gif"
label="${c:l('confRestricaoCanalVentaController.lhVigencia.label')}" />
</listhead>
</listbox>
</window>
</zk>