[jboss-user] [JBoss Seam] - [SEAM+RICHFACES] Problems using rich:togglePanel

demetrio812 do-not-reply at jboss.com
Sun Aug 26 08:45:57 EDT 2007


Hi,
today I had a problem in Seam using the togglePanel component, in simple words I have a toggle panel with 2 states, the first has just 1 link, if I click it will switch to an edit input control and a button to save the control.
When I click the first button I set the bean to edit (that is null at first) but when I try to save it I get a NPE like as the conversation was closed.

This is my code:

view:


  | <rich:togglePanel id="gctp" switchType="client" stateOrder="txt,edit" >
  | 	<f:facet name="txt">
  | 		<h:panelGroup>
  | 			<rich:toggleControl for="gctp">
  | 				<a:commandLink value="Aggiungi gruppo" action="#{homepageHelper.preparaAggiuntaGruppo}"></a:commandLink>
  | 			</rich:toggleControl>
  | 		</h:panelGroup>
  | 	</f:facet>
  | 	<f:facet name="edit">
  | 		<h:panelGroup>
  | 			<h:outputText value="Gruppo: "></h:outputText>
  | 			<h:inputText value="#{homepageHelper.gruppoEdit.descrizione}"></h:inputText>
  | 			<rich:toggleControl for="gctp">
  | 				<a:commandLink action="#{homepageHelper.salvaGruppo}" value="Salva" />
  | 			</rich:toggleControl>
  | 		</h:panelGroup>
  | 	</f:facet>
  | </rich:togglePanel>
  | 

bean (Scope=CONVERSATION):


  | @Name("homepageHelper")
  | @Scope(ScopeType.CONVERSATION)
  | public class HomepageHelper implements Serializable {
  | 
  | 	private Gruppo gruppoEdit;  // gruppo usato per l'aggiunta o la modifica
  | 
  | 	public Gruppo getGruppoEdit() {
  | 		if (gruppoEdit==null) {
  | 			gruppoEdit=new Gruppo();
  | 			System.out.println("NEWGET");
  | 			System.out.println("HPH: "+this);
  | 		}
  | 		System.out.println("GET");
  | 		return gruppoEdit;
  | 	}
  | 
  | 	public void setGruppoEdit(Gruppo gruppoEdit) {
  | 		System.out.println("SET: "+gruppoEdit);
  | 		System.out.println("HPH: "+this);
  | 		this.gruppoEdit = gruppoEdit;
  | 	}
  | 	
  | 	public void preparaAggiuntaGruppo() {
  | 		Gruppo g = new Gruppo();
  | 		g.setContatto(loggedUserManager.getLoggedUser());
  | 		g.setDescrizione("nuovo");
  | 		System.out.println("pag");
  | 		setGruppoEdit(g);
  | 	}
  | 	
  | 	public void preparaModificaGruppo() {
  | 		setGruppoEdit(getGruppoSelezionato());
  | 	}
  | 	
  | 	public void salvaGruppo() {
  | 		// Se sono in modifica
  | 		System.out.println("GE: "+getGruppoEdit().getDescrizione());
  | 		System.out.println("HPH: "+this);
  | 		/*if (entityManager.contains(getGruppoEdit())) {
  | 			entityManager.merge(getGruppoEdit());
  | 		} else {
  | 			entityManager.persist(getGruppoEdit());
  | 		}
  | 		entityManager.flush();  // Salvo
  | 		*/
  | 	}
  | 
  |         ...
  | 

where do I wrong?

I noticed during my tests that the conversation object HomepageHelper has different instances between switching.

Also I tried to do now use togglePanel and it works, like that:


  | <a:form id="gcform">
  | <a:commandLink value="Aggiungi gruppo" action="#{homepageHelper.preparaAggiuntaGruppo}" reRender="gcform"></a:commandLink>
  | 			<h:outputText value="Gruppo: "></h:outputText>
  | 			<h:inputText value="#{homepageHelper.gruppoEdit.descrizione}"></h:inputText>
  | 			<a:commandLink action="#{homepageHelper.salvaGruppo}" value="Salva" reRender="gcform"/>
  | </a:form>
  | 

I don't know if it is a seam problem or a richfaces problem (or my problem :D) so I post this in both the forums...

thanks

Demetrio Filocamo

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4078121#4078121

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4078121



More information about the jboss-user mailing list