Menu

Como eliminar accion cut en la vista de una lista

2025-11-21
2025-11-24
  • Enrique Estévez

    Tengo una clase llamada Utilidades que no es entidad, y tiene una propiedad definida como sigue:

        @Transient
        @SaveAction("LimpiezaExecutada.Save")
        @ListProperties("obxecto.nome, procedemento")
        @AddAction("")
        @RemoveSelectedAction("")
        @DeleteSelectedAction("")
        @ListAction("Utilidades.removeSelected")
        Collection<LimpezaExecutada> hixienes = new ArrayList<>(); 
    

    En la visualización de esta propiedad, muestra una lista en modo tabla como se puede ver en la imagen que se adjunta. Quiero borrar todas las acciones, menos new y remove selected, pero he hecho un montón de pruebas y lo máximo que consigo es lo que se ve en la imagen. Consigo borrar la acción Add, que yo creo que es el siguiente código (@AddAction(""), borro las estándares removed selected y delete selected, con los siguietes códigos (@RemoveSelectedAction("") y @DeleteSelectedAction("")). Además incrusto mi acción personalizada removeSelected con el siguiente código (@ListAction("Utilidades.removeSelected")). Pero no soy capaz de borrar la acción cut y a veces aparece la acción paste.

    Como puedo hacer para borrar las cut y paste?

    En el fichero aplicacion.xml y controladores.xml tengo lo siguiente:

        <modulo nombre="Utilidades">
            <modelo nombre="Utilidades"/>
            <modo valor="detalle"/>
            <controlador nombre="Utilidades"/>
        </modulo>
    
            <controlador nombre="Utilidades">  
            <accion nombre="Crear_rexistros_limpeza" clase="ribeiro.bdatos.acciones.CrearRexistrosLimpeza"/>
            <accion nombre="removeSelected" clase="ribeiro.bdatos.acciones.BorrarLimpezaSeleccionada" icono="trash-can-outline"/>
            <accion nombre="cut" oculta="true"/>
        </controlador>
    
        <controlador nombre="LimpiezaExecutada">
        <hereda-de controlador="Typical"></hereda-de>
        <accion nombre="Save" clase="ribeiro.bdatos.acciones.CargarLimpezaSeleccionada"/>
        <accion nombre="cut" oculta="true"/>
        </controlador>
    

    Como puedo borrar la acción cut?

     
  • Enrique Estévez

    Probando más cosas, con el siguiente código consigo lo que quiero.

        @Transient
        @SaveAction("LimpiezaExecutada.Save")
        @ListProperties("obxecto.nome, procedemento")
        @AddAction("")
        @RemoveSelectedAction("")
        @DeleteSelectedAction("")
        @ListAction("Utilidades.removeSelected")
        @EditAction("")
        @ViewAction("")
        @NoDefaultActions
        Collection<LimpezaExecutada> hixienes = new ArrayList<>();
    

    Pero, no hay una forma mas simple o más elegante de hacerlo?

    Que acciones no muestra el código @NoDefaultActions?

     
  • Javier Paniza

    Javier Paniza - 2025-11-24

    Hola Enrique:

    Que acciones no muestra el código @NoDefaultActions?

    Las acciones definidas en DefaultListActionsForCollections y DefaultRowActionsForCollections, que actuamente son las de cortar y pegar, y las de generar PDF y exportar a Excel.
    Mira la doc:
    https://openxava.org/OpenXavaDoc/docs/view_es.html#no-default-actions

    no hay una forma mas simple o más elegante de hacerlo?

    Tener una anotación para cada combinación posible haría OpenXava extremadamente complicado, porque tendriamos que tener miles de anotaciones. En tu caso, no quieres acciones en las filas, pero si quieres poder crear nuevo y borrar los seleccionados, es una combinación rara.

    Sí que hay anotaciones que hacen varias cosas, como @SimpleList, @ReadOnly o @EditOnly, pero ninguna de ellas hace exactmente lo que quieres.


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

     

Log in to post a comment.