SourceForge has been redesigned. Learn more.
Close

En el cambio de detalle a lista, avisar de que hay datos sin guardar

2012-12-17
2016-03-16
  • Isabel Martinez

    Isabel Martinez - 2012-12-17

    Buenos días,
    Tenemos problemas con usuarios que se olvidan de guardar datos y querríamos avisarles.
    Si hubiese campos del formulario modificados, avisar con un mensaje de que si cambian a modo lista perderán estos datos.
    Cómo podríamos hacerlo?
    Gracias,

     
  • pigbar

    pigbar - 2013-01-24

    Hola,
    Por favor verifica en los controladores por defecto de OX cual es la clase que implementa la accion Mode.List (Controlador.Accion) y extiende esa clase para crear tu propia acción. En esa nueva acción verificas si existen campos modificados y, de ser así, agregas el mensaje apropiado, de lo contrario sigues con el procedimiento estándar de la clase padre.

    Saludos cordiales

     
    Last edit: pigbar 2013-01-24
  • Isabel Martinez

    Isabel Martinez - 2013-02-18

    Gracias Pigbar,
    Tengo una última pregunta y es cómo identificar si los campos de un formulario se han cambiado de forma ágil.
    Tengo alguna alternativa pero es costosa en tiempo y rendimiento.
    Gracias por adelantado,

     
  • Javier Paniza

    Javier Paniza - 2013-02-20

    Hola Isabel,

    es cómo identificar si los campos de un formulario se han cambiado

    Puedes probar si el mapa devuelto por getView().getChangedPropertiesActionsAndReferencesWithNotCompositeEditor() está vacía. No sé si te funcionará, porque este método está pensado para el uso interno del mecanismo AJAX de OpenXava y no para ser usado desde una acción. Pero no cuesta nada probarlo, a lo mejor hay suerte.

    Si no lo que debes hacer es sobrescribir la acción XAVA_SEARCH_ACTION para guardarte un mapa con todos los datos de la vista en ese momento, es decir justo recién leidos de la DB y después sobrescribir la acciones de nuevo, navegación, ir a lista, etc. para que comparen los datos guardados con los actuales.

    A lo mejor sería interesante añadir este comportamiento a OpenXava por defecto. ¿Qué opináis?


    Ayuda a otros en este foro como yo te ayudo a ti.
    Antes de poner una pregunta busca en este mismo foro la respuesta
    y lee la documentación de OpenXava en openxava.org.

     
  • Saul Rueda

    Saul Rueda - 2013-02-22

    Hola a todos, me ha encantado OX.

    Seria genial lo que propones Javier de añadir este comportamiento por defecto. :)

    Saludos

     
  • Javier Paniza

    Javier Paniza - 2013-02-26

    Hola Saul,

    Seria genial ... añadir este comportamiento por defecto

    Ahora nos hace falta un voluntario dispuesto a hacerlo. De todas formas puedes añadirlo como petición de característica por lo menos para tenerlo en cuenta.


    Ayuda a otros en este foro como yo te ayudo a ti.
    Antes de poner una pregunta busca en este mismo foro la respuesta
    y lee la documentación de OpenXava en openxava.org.

     
  • gregorio

    gregorio - 2016-03-14

    Saludos.
    Hay algo sobre nuevo sobre esto?
    He probado lo indicado y en el save action de la entidad y siempre me devuelve cero.

    Atte.

     
  • gregorio

    gregorio - 2016-03-14

    he vuelto a verificar la prueba que hice y tengo este código

    public class CompraSaveAction extends SaveAction{
    
        public void execute() throws Exception {
            setRefreshAfter(true);
            setResetAfter(false);
            super.execute();
            Map<String, String> map=   getView().getChangedPropertiesActionsAndReferencesWithNotCompositeEditor();
            for (Map.Entry<String, String> entry : map.entrySet())
            {
                System.out.println(entry.getKey() + "/" );
            }
    
            System.out.println(getView().getChangedPropertiesActionsAndReferencesWithNotCompositeEditor().size());
        }
    }
    

    modifique o no algo siempre me devuelve el nombre de dos atributos, siempre los mismos dos atributos, de igual forma creo que no funcionaría este método para lo que se pretende.
    Con respecto a colaborar con una solución pues me gustaría pero cuando tenga mejor manejo de java mismo y luego de OX,,,,así que aguardo a si algo hay o si alguno tiene alguna otra idea.
    gracias una vez más.

     
  • Javier Paniza

    Javier Paniza - 2016-03-16

    Hola Gregorio:

    creo que no funcionaría este método para lo que se pretende

    Es fácil, porque ese método está pensado para otra cosa, para la que sí funciona perfectamente.

    Con respecto a colaborar con una solución pues me gustaría

    Eso sería genial.

    ¿Has comprobado si está dado de alta como "Feature Request"?


    Ayuda a otros en este foro como yo te ayudo a ti.

     
  • gregorio

    gregorio - 2016-03-16

    Hola Javier
    Dado mi escaso conocimiento y pericia para cosas más avanzadas ni me he acercado al sitio que indicas......y creo que no has leído todo el texto relacionado a colaborar.......je je je....pero estaré atento mientras por si alguno tenga alguna idea al respecto.

    Saludos cordiales.

     

Log in to post a comment.