JBoss Community

activate a Modalpanel with commandbutton

created by yasser zairi in JBoss Tools - View the full discussion

Hi,

i want to activate a modalPanel from a Commandbutton but it seem that is sth wrong .

_______________________________________________________________________________________

here is the code of the ModalPanel with the commandbutton ::

 

<a4j:commandbutton value="Modifier" ajaxSingle="true" id="editlink"

                oncomplete="#{rich:component('editPanel')}.show()" action="#{valeursMBean.viwDetail}" />

 

        <rich:modalPanel id="editPanel" autosized="true" width="450">

            <f:facet name="header">

                <h:outputText value="Modifier la valeur mobiliere actuelle :" />

            </f:facet>

            <f:facet name="controls">

                <h:panelGroup>

                    <h:graphicImage value="../style/close.jpeg" id="hidelink"

                        styleClass="hidelink" />

                    <rich:componentControl for="editPanel" attachTo="hidelink"

                        operation="hide" event="onclick" />

                </h:panelGroup>

            </f:facet>

            <h:form>

                <rich:messages style="color:red;"></rich:messages>

                <h:panelGrid columns="1">

                    <a4j:outputPanel ajaxRendered="true">

                        <h:panelGrid columns="2">

                            <h:outputLabel value="CodeIsin" for="codeIsin" />

                            <h:inputText id="codeIsin"

                                value="#{valeursMBean.currentItem.codeIsin}" />

                            <h:outputLabel value="Categorie" for="categorie" />

                            <h:inputText id="categorie"

                                value="#{valeursMBean.currentItem.categorie}" />

                            <h:outputLabel value="Denomination" for="denomination" />

                            <h:inputText id="denomination"

                                value="#{valeursMBean.currentItem.denomination}" />

                            <h:outputLabel value="Date Echeance" for="dateEcheance" />

                            <h:inputText id="dateEcheance"

                                value="#{valeursMBean.currentItem.dateEcheance}" />

                            <h:outputLabel value="Etat" for="etat" />

                            <h:inputText id="etat" value="#{valeursMBean.currentItem.etat}"/>

                        </h:panelGrid>

                        <rich:message showSummary="true" showDetail="false" for="etat" />

                    </a4j:outputPanel>

                    <a4j:commandButton value="Enregistrer"

                        action="#{valeursMBean.update}"

                        reRender="codeIsin, categorie, etat, denomination, dateEcheance"

                        oncomplete="if (#{facesContext.maximumSeverity==null}) #{rich:component('editPanel')}.hide();" />

                </h:panelGrid>

            </h:form>

        </rich:modalPanel>

_______________________________________________________________________________________________

and here is my Bean ::

 

package cdvm.surv.web;

 

import java.io.Serializable;

import java.util.Iterator;

import java.util.List;

 

import javax.annotation.PostConstruct;

 

 

import org.richfaces.component.html.HtmlScrollableDataTable;

import org.richfaces.model.ScrollableTableDataModel.SimpleRowKey;

import org.richfaces.model.selection.Selection;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.context.annotation.Scope;

import org.springframework.stereotype.Component;

 

 

import cdvm.surv.model.ValeurRef;

import cdvm.surv.service.ValeurRefService;

 

@Component("valeursMBean")

@Scope("session")

public class ValeursMBean implements Serializable {

   

    @Autowired

    private transient ValeurRefService valeurefService;

    private transient HtmlScrollableDataTable valeurTable;

   

   

    private List<ValeurRef> valeurefList;

    private ValeurRef currentItem;

   

 

    @PostConstruct

    public void init(){

        valeurefList = valeurefService.find();

    }

   

    public String update(){

        valeurefService.save(currentItem);

        init();

       

        return null;

    }

   

    public void viewDetail(){

        List<ValeurRef> valueList=(List<ValeurRef>) valeurTable.getValue();

        Selection sl = valeurTable.getSelection();

        Iterator<Object> keys= sl.getKeys();

       

        if(keys.hasNext()){

            //SimpleRowKey ky = (SimpleRowKey)keys.next();

            currentItem=valueList.get((Integer)keys.next());

            System.out.println(currentItem.getCodeIsin());

        }

       

 

    }

   

    // Getter and Setter

   

    public ValeurRef getCurrentItem() {

        return currentItem;

    }

 

    public void setCurrentItem(ValeurRef currentItem) {

        this.currentItem = currentItem;

    }

    public HtmlScrollableDataTable getValeurTable() {

        return valeurTable;

    }

    public void setValeurTable(HtmlScrollableDataTable valeurTable) {

        this.valeurTable = valeurTable;

    }

    public List<ValeurRef> getValeurefList() {

        return valeurefList;

    }

    public void setValeurefList(List<ValeurRef> valeurefList) {

        this.valeurefList = valeurefList;

    }

 

}

________________________________________________________________________________

the error that i get is ::

 

javax.el.PropertyNotFoundException: /GestionRef/Grid.jsp @86,56 value="#{valeursMBean.currentItem.codeIsin}": Target Unreachable, 'currentItem' returned null

com.sun.facelets.el.TagValueExpression.getType(TagValueExpression.java:62)

com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:81)

javax.faces.component.UIInput.getConvertedValue(UIInput.java:936)

javax.faces.component.UIInput.validate(UIInput.java:861)

javax.faces.component.UIInput.executeValidate(UIInput.java:1071)

javax.faces.component.UIInput.processValidators(UIInput.java:663)

javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1040)

javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1040)

javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1040)

javax.faces.component.UIForm.processValidators(UIForm.java:229)

javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1040)

javax.faces.component.UIInput.processValidators(UIInput.java:661)

javax.faces.component.UIForm.processValidators(UIForm.java:229)

org.ajax4jsf.component.AjaxViewRoot$3.invokeContextCallback(AjaxViewRoot.java:447)

org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:240)

org.ajax4jsf.component.AjaxViewRoot.processValidators(AjaxViewRoot.java:463)

com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:100)

com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)

com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)

javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)

org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)

org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)

org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)

org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)

 

 

 

i'll be thankful for any suggestions

 

thanks in advance

Reply to this message by going to Community

Start a new discussion in JBoss Tools at Community