J'ai un site avec GWT, SmartGwt et Sencha GXT. Récemment, avec les navigateurs mis à jour (IE, Chrome, Opera, Firefox) quelques boutons sur notre site ne fonctionnent pas.Soumission de formulaire annulée parce que le formulaire n'est pas connecté sur GWT
J'ai un onglet avec une grille comme ceci:
Tab
|_Grid
|_Rows with buttons(this buttons don't work now)
dans le regard est comme le code ceci:
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
...
}
Dans l'ancienne version des navigateurs, le bouton dans la grille fonctionne correctement, mais pas maintenant.
Seul le travail de l'affichage de la boîte de dialogue:
...
if(verXml){
dialog(carta); <----- it works
}else{
if(
...
la présenter de la forme est comme ne rien faire, et apears Thes errror « soumission de formulaire annulée parce que le formulaire est pas connecté » sur la console du navigateur
Désolé par le spanglish, mais le code a été maintenu par de nombreux développeurs depuis longtemps.
comment je peux le faire? J'ai essayé de créer le formulaire dans VisualizadorCartasTab et de définir le formulaire sur l'objet GrillaRepositorioXML, puis en définissant VerticalLayoutContainer avec les chaînes nécessaires. mais ne fonctionne pas –