[jboss-cvs] jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action ...

Christian Bauer christian at hibernate.org
Mon Apr 9 06:57:58 EDT 2007


  User: cbauer  
  Date: 07/04/09 06:57:58

  Modified:    examples/wiki/src/main/org/jboss/seam/wiki/core/action 
                        AdminHome.java
  Log:
  Added customizable wiki link protocols (e.g. for automatic links to JIRA issues)
  
  Revision  Changes    Path
  1.2       +50 -2     jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/AdminHome.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: AdminHome.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/action/AdminHome.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- AdminHome.java	4 Apr 2007 10:38:13 -0000	1.1
  +++ AdminHome.java	9 Apr 2007 10:57:58 -0000	1.2
  @@ -4,6 +4,7 @@
   import org.jboss.seam.ScopeType;
   import org.jboss.seam.annotations.*;
   import org.jboss.seam.annotations.datamodel.DataModel;
  +import org.jboss.seam.annotations.datamodel.DataModelSelection;
   import org.jboss.seam.annotations.security.Restrict;
   import org.jboss.seam.contexts.Contexts;
   import org.jboss.seam.core.FacesMessages;
  @@ -11,11 +12,15 @@
   import org.jboss.seam.security.AuthorizationException;
   import org.jboss.seam.security.Identity;
   import org.jboss.seam.wiki.core.model.User;
  +import org.jboss.seam.wiki.core.model.LinkProtocol;
   import org.jboss.seam.wiki.preferences.PreferenceComponent;
   import org.jboss.seam.wiki.preferences.PreferenceVisibility;
   
   import javax.faces.application.FacesMessage;
  +import javax.persistence.EntityManager;
   import java.util.List;
  +import java.util.Map;
  +import java.util.ArrayList;
   
   @Name("adminHome")
   @Scope(ScopeType.CONVERSATION)
  @@ -24,6 +29,9 @@
       @In
       private FacesMessages facesMessages;
   
  +    @In
  +    EntityManager entityManager;
  +
       PreferenceEditor preferenceEditor;
   
       @Create
  @@ -33,7 +41,6 @@
           }
       }
   
  -
       @Restrict("#{s:hasPermission('User', 'isAdmin', currentUser)}")
       public String update() {
   
  @@ -43,15 +50,18 @@
               if (editorFailed != null) return null;
           }
   
  +        entityManager.flush(); // Flush everything (maybe again if prefEditor.save() already flushed)
  +
           facesMessages.addFromResourceBundleOrDefault(
               FacesMessage.SEVERITY_INFO,
               "systemSettingsUpdated",
               "System settings updated"
           );
  +
           return null;
       }
   
  -    @DataModel
  +    @DataModel(value = "systemPreferenceComponents")
       private List<PreferenceComponent> systemPreferenceComponents;
   
       @Factory("systemPreferenceComponents")
  @@ -61,4 +71,42 @@
           systemPreferenceComponents = preferenceEditor.loadPreferenceComponents();
           Contexts.getConversationContext().set("preferenceEditor", preferenceEditor);
       }
  +
  +    @DataModel(value = "linkProtocols")
  +    private List<LinkProtocol> linkProtocols;
  +
  +    @DataModelSelection(value = "linkProtocols")
  +    private LinkProtocol selectedLinkProtocol;
  +    LinkProtocol linkProtocol = new LinkProtocol();
  +    LinkProtocol newLinkProtocol;
  +
  +    @Factory("linkProtocols")
  +    @Transactional
  +    public void loadLinkProtocols() {
  +        //noinspection unchecked
  +        Map<String, LinkProtocol> linkProtocolMap = (Map<String, LinkProtocol>)Component.getInstance("linkProtocolMap");
  +        linkProtocols = new ArrayList<LinkProtocol>(linkProtocolMap.values());
  +    }
  +
  +    public LinkProtocol getLinkProtocol() {
  +        return linkProtocol;
  +    }
  +
  +    @Transactional
  +    public void addLinkProtocol() {
  +        entityManager.joinTransaction();
  +
  +        newLinkProtocol = linkProtocol;
  +        linkProtocols.add(newLinkProtocol);
  +        entityManager.persist(newLinkProtocol);
  +        linkProtocol = new LinkProtocol();
  +    }
  +
  +    @Transactional
  +    public void removeLinkProtocol() {
  +        entityManager.joinTransaction();
  +        entityManager.remove(selectedLinkProtocol);
  +        linkProtocols.remove(selectedLinkProtocol);
  +    }
  +
   }
  
  
  



More information about the jboss-cvs-commits mailing list