Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

problemas al setear una vista

Larry
2013-12-16
2013-12-19
  • Larry
    Larry
    2013-12-16

    Hola

    Tengo un problema al setear una vista para que se cargue en un popup, tengo 3 modelos Iniciativa TareaIniciativa y Tarea, y un modelo action que llamo en un boton que esta en el modo detalle del modelo de Iniciativa, la action se llama ReporteEstadoTareaAction donde duplique el método EditElementInCollectionAction y lo que trato de hacer allí es decirle que me cambie la vista que carga por defecto del modelo Tarea, utilizando la siguiente línea de código: getCollectionElementView().setViewName("EstadoTarea");

    Pero así no funciona me muestra un ERROR: No encontrada vista EstadoTarea en modelo TareaIniciativa.

    En ese caso cambio la línea de código por la siguiente getCollectionElementView().setViewName("Tarea.EstadoTarea");
    Se visualiza el mismo error solo que el nombre de la vista cambia No encontrada vista Tarea.EstadoTarea en modelo TareaIniciativa.

    Procedí a crear unas vistas en el modelo TareaIniciativa
    @Views({
    @View(members="tarea"),
    @View(name="Tarea1", members="tarea.nombre; tarea.fechaInicial; tarea.fechaFinal; tarea.horashombre; tarea.costo ; Progresos{tarea.progresosTarea}")
    })

    Y cambie en ReporteEstadoTareaAction el llamado a la vista por getCollectionElementView().setViewName("Tarea1 ");
    Pero no funciona me dice tarea.progresosTarea no se reconoce como propiedad de la vista Progresos de TareaIniciativa

    Gracias Por La Atención Prestada

     
    Last edit: Larry 2013-12-16
  • Javier Paniza
    Javier Paniza
    2013-12-18

    Hola Larry,

    No encontrada vista EstadoTarea en modelo TareaIniciativa.

    Si él lo dice, será verdad. En setViewName() has de especificar el nombre de una vista, si quieres especificar un nombre de modelo has de usar setModelName().

    Ponme aquí el código completo de TareaIniciativa y te daré alguna pista más.


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

     
  • Larry
    Larry
    2013-12-19

    Gracias javier por la atención ya lo solucione lo estaba haciendo mal lo corregí,
    realizando lo siguiente:

    en el modelo intermedio TareaIniciativa quedo así:

    @Views({
    @View(name = "ViewTarea", members="tarea"),
    @View(name = "TareaToTareaIniciativa", members="tarea"), //pendiente: que otras propiedades mostrar?
    })
    @Table(name="tasksxinitiative")
    @IdClass(TareaIniciativaKey.class)
    public class TareaIniciativa {

    @Id
    @NoCreate
    @NoModify
    @AsEmbedded
    //@DescriptionsList(descriptionProperties="nombre")
    @ReferenceView(value = "EstadoTarea", forViews = "TareaToTareaIniciativa")//gnr
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="task")
    private Tarea tarea;
    
    @Id
    @NoCreate
    @NoModify
    @DescriptionsList(descriptionProperties="nombre")
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="initiative")
    private Iniciativa iniciativa;
    
    //getter y setter
    

    }

    Y desde la acción ReporteEstadoTareaAction que había creado solamente le digo que vista cargar de tarea.

    getCollectionElementView().setViewName("TareaToTareaIniciativa");

    Gracias!!!