[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