[jboss-cvs] jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/ui ...
Christian Bauer
christian at hibernate.org
Mon Mar 19 22:38:14 EDT 2007
User: cbauer
Date: 07/03/19 22:38:14
Modified: examples/wiki/src/main/org/jboss/seam/wiki/core/ui
WikiTextParser.java UIWikiFormattedText.java
Converters.java
Log:
Implemented moving of documents and files between directories
Revision Changes Path
1.4 +1 -0 jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/ui/WikiTextParser.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: WikiTextParser.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/ui/WikiTextParser.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- WikiTextParser.java 19 Mar 2007 04:53:53 -0000 1.3
+++ WikiTextParser.java 20 Mar 2007 02:38:14 -0000 1.4
@@ -46,6 +46,7 @@
method.invoke();
WikiLink link = links.get((linkText));
+ if (link == null) return "";
String finalDescriptionText =
(descriptionText!=null && descriptionText.length() > 0 ? descriptionText : link.getDescription());
1.7 +1 -0 jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/ui/UIWikiFormattedText.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: UIWikiFormattedText.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/ui/UIWikiFormattedText.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- UIWikiFormattedText.java 19 Mar 2007 12:11:24 -0000 1.6
+++ UIWikiFormattedText.java 20 Mar 2007 02:38:14 -0000 1.7
@@ -61,6 +61,7 @@
parser.startRule();
}
catch (ANTLRException re) {
+ // TODO: Do we ever get this exception?
throw new RuntimeException(re);
}
1.4 +66 -3 jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/ui/Converters.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: Converters.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/ui/Converters.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- Converters.java 18 Mar 2007 15:44:37 -0000 1.3
+++ Converters.java 20 Mar 2007 02:38:14 -0000 1.4
@@ -2,19 +2,24 @@
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Transactional;
+import org.jboss.seam.annotations.Factory;
import org.jboss.seam.wiki.core.model.Role;
import org.jboss.seam.wiki.core.model.Node;
+import org.jboss.seam.wiki.core.model.Directory;
import org.jboss.seam.Component;
-import org.jboss.seam.core.Expressions;
-import org.jboss.seam.ui.EntityConverter;
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.security.Identity;
+import org.richfaces.component.TreeNode;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
-import javax.persistence.EntityManager;
import java.io.Serializable;
import java.util.List;
+import java.util.Map;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
public class Converters {
@@ -45,5 +50,63 @@
}
}
+ @Name("treeNodeAdapter")
+ public static class TreeNodeAdapter {
+
+ @Factory(value = "writableDirectoryTree", scope = ScopeType.CONVERSATION, autoCreate = true)
+ public TreeNode loadWritableDirectoryTree() {
+ Directory wikiroot = (Directory) Component.getInstance("restrictedWikiRoot");
+ return new WikiTreeNode(wikiroot, true);
+ }
+ @Factory(value = "readableDirectoryTree", scope = ScopeType.CONVERSATION, autoCreate = true)
+ public TreeNode loadReadableDirectoryTree() {
+ Directory wikiroot = (Directory) Component.getInstance("restrictedWikiRoot");
+ return new WikiTreeNode(wikiroot, false);
+ }
+ class WikiTreeNode implements TreeNode {
+ boolean onlyWritableChildren;
+ private Node wikiNode;
+ private Map<Object, TreeNode> childrenMap = new LinkedHashMap<Object,TreeNode>();
+
+ public WikiTreeNode(Node wikiNode, boolean onlyWritableChildren) {
+ if (wikiNode != null) {
+ this.wikiNode = wikiNode;
+ this.onlyWritableChildren = onlyWritableChildren;
+ for (Node childNode : wikiNode.getChildren()) {
+ if (!WikiUtil.isDirectory(childNode)) continue;
+ if (onlyWritableChildren && !Identity.instance().hasPermission("Node", "edit", childNode)) continue;
+ childrenMap.put(childNode.getId(), new WikiTreeNode(childNode, onlyWritableChildren));
+ }
+ }
+ }
+ public Object getData() { return wikiNode; }
+ public void setData(Object node) { this.wikiNode = (Node)node; }
+
+ public boolean isLeaf() {
+ return childrenMap.size() == 0;
+ }
+ public Iterator getChildren() {
+ return childrenMap.entrySet().iterator();
+ }
+ public TreeNode getChild(Object identifier) {
+ return childrenMap.get( identifier );
+ }
+ public void addChild(Object identifier, TreeNode treeNode) {
+ childrenMap.put(identifier, treeNode);
+ }
+ public void removeChild(Object identifier) {
+ // Immutable
+ }
+
+ public TreeNode getParent() {
+ return new WikiTreeNode(wikiNode.getParent(), onlyWritableChildren);
+ }
+
+ public void setParent(TreeNode treeNode) {
+ // Immutable
+ }
+ }
+
+ }
}
More information about the jboss-cvs-commits
mailing list