Menu

Especificar Vista cuando se crea o edita una referencia

gregorio
2024-10-12
2026-02-19
  • gregorio

    gregorio - 2024-10-12

    Saludos cordiales.
    OXP 7.4.1

    Dado el ejemplo:

       @Entity
       @Setter
       @Getter
       public class Sample{
        @NoFrame
        @ReferenceView("Truck")
        @ManyToOne(fetch = FetchType.LAZY)
        @JoinColumn(name = "f_TRUCK_ID")
        private Machine truck;
    
         @NoFrame
        @ReferenceView("Trailer")
        @ManyToOne(fetch = FetchType.LAZY)
        @JoinColumn(name = "f_TRAILER_ID")
        private Machine trailer;
    

    }

    Necesito indicar una vista distinta para cada referencia al momento de crearla o editarla.
    Siempre muestra la vista por defecto.
    Sería muy bueno incluso que podamos relacionar éstas referencias a sus respectivas acciones definidas en el controlador( new,save,search)

    Atte.

     
  • Javier Paniza

    Javier Paniza - 2024-10-14

    Hola Gregorio:

    De momento no es posible especificar con una anotación la vista a usar para editar la referencia, aunque es algo que tenemos previsto añadir:
    https://openxava.org/xavaprojects/o/OpenXava/m/Issue?detail=ff8080817966cab20179b23b3b33007f

    Mientras tanto puedes uar @NoCreate y @NoModify, para quitar las acciones estándar y poner dos @Action con tus propias acciones y en estas acciones establecer la vista, algo así:

    @NoFrame
    @ReferenceView("Truck")
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "f_TRUCK_ID")
    @NoCreate @NoModify 
    @Action("Sample.createTruck")
    @Action("Sample.modifyTruck")
    private Machine truck;
    
     @NoFrame
    @ReferenceView("Trailer")
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "f_TRAILER_ID")
    @NoCreate @NoModify 
    @Action("Sample.createTrailer")
    @Action("Sample.modifyTrailer")    
    private Machine trailer;
    

    Donde las acciones create/modifyTruck y create/modifyTraile se encargarían de establecer las vista que corresponda.


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

     
    • gregorio

      gregorio - 2024-10-14

      genial. gracias

       
  • Javier Paniza

    Javier Paniza - 2026-02-17

    Hola Gregorio:

    A partir de la versión 7.7, disponible el mes que viene, tenemos las anotaciones @EditView y @NewView que se pueden usar así:

    @NoFrame
    @ReferenceView("Truck")
    @NewView("NewTruck")
    @EditView("EditTruck")
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "f_TRUCK_ID")
    private Machine truck;
    

    Ahora al pulsar para crear un nuevo Truck usará la vista NewTruck dentro del diálogo y si pulsas para editar usará EditTruck.


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

     
  • gregorio

    gregorio - 2026-02-19

    genial. gracias!!!

     

Log in to post a comment.

MongoDB Logo MongoDB