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


Reply via email to