Desarrollo WEB.


Las practicas de programación orientadas a la web son muy cambiantes en el tiempo. Es necesario conocer e implementar tecnologías, conocer lenguajes,integrar comunidades,usar Ides, etc, recientes, para responder al mercado que se acerca.

domingo, 22 de julio de 2012

Construir un objeto primefaces desde Codigo Java

Cuando queremos llenar un componente primefaces en el caso de una tabla se usan los modelos primefaces. que son clases java con una estructura de lista de objetos predeterminados para fácil uso en JSF.


Una alternativa que nos brinda primefaces como paquete de widgets JSF es la opción de crear un objeto primefaces dinámico con x componentes desde la capa de negocio. esta opción nos da la facilidad de hacer mas dinamismo sobre la capa de presentación sin limitarnos a los servicios que los componentes fabricados nos brindan.




El código en el managedBean para crear el componente seria:




  1.     /*
         * Crea componente primefaces desde codigo java y devuelve al componente
         *  primefaces xhtml en su propiedad binding
         */
        private TabView tabView;

        public void setTabView(TabView tabView) {
            this.tabView = tabView;
        }

        public TabView getTabView() {
            FacesContext fc = FacesContext.getCurrentInstance();
            tabView = (TabView) fc.getApplication().createComponent("org.primefaces.component.TabView");

            // cargar la lista de objetos para tabview
            List liscaldimensional = new ArrayList();
            liscaldimensional = ejbFacadeCalidadDimensional.findAll();

            //Se crean dinamicamente las tabs y en su contenido, unas cajas de texto
            for (CalidadDimensional sub : liscaldimensional) {
                Tab tab = new Tab();
                tab.setTitle(sub.getCalidadDimensional());
                Random randomGenerator = new Random();
                int total = 4;
                for (int i = 0; i < total; i++) {
                    InputText inputtext = new InputText();
                    inputtext.setLabel("Label");
                    inputtext.setValue("id:" + inputtext.getClientId());
                    inputtext.setOnfocus("");
                    tab.getChildren().add(inputtext);
                }
                tabView.getChildren().add(tab);
            }
            return tabView;
        }


En la pagina .xhtml

        
  1. <p:tabview binding="#{calidadDimensionalOfController.tabView}" rendered="true" 
  2. style="float: left; margin-left: 5px; margin-top: 10px; width: 500px;" />
  3. </p:tabview>

3 comentarios:

  1. Buen Dia:

    Oye gracias por tu tiempo y por este post es lo que justo necesito, espero no molestarte, tengo una pregunta necesito crear varios tipos de objetos de primefaces en java pero estoy utilizando la cadena de responsabilidad mi pregunta es como puedo definir el tipo de objecto a crear en mi cadena de responsabilidad... Espero me puedas colaborar... fabio.libre@gmail.com

    ResponderEliminar
  2. Hola Fabio, no entiendo bien a que te refieres, cuando dices "cadena de responsabilidad"?

    Acá se invoca el tipo de objeto a crear.!
    private "TabView"-->//Objeto a crear tabView;

    ResponderEliminar
  3. muchas gracias por compartir, me has dado una luz

    ResponderEliminar