The code (I have tried various things... hopefully this is the appropriate
version)
| package csir.structure.management.service.seam;
|
| import java.io.Serializable;
| import java.util.Date;
| import java.util.HashMap;
| import java.util.Iterator;
| import java.util.List;
|
| import javax.ejb.Interceptors;
| import javax.ejb.Remove;
| import javax.ejb.Stateful;
| import javax.faces.context.FacesContext;
| import javax.persistence.EntityManager;
| import javax.persistence.PersistenceContext;
| import javax.persistence.PersistenceContextType;
|
| import org.apache.log4j.Logger;
| import org.jboss.seam.ScopeType;
| import org.jboss.seam.annotations.Begin;
| import org.jboss.seam.annotations.Conversational;
| import org.jboss.seam.annotations.Create;
| import org.jboss.seam.annotations.Destroy;
| import org.jboss.seam.annotations.End;
| import org.jboss.seam.annotations.Factory;
| import org.jboss.seam.annotations.IfInvalid;
| import org.jboss.seam.annotations.In;
| import org.jboss.seam.annotations.Name;
| import org.jboss.seam.annotations.Out;
| import org.jboss.seam.annotations.Outcome;
| import org.jboss.seam.annotations.datamodel.DataModel;
| import org.jboss.seam.annotations.datamodel.DataModelSelectionIndex;
| import org.jboss.seam.core.Conversation;
| import org.jboss.seam.ejb.SeamInterceptor;
|
| import csir.common.pojo.seam.LanguageListerPojo;
| import csir.common.seam.LanguageEnum;
| import csir.common.seam.LanguageLister;
| import csir.common.seam.NAPException;
| import csir.interceptor.seam.IfNAPException;
| import csir.structure.par.Grouping;
| import csir.structure.par.I18nServiceName;
| import csir.structure.par.Service;
| import csir.structure.par.Topic;
|
| @Stateful
| @IfNAPException
| @Name("serviceManagementBean")
| @Conversational(ifNotBegunOutcome = "AdminHomePage")
| //,initiator=true
| @Interceptors(SeamInterceptor.class)
| public class ServiceManagementBean implements Serializable,
ServiceManagement {
|
| /**
| *
| */
| private static final long serialVersionUID = 2306440198402985938L;
|
| static final Logger logger =
Logger.getLogger(ServiceManagementBean.class);
|
| @DataModel
| List<Service> allServices;
|
| @DataModelSelectionIndex
| int selectedServiceNr;
|
| @In(create = true, value = "napEntityManager")
| EntityManager em;
|
| @In(create = true)
| LanguageListerPojo languageListerPojo;
|
| @Out(required = false, scope = ScopeType.CONVERSATION)
| List<LanguageEnum> allLanguageEnums;
|
| @In(create = false, required = false)
| @Out(required = false)
| Service service;
|
| @Out(required = false, scope = ScopeType.CONVERSATION)
| LanguageEnum preferredLanguage = LanguageEnum.ENGLISH;
|
| @In(create = false)
| private transient FacesContext facesContext;
|
| @In(create = true, required = false)
| Conversation conversation;
|
| @SuppressWarnings("unchecked")
| @Factory("allServices")
| public String loadAllServices() {
| // logger.info( "Current conversation(" +conversation.getId()
+")
| // timeout set to: " + conversation.getTimeout());
| // conversation.setTimeout(300);
| // logger.info( "Current conversation(" +conversation.getId()
+")
| // timeout set to: " + conversation.getTimeout());
| allServices = em.createQuery("from csir.structure.par.Service
as s")
| .getResultList();
| logger.info("Retrieved " + allServices.size() + " services");
| // allLanguageEnums = languageListerBean.getAllLanguages();
| allLanguageEnums = languageListerPojo.getAllLanguages();
| return "servicesLoaded";
| }
|
| @Create
| public void theBegin() {
| logger.info("The begin");
| }
|
| @Destroy
| @Remove
| public void theEnd() {
| logger.info("theEnd");
| }
|
| @Begin
| public String createService() {
| logger
| .info("Attempting to create a new service.
Start of conversation");
| service = new Service();
| service
| .setTranslatedServiceNames(new
HashMap<LanguageEnum, I18nServiceName>());
| for (LanguageEnum l : LanguageEnum.values()) {
| I18nServiceName i18nServiceName = new I18nServiceName();
| i18nServiceName.setLanguage(l);
| i18nServiceName.setService(service);
| service.getTranslatedServiceNames().put(l,
i18nServiceName);
| }
| return "create";
| }
|
| @End
| public String cancel() {
| logger.info("Cancelling edit/create of service. End of
conversation");
| service = null;
| allServices = null;// force reload from db...
| return "cancel";
| }
|
| @IfInvalid(outcome = Outcome.REDISPLAY)
| @IfNAPException(goToOutcome = "AdminHomePage")
| public String save() throws Exception {
| try {
| logger.info("Saving edited/created service.");
| service.setImage(new Date().toString());
| em.persist(service);
| em.flush();
| return "save";
| } catch (Exception e) {
| // StaleObjectStateException
| logger.error("Failed to persist service", e);
| throw new NAPException(e);
| }
| }
|
| @Begin
| public String selectService() {
| logger.info("Selected a service for view. Start of
conversation.");
| logger.info("Selected service nr " + selectedServiceNr);
| service = allServices.get(selectedServiceNr);
| logger.info("Selected service is: "
| +
service.getTranslatedServiceNames().get(LanguageEnum.ENGLISH)
| .getTranslatedName());
| return "select";
| }
|
| public String editService() {
| logger.info("Attempting to edit a service. "
| +
service.getTranslatedServiceNames().get(LanguageEnum.ENGLISH)
| .getTranslatedName());
| return "edit";
| }
|
| public String deleteService() {
| logger.info("Attempting to delete a service. "
| +
service.getTranslatedServiceNames().get(LanguageEnum.ENGLISH)
| .getTranslatedName());
|
| if (serviceHasContent())
| return "deleteStop";
| else
| return "deleteContinue";
| }
|
| public List<Service> getAllServices() {
| loadAllServices();
| return allServices;
| }
|
| @End
| public String toServiceList() {
| logger.info("Return to service list. End of conversation");
| allServices = null;// force a reload from db
| return "toList";
| }
|
| @End
| public String deleteServiceConfirmed() {
| logger.info("Return to service list. End of conversation");
| allServices = null;// force a reload from db
| // delete the thing here
| em.remove(service);
| return "toList";
| }
| }
|
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3920344#3920344
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3920344
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user