I have a site with GWT, SmartGwt and Sencha GXT. Recently with the updated browsers (IE, Chrome, Opera, Firefox) a few buttons on our site do not work.
I have a Tab with a grid like this:
Tab
|_Grid
|_Rows with buttons( this buttons don't work now)
in code look's like this:
VisualizadorCartasTab.java
import ...
public class VisualizadorCartasTab extends Tab {
private final Canvas panelTab;
private final VLayout layoutGen;
private GrillaRepositorioXML grillaRepositorio;
private SelectItem cmbPeriodo;
private SelectItem cmbNegocio;
private SelectItem cmbProceso;
private IButton btnBuscar;
private IButton btnLimpiar;
private IButton btnEliminar;
private IButton btnVistoBueno;
private IButton btnReprocesar;
private IButton btnBuscarrut;
private TextItem textItemRutContribuyente;
private VisualizadorCartasFacadeAsync servicio;
private DcRepositorioXmlTo toTempo;
private CheckboxItem verXml;
private SectionStack secciones;
private SectionStackSection seccionBusqueda;
private VLayout vlPrincipal;
...
public VisualizadorCartasTab(String titulo, final ParametersConfigLetter configLetter) {
super(titulo);
panelTab = new Canvas();
layoutGen = new VLayout();
grillaRepositorio = new GrillaRepositorioXML();
vlPrincipal = new VLayout();
vlPrincipal.addMember(grillaRepositorio.asWidget());
panelTab.addChild(vlPrincipal);
hanlders(configLetter);
...
}
public void dibujarPantalla() {
grillaRepositorio.getLoader().load();
btnLimpiar.setDisabled(false);
btnEliminar.setDisabled(false);
btnBuscarrut.setDisabled(false);
}
private void hanlders(final ParametersConfigLetter configLetter) {
....
btnBuscar.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
@Override
public void onFailure(Throwable caught) {
}
@Override
public void onSuccess(Boolean result) {
if(result){
repoXML = new DcRepositorioXmlTo();
repoXML.setRepo_proceso(String.valueOf(cmbProceso.getValue()));
repoXML.setProc_periodo(String.valueOf(cmbPeriodo.getValue()));
repoXML.setProc_negocio(String.valueOf(cmbNegocio.getValue()));
grillaRepositorio.setRepositorio(repoXML);
dibujarPantalla();
}else{
SC.say("msg");
}
}
});
}
}
});
...
}
}
GrillaRepositorioXML.java
public class GrillaRepositorioXML implements IsWidget{
private FramedPanel mainPnl;
private Grid<DcRepositorioXmlTo> gridRepositorio;
private static final RepositorioXMLTo nomProps = GWT.create(RepositorioXMLTo.class);
private AsyncCallback callbackGrid;
private PagingLoader<PagingLoadConfig, PagingLoadResult<DcRepositorioXmlTo>> loader;
private PagingToolBar pagingToolBar;
private VisualizadorCartasFacadeAsync visualizadorCartasFacade = ServiceLocator.getVisualizadorCartasFacade();
private DcRepositorioXmlTo repositorio = new DcRepositorioXmlTo();
private final int PAGE_SIZE = 50;
private FiltersBean filters;
private List<DcRepositorioXmlTo> selNomina;
private Boolean verXml = false;
@Override
public Widget asWidget () {
return panel();
}
private Widget panel() {
IdentityValueProvider<DcRepositorioXmlTo> identity = new IdentityValueProvider<DcRepositorioXmlTo>();
final CheckBoxSelectionModel<DcRepositorioXmlTo> selectionModel = new CheckBoxSelectionModel<DcRepositorioXmlTo>(identity);
RpcProxy<PagingLoadConfig, PagingLoadResult<DcRepositorioXmlTo>> proxy = new RpcProxy<PagingLoadConfig, PagingLoadResult<DcRepositorioXmlTo>>() {
@Override
public void load(PagingLoadConfig loadConfig,
final AsyncCallback<PagingLoadResult<DcRepositorioXmlTo>> callback) {
filters = new FiltersBean();
filters.setLimit(loadConfig.getLimit());
filters.setOffset(loadConfig.getOffset());
callbackGrid = new AsyncCallback<PagingLoadResult<DcRepositorioXmlTo>>() {
@Override
public void onSuccess(PagingLoadResult<DcRepositorioXmlTo> result) {
pagingToolBar.unmask();
if(result.getData().isEmpty()){
SC.say("No hay resultados para la busqueda");
}
callback.onSuccess(result);
}
@Override
public void onFailure(Throwable caught) {
pagingToolBar.unmask();
callback.onFailure(caught);
SC.warn("Msg" + caught.getMessage());
}
};
visualizadorCartasFacade.getRepositorioXml(loadConfig, filters, repositorio, callbackGrid);
}
};
ListStore<DcRepositorioXmlTo> store = new ListStore<DcRepositorioXmlTo>(nomProps.key());
loader = new PagingLoader<PagingLoadConfig, PagingLoadResult<DcRepositorioXmlTo>>(proxy);
loader.setRemoteSort(true);
loader.addLoadHandler(new LoadResultListStoreBinding<PagingLoadConfig, DcRepositorioXmlTo, PagingLoadResult<DcRepositorioXmlTo>>(store));
pagingToolBar = new PagingToolBar(PAGE_SIZE);
pagingToolBar.setBorders(true);
pagingToolBar.bind(loader);
/** COLUMNAS **/
ColumnConfig<DcRepositorioXmlTo, String> colEstado = new ColumnConfig<DcRepositorioXmlTo, String>(nomProps.estado(), 82, "ESTADO");
ColumnConfig<DcRepositorioXmlTo, String> colEnvio = new ColumnConfig<DcRepositorioXmlTo, String>(nomProps.repo_tipo_envio(), 82, "TIPO ENVIO");
ColumnConfig<DcRepositorioXmlTo, String> colRut = new ColumnConfig<DcRepositorioXmlTo, String>(nomProps.repo_rut(), 82, "RUT CONTRIBUYENTE");
ColumnConfig<DcRepositorioXmlTo, String> colNombre = new ColumnConfig<DcRepositorioXmlTo, String>(nomProps.repo_nom_rzsoc(), 82, "NOMBRE");
ColumnConfig<DcRepositorioXmlTo, String> colMonto = new ColumnConfig<DcRepositorioXmlTo, String>(nomProps.monto(), 82, "MONTO");
ColumnConfig<DcRepositorioXmlTo, String> colDireccion = new ColumnConfig<DcRepositorioXmlTo, String>(nomProps.repo_direccion(), 82, "DIRECCION");
ColumnConfig<DcRepositorioXmlTo, String> colComuna = new ColumnConfig<DcRepositorioXmlTo, String>(nomProps.repo_comuna(), 82, "COMUNA");
ColumnConfig<DcRepositorioXmlTo, String> colUnidad = new ColumnConfig<DcRepositorioXmlTo, String>(nomProps.repo_unidad(), 82, "UNIDAD");
final ColumnConfig<DcRepositorioXmlTo, String> colPdf = new ColumnConfig<DcRepositorioXmlTo, String>(nomProps.pesoPdf(), 90, "VER");
final TextButtonCell button = new TextButtonCell(){
@Override
public void render(com.google.gwt.cell.client.Cell.Context context, String value, SafeHtmlBuilder sb) {
String style = "style='background-color: " + (Integer.parseInt(value) == 15 ? "red" : "white") + "'";
sb.appendHtmlConstant("<button type='button' "+style+" >VER</button>");
}
};
button.setIcon(Icons.INSTANCE.pdf());
button.addSelectHandler(new SelectHandler() {
@Override
public void onSelect(SelectEvent event) {
String carta = "";
String plantilla = "";
carta = gridRepositorio.getSelectionModel().getSelectedItem().getCarta();
plantilla = gridRepositorio.getSelectionModel().getSelectedItem().getPlantilla();
if(verXml){
dialog(carta);
}else{
if(!carta.equalsIgnoreCase("") && !plantilla.equalsIgnoreCase("")){
FormPanel fp = new FormPanel();
com.google.gwt.user.client.Window.alert(GWT.getModuleBaseURL()+"generaPdf");
fp.setAction(GWT.getModuleBaseURL()+"generaPdf");
fp.setMethod(Method.POST);
fp.setEncoding(Encoding.MULTIPART);
Hidden xmlCarta = new Hidden();
Hidden xmlPlantilla = new Hidden();
xmlCarta.setName("xmlCarta");
xmlCarta.setValue(carta);
xmlPlantilla.setName("xmlPlantilla");
xmlPlantilla.setValue(plantilla);
VerticalLayoutContainer ct = new VerticalLayoutContainer();
ct.add(xmlCarta);
ct.add(xmlPlantilla);
fp.add(ct);
fp.submit();
}else{
SC.say("No se puede generar documento PDF.");
}
}
}
});
colPdf.setCell(button);
List<ColumnConfig<DcRepositorioXmlTo, ?>> listColumnCfg = new ArrayList<ColumnConfig<DcRepositorioXmlTo, ?>>();
listColumnCfg.add(selectionModel.getColumn());
listColumnCfg.add(colEstado);
listColumnCfg.add(colEnvio);
listColumnCfg.add(colRut);
listColumnCfg.add(colNombre);
listColumnCfg.add(colMonto);
listColumnCfg.add(colDireccion);
listColumnCfg.add(colComuna);
listColumnCfg.add(colUnidad);
listColumnCfg.add(colPdf);
/** FIN COLUMNAS */
ColumnModel<DcRepositorioXmlTo> cm = new ColumnModel<DcRepositorioXmlTo>(listColumnCfg);
gridRepositorio = new Grid<DcRepositorioXmlTo>(store, cm);
gridRepositorio.setLoadMask(true);
gridRepositorio.setLoader(loader);
gridRepositorio.setColumnReordering(true);
gridRepositorio.setBorders(true);
gridRepositorio.setAllowTextSelection(true);
gridRepositorio.setSelectionModel(selectionModel);
gridRepositorio.getView().setTrackMouseOver(false);
gridRepositorio.getView().setColumnLines(false);
gridRepositorio.getView().setStripeRows(true);
gridRepositorio.getView().setAutoFill(true);
gridRepositorio.getView().setForceFit(true);
gridRepositorio.setColumnReordering(true);
gridRepositorio.setStateful(true);
StringFilter<DcRepositorioXmlTo> stringFilterEstado = new StringFilter<DcRepositorioXmlTo>(nomProps.estado());
StringFilter<DcRepositorioXmlTo> stringFilterTipoEnvio = new StringFilter<DcRepositorioXmlTo>(nomProps.repo_tipo_envio());
StringFilter<DcRepositorioXmlTo> stringFilterRut = new StringFilter<DcRepositorioXmlTo>(nomProps.repo_rut());
GridFilters<DcRepositorioXmlTo> filtrosRepositorio = new GridFilters<DcRepositorioXmlTo>();
filtrosRepositorio.initPlugin(gridRepositorio);
filtrosRepositorio.setLocal(true);
filtrosRepositorio.addFilter(stringFilterEstado);
filtrosRepositorio.addFilter(stringFilterTipoEnvio);
filtrosRepositorio.addFilter(stringFilterRut);
VerticalLayoutContainer containerSouth = new VerticalLayoutContainer();
containerSouth.add(gridRepositorio, new VerticalLayoutData(1, 1));
containerSouth.add(pagingToolBar, new VerticalLayoutData(1, -1));
FramedPanel southPanel = new FramedPanel();
southPanel.setHeaderVisible(false);
southPanel.setBorders(false);
containerSouth.getScrollSupport().setScrollMode(ScrollMode.AUTO);
southPanel.setSize("784px", "430px");
southPanel.setWidget(containerSouth);
return southPanel;
}
private void dialog(String sql){
TextAreaItem textAreaItem = new TextAreaItem();
textAreaItem.setValue(sql);
textAreaItem.setShowTitle(false);
textAreaItem.setWidth(580);
textAreaItem.setHeight(370);
DynamicForm form = new DynamicForm();
form.setFields(textAreaItem);
com.smartgwt.client.widgets.Window w = new com.smartgwt.client.widgets.Window();
w.setTitle("Codigo SQL");
w.addItem(form);
w.setWidth(600);
w.setHeight(400);
w.show();
}
...
geters and seters
...
}
In old version of browsers the button into the grid works fine, but not now.
Only work the display the dialog:
...
if(verXml){
dialog(carta); <----- it works
}else{
if(
...
the submit of form is like doing nothing, and apears thes errror "Form submission canceled because the form is not connected" on console of browser
Sorry by the spanglish, but the code was maintained by many developers a long time.