[freenet-cvs] r14724 - in trunk/plugins/Echo/src: plugins/echo plugins/echo/block plugins/echo/i18n xml

fred at freenetproject.org fred at freenetproject.org
Thu Aug 16 19:03:40 UTC 2007


Author: fred
Date: 2007-08-16 19:03:40 +0000 (Thu, 16 Aug 2007)
New Revision: 14724

Modified:
   trunk/plugins/Echo/src/plugins/echo/Echo.java
   trunk/plugins/Echo/src/plugins/echo/Project.java
   trunk/plugins/Echo/src/plugins/echo/ProjectManager.java
   trunk/plugins/Echo/src/plugins/echo/block/Block.java
   trunk/plugins/Echo/src/plugins/echo/block/BlockManager.java
   trunk/plugins/Echo/src/plugins/echo/block/BlogrollBlock.java
   trunk/plugins/Echo/src/plugins/echo/i18n/echo.i18n.en.properties
   trunk/plugins/Echo/src/xml/edit.xsl
Log:
Continuing development of the block editor

Modified: trunk/plugins/Echo/src/plugins/echo/Echo.java
===================================================================
--- trunk/plugins/Echo/src/plugins/echo/Echo.java	2007-08-16 18:02:31 UTC (rev 14723)
+++ trunk/plugins/Echo/src/plugins/echo/Echo.java	2007-08-16 19:03:40 UTC (rev 14724)
@@ -81,6 +81,8 @@
 			transform = new XSLTransform(styleSheet);
 
 			projectManager = new ProjectManager(BASE_DIR);
+			if(projectManager.countProjects() == 0)
+				projectManager.newProject("bleh");
 			setProject(projectManager.loadProject("001"));
 
 		} catch (Exception e) {
@@ -113,6 +115,7 @@
 	
 		this.project = p;
 		this.nodesManager = project.getNodesManager();
+		this.blockManager = project.getBlockManager();
 		transform.setParameter("baseDir", project.getProjectDir().getAbsolutePath() + "/");
 	
 	}
@@ -150,6 +153,7 @@
 		String fileName = (new File(request.getPath())).getName();
 		String nodeId = request.getParam("node");
 		String catId = request.getParam("category");
+		String blockId = request.getParam("block");
 		
 		if ("edit.css".equals(fileName) || "echo-logo-small-0.1.png".equals(fileName)) {
 			
@@ -230,7 +234,25 @@
 			del.appendChild(object);
 			page.appendData(del);
 			page.appendData(getFormPassword());
-
+			
+		} else if ("configureBlock".equals(fileName) && ! "".equals(blockId) ) {
+			
+			Element configureBlock = new Element("configure-block");
+			page = new Page(configureBlock);
+			if(blockManager.blockExists(blockId)) {
+				Block block = blockManager.getBlockById(blockId);
+				page.setTitle(i18n.getString("echo.block." + block.getType().toString()));
+				
+				if(block.isConfigurable())
+					configureBlock.appendChild(block.toXMLElement());
+				else
+					page.appendError("This block is not configurable");
+				
+			} else {
+				page.setTitle("Block");
+				page.appendError("Block not found");
+			}			
+			
 		} else if ("write".equals(fileName) || "manage".equals(fileName)) {
 			
 			page = new Page();
@@ -410,6 +432,7 @@
 				}
 			}
 		} catch (Exception e) {
+			e.printStackTrace();
 			return e.getMessage();
 		}
 

Modified: trunk/plugins/Echo/src/plugins/echo/Project.java
===================================================================
--- trunk/plugins/Echo/src/plugins/echo/Project.java	2007-08-16 18:02:31 UTC (rev 14723)
+++ trunk/plugins/Echo/src/plugins/echo/Project.java	2007-08-16 19:03:40 UTC (rev 14724)
@@ -47,7 +47,7 @@
 	
 	}
 	
-	public BlockManager getBlockManger() {
+	public BlockManager getBlockManager() {
 	
 		return blockManager;
 	

Modified: trunk/plugins/Echo/src/plugins/echo/ProjectManager.java
===================================================================
--- trunk/plugins/Echo/src/plugins/echo/ProjectManager.java	2007-08-16 18:02:31 UTC (rev 14723)
+++ trunk/plugins/Echo/src/plugins/echo/ProjectManager.java	2007-08-16 19:03:40 UTC (rev 14724)
@@ -63,8 +63,11 @@
 			configFile.close();
 			
 			projects.put(id, projectDir);
-			return loadProject(id);			
+			Project project = loadProject(id);
+			project.getBlockManager().createDefaultBlocks();
 			
+			return project;
+			
 		} else 
 			throw new IOException("Unable to make the project directory");
 		
@@ -79,6 +82,12 @@
 		}		
 	}
 	
+	public int countProjects() {
+	
+		return projects.size();
+	
+	}
+	
 	public String[] getProjectsIds() {
 	
 		return projects.keySet().toArray(new String[]{});

Modified: trunk/plugins/Echo/src/plugins/echo/block/Block.java
===================================================================
--- trunk/plugins/Echo/src/plugins/echo/block/Block.java	2007-08-16 18:02:31 UTC (rev 14723)
+++ trunk/plugins/Echo/src/plugins/echo/block/Block.java	2007-08-16 19:03:40 UTC (rev 14724)
@@ -2,6 +2,7 @@
 
 import nu.xom.Document;
 import nu.xom.Element;
+import nu.xom.Attribute;
 
 public abstract class Block {
 	
@@ -35,16 +36,24 @@
 
 	public static final int BLOCK_ID_LENGTH = 3;
 	
-	protected Document doc;
 	protected Element block;
 	
 	public Block(Document document) {
 	
-		this.doc = document;
 		this.block = document.getRootElement();
 	
 	}
 	
+	protected Block(String id, BlockType type) {
+		
+		block = new Element("block");
+		block.addAttribute(new Attribute("id", id));
+		block.addAttribute(new Attribute("type", type.toString()));
+		block.addAttribute(new Attribute("position", "disabled"));
+		block.addAttribute(new Attribute("weight", "5"));		
+	
+	}
+	
 	public abstract boolean isConfigurable();
 	
 	public abstract BlockType getType();
@@ -81,13 +90,13 @@
 	
 	public Element toXMLElement() {
 	
-		return block;
+		return (Element) block.copy();
 	
 	}
 	
 	public Document getDoc() {
 	
-		return doc;
+		return new Document((Element) block.copy());
 	
 	}
 	

Modified: trunk/plugins/Echo/src/plugins/echo/block/BlockManager.java
===================================================================
--- trunk/plugins/Echo/src/plugins/echo/block/BlockManager.java	2007-08-16 18:02:31 UTC (rev 14723)
+++ trunk/plugins/Echo/src/plugins/echo/block/BlockManager.java	2007-08-16 19:03:40 UTC (rev 14724)
@@ -31,11 +31,9 @@
 				Block block = null;
 				Document doc = parser.build(f);
 				String type = doc.query("/block/@type").get(0).getValue();
-				System.err.println(">>>>>>" + type);
 				switch (Block.BlockType.value(type)) {
 					case BLOG_ROLL:
 						block = new BlogrollBlock(doc);
-						System.err.println(">>>>>>>bleh");
 						break;
 				}
 				
@@ -51,6 +49,12 @@
 	
 	}
 	
+	public boolean blockExists(String id) {
+	
+		return blocks.containsKey(id);
+	
+	}
+	
 	public String[] getIds() {
 	
 		return blocks.keySet().toArray(new String[]{});
@@ -67,15 +71,25 @@
 		return blocksTable;
 	}
 	
-	public void write(Block block) throws IOException { // TODO : exists in HashMap,.
+	public void write(Block block) throws IOException {
 	
 		String id = block.getId();
 		
+		if(!blocks.containsKey(id))
+			blocks.put(id, block);
+		
 		Serializer serializer = new Serializer(new FileOutputStream(blocksDir.getPath() + File.separator + id + ".xml"));
 		serializer.setIndent(4);
 		serializer.setMaxLength(128);
 		serializer.write(block.getDoc());
 	
 	}
+	
+	public void createDefaultBlocks() throws IOException {
+	
+		Block blogroll = new BlogrollBlock("001");
+		write(blogroll);
+	
+	}
 
 }
\ No newline at end of file

Modified: trunk/plugins/Echo/src/plugins/echo/block/BlogrollBlock.java
===================================================================
--- trunk/plugins/Echo/src/plugins/echo/block/BlogrollBlock.java	2007-08-16 18:02:31 UTC (rev 14723)
+++ trunk/plugins/Echo/src/plugins/echo/block/BlogrollBlock.java	2007-08-16 19:03:40 UTC (rev 14724)
@@ -10,11 +10,11 @@
 
 public class BlogrollBlock extends Block {
 
-// 	public BlogrollBlock (String id) {
-// 		
-// 		super(id, Block.BlockType.BLOG_ROLL);
-// 		
-// 	}
+	public BlogrollBlock (String id) {
+		
+		super(id, Block.BlockType.BLOG_ROLL);
+		
+	}
 	
 	public BlogrollBlock (Document document) {
 	

Modified: trunk/plugins/Echo/src/plugins/echo/i18n/echo.i18n.en.properties
===================================================================
--- trunk/plugins/Echo/src/plugins/echo/i18n/echo.i18n.en.properties	2007-08-16 18:02:31 UTC (rev 14723)
+++ trunk/plugins/Echo/src/plugins/echo/i18n/echo.i18n.en.properties	2007-08-16 19:03:40 UTC (rev 14724)
@@ -26,4 +26,6 @@
 echo.manage.myNodes=My nodes
 echo.manage.myNodes.desc=A list of your nodes
 echo.manage.newCategory=New category
-echo.manage.categories.desc=Categorize your posts
\ No newline at end of file
+echo.manage.categories.desc=Categorize your posts
+
+echo.block.blog-roll=Blog Roll
\ No newline at end of file

Modified: trunk/plugins/Echo/src/xml/edit.xsl
===================================================================
--- trunk/plugins/Echo/src/xml/edit.xsl	2007-08-16 18:02:31 UTC (rev 14723)
+++ trunk/plugins/Echo/src/xml/edit.xsl	2007-08-16 19:03:40 UTC (rev 14724)
@@ -47,7 +47,7 @@
 						<h1><xsl:value-of select="title/text()" /></h1>
 						<xsl:apply-templates select="errors" />
 						<xsl:apply-templates select="data" />
-<!-- 						<div><xsl:copy-of select="/node()" /></div> -->
+ 						<div><xsl:copy-of select="/node()" /></div> 
 					
 					</div>
 				</div>
@@ -225,6 +225,14 @@
 			</form>
 			</xsl:when>
 			
+			<xsl:when test="configure-block">
+				<xsl:if test="configure-block/block/@type='blog-roll'">
+					<xsl:call-template name="block-blog-roll">
+						<xsl:with-param name="block" select="configure-block/block" />
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:when>
+			
 			<xsl:when test="./node">
 			<form name="edit" method="POST" action="">
 				<label for="edit-title"><i18n key="echo.common.title" /></label>
@@ -368,4 +376,9 @@
 		
 	</xsl:template>
 	
+	<xsl:template name="block-blog-roll">
+		<xsl:param name="block" />
+		TODO
+	</xsl:template>
+	
 </xsl:stylesheet>
\ No newline at end of file




More information about the cvs mailing list