0

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.

Felipe Nuñez
  • 73
  • 2
  • 10

1 Answers1

0

This happens when form does not exist in body.

Have a look here: Getting Error "Form submission canceled because the form is not connected"

Community
  • 1
  • 1
bora89
  • 3,476
  • 1
  • 25
  • 16
  • how i can do it? I did try to do creating the form in the VisualizadorCartasTab and set the form to the GrillaRepositorioXML object, and then seting the VerticalLayoutContainer with the strings necesary. but dont works – Felipe Nuñez Feb 13 '17 at 14:22