I think you commented out too many tests in this commit... :)
-Vincent
On Jan 31, 2009, at 7:22 PM, tmortagne (SVN) wrote:
> Author: tmortagne
> Date: 2009-01-31 19:22:16 +0100 (Sat, 31 Jan 2009)
> New Revision: 15982
>
> Modified:
> platform/core/trunk/xwiki-rendering/xwiki-rendering-api/src/main/
> java/org/xwiki/rendering/block/AbstractBlock.java
> platform/core/trunk/xwiki-rendering/xwiki-rendering-api/src/main/
> java/org/xwiki/rendering/block/Block.java
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-
> rendering-macro-toc/pom.xml
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-
> rendering-macro-toc/src/main/java/org/xwiki/rendering/internal/macro/
> toc/TocMacro.java
> platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-
> rendering-macro-toc/src/test/java/org/xwiki/rendering/
> RenderingTests.java
> Log:
> XWIKI-3174: Rename current SectionBlock to HeaderBlock and make
> SectionBlock represent the whole section content
> * improve toc macro execution based on new section block
>
> Modified: platform/core/trunk/xwiki-rendering/xwiki-rendering-api/
> src/main/java/org/xwiki/rendering/block/AbstractBlock.java
> ===================================================================
> --- platform/core/trunk/xwiki-rendering/xwiki-rendering-api/src/main/
> java/org/xwiki/rendering/block/AbstractBlock.java 2009-01-31
> 18:02:32 UTC (rev 15981)
> +++ platform/core/trunk/xwiki-rendering/xwiki-rendering-api/src/main/
> java/org/xwiki/rendering/block/AbstractBlock.java 2009-01-31
> 18:22:16 UTC (rev 15982)
> @@ -20,18 +20,18 @@
> package org.xwiki.rendering.block;
>
> import java.util.ArrayList;
> +import java.util.Collections;
> import java.util.LinkedHashMap;
> import java.util.List;
> import java.util.Map;
> -import java.util.Collections;
>
> import org.apache.commons.beanutils.ConvertUtils;
> import org.apache.commons.lang.builder.EqualsBuilder;
> import org.apache.commons.lang.builder.HashCodeBuilder;
>
> /**
> - * Implementation for Block operations. All blocks should extend
> this class. Supports the notion of parameters
> - * which can be added to a block (see {...@link #setParameter(String,
> Object)} for more details).
> + * Implementation for Block operations. All blocks should extend
> this class. Supports the notion of parameters which can
> + * be added to a block (see {...@link #setParameter(String, Object)}
> for more details).
> *
> * @version $Id$
> * @since 1.5M2
> @@ -70,7 +70,7 @@
> {
> this.parameters.putAll(parameters);
> }
> -
> +
> /**
> * {...@inheritdoc}
> *
> @@ -194,15 +194,15 @@
> }
>
> /**
> - * Set a parameter on the current block. A parameter is any
> semantic data associated with a block.
> - * It can be used for various purposes and provide additional
> information to the renderers/listeners.
> - * For example you can pass style information such as
> <code>style="color:red"</code> (in that example
> - * the name would be <code>style</code> and the value
> <code>"color:red"</code>) to indicate that the
> - * current block should be displayed in red.
> + * Set a parameter on the current block. A parameter is any
> semantic data associated with a block. It can be used
> + * for various purposes and provide additional information to
> the renderers/listeners. For example you can pass
> + * style information such as <code>style="color:red"</code> (in
> that example the name would be <code>style</code>
> + * and the value <code>"color:red"</code>) to indicate that the
> current block should be displayed in red.
> + * <p>
> + * Note that there are currently no well-defined known
> parameter names and you'll need to check what the different
> + * renderers/listeners support to know what to use.
> + * </p>
> *
> - * <p>Note that there are currently no well-defined known
> parameter names and you'll need to check what
> - * the different renderers/listeners support to know what to
> use.</p>
> - *
> * @param name the parameter's name
> * @param value the parameter's value
> */
> @@ -285,7 +285,7 @@
>
> for (int i = index - 1; i >= 0; --i) {
> Block previousBlock = blocks.get(i);
> - if (previousBlock instanceof HeaderBlock) {
> + if
> (blockClass.isAssignableFrom(previousBlock.getClass())) {
> return (T) previousBlock;
> }
> }
> @@ -317,6 +317,7 @@
>
> /**
> * {...@inheritdoc}
> + *
> * @see Object#clone()
> */
> @Override
> @@ -330,7 +331,7 @@
> throw new RuntimeException("Failed to clone object", e);
> }
> block.parameters = new LinkedHashMap<String,
> String>(getParameters());
> - // Clone all children blocks. Note that we cannot use an
> iterator since we're going to change the objects
> + // Clone all children blocks. Note that we cannot use an
> iterator since we're going to change the objects
> // themselves. Using an iterator would lead to a
> ConcurrentModificationException
> Object[] objectArray = getChildren().toArray();
> block.childrenBlocks = new ArrayList<Block>();
>
> Modified: platform/core/trunk/xwiki-rendering/xwiki-rendering-api/
> src/main/java/org/xwiki/rendering/block/Block.java
> ===================================================================
> --- platform/core/trunk/xwiki-rendering/xwiki-rendering-api/src/main/
> java/org/xwiki/rendering/block/Block.java 2009-01-31 18:02:32 UTC
> (rev 15981)
> +++ platform/core/trunk/xwiki-rendering/xwiki-rendering-api/src/main/
> java/org/xwiki/rendering/block/Block.java 2009-01-31 18:22:16 UTC
> (rev 15982)
> @@ -84,7 +84,7 @@
> * @param newBlocks the new blocks to replace the current block
> with
> */
> void replace(List<Block> newBlocks);
> -
> +
> /**
> * Get the parent block. All blocks have a parent and the top
> level parent is the {...@link XDOM} object.
> *
> @@ -126,7 +126,7 @@
> <T extends Block> List<T> getChildrenByType(Class<T> blockClass,
> boolean recurse);
>
> /**
> - * Look forward to find a block which inherit or s provided type.
> + * Look forward to find a block which inherit or is provided
> type.
> *
> * @param <T> the class of the Blocks to return
> * @param blockClass the block class to look for
> @@ -135,9 +135,10 @@
> * @since 1.6M1
> */
> <T extends Block> T getPreviousBlockByType(Class<T> blockClass,
> boolean recurse);
> -
> +
> /**
> * {...@inheritdoc}
> + *
> * @see Object#clone()
> */
> Block clone();
>
> Modified: platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/
> xwiki-rendering-macro-toc/pom.xml
> ===================================================================
> --- platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-
> rendering-macro-toc/pom.xml 2009-01-31 18:02:32 UTC (rev 15981)
> +++ platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-
> rendering-macro-toc/pom.xml 2009-01-31 18:22:16 UTC (rev 15982)
> @@ -43,11 +43,11 @@
> </includes>
> </configuration>
> </plugin>
> - <!-- plugin>
> - Apply the Checkstyle configurations defined in the top
> level pom.xml file
> + <plugin>
> + <!-- Apply the Checkstyle configurations defined in the top
> level pom.xml file -->
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-checkstyle-plugin</artifactId>
> - </plugin> -->
> + </plugin>
> </plugins>
> </build>
> </project>
>
> Modified: platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/
> xwiki-rendering-macro-toc/src/main/java/org/xwiki/rendering/internal/
> macro/toc/TocMacro.java
> ===================================================================
> --- platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-
> rendering-macro-toc/src/main/java/org/xwiki/rendering/internal/macro/
> toc/TocMacro.java 2009-01-31 18:02:32 UTC (rev 15981)
> +++ platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-
> rendering-macro-toc/src/main/java/org/xwiki/rendering/internal/macro/
> toc/TocMacro.java 2009-01-31 18:22:16 UTC (rev 15982)
> @@ -31,6 +31,7 @@
> import org.xwiki.rendering.block.ListItemBlock;
> import org.xwiki.rendering.block.NumberedListBlock;
> import org.xwiki.rendering.block.HeaderBlock;
> +import org.xwiki.rendering.block.SectionBlock;
> import org.xwiki.rendering.internal.util.EnumConverter;
> import org.xwiki.rendering.listener.Link;
> import org.xwiki.rendering.macro.AbstractMacro;
> @@ -108,26 +109,30 @@
> // Get the root block from scope parameter
>
> Block root;
> - HeaderBlock rootSectionBlock = null;
>
> - if (parameters.getScope() == Scope.LOCAL &&
> context.getCurrentMacroBlock() != null) {
> + if (parameters.getScope() == Scope.LOCAL) {
> root = context.getCurrentMacroBlock().getParent();
> - rootSectionBlock =
> context
> .getCurrentMacroBlock().getPreviousBlockByType(HeaderBlock.class,
> true);
> } else {
> root = context.getXDOM();
> }
>
> // Get the list of sections in the scope
>
> - List<HeaderBlock> sections =
> root.getChildrenByType(HeaderBlock.class, true);
> + List<HeaderBlock> headers =
> root.getChildrenByType(HeaderBlock.class, true);
>
> - if (!sections.isEmpty()) {
> - // Construct table of content from sections list
> - Block rootBlock =
> - generateTree(sections, parameters.getStart(),
> parameters.getDepth(), parameters.isNumbered(),
> - rootSectionBlock);
> + if (!headers.isEmpty()) {
> + // If the root block is a section, remove it's header
> block for the list of header blocks
> + if (root instanceof SectionBlock) {
> + Block block = root.getChildren().get(0);
>
> - return Arrays.asList(rootBlock);
> + if (block instanceof HeaderBlock) {
> + headers.remove(block);
> + }
> + }
> +
> + // Construct table of content from sections list
> + return Arrays.asList(generateTree(headers,
> parameters.getStart(), parameters.getDepth(), parameters
> + .isNumbered()));
> }
>
> return Collections.emptyList();
> @@ -142,47 +147,31 @@
> }
>
> /**
> - * Convert sections into list block tree.
> + * Convert headers into list block tree.
> *
> - * @param sections the sections to convert.
> + * @param headers the headers to convert.
> * @param start the "start" parameter value.
> * @param depth the "depth" parameter value.
> * @param numbered the "numbered" parameter value.
> - * @param rootSectionBlock the section where the toc macro
> search for children sections.
> * @return the root block of generated block tree.
> */
> - private Block generateTree(List<HeaderBlock> sections, int
> start, int depth, boolean numbered,
> - HeaderBlock rootSectionBlock)
> + private Block generateTree(List<HeaderBlock> headers, int
> start, int depth, boolean numbered)
> {
> - int rootSectionLevel = rootSectionBlock != null ?
> rootSectionBlock.getLevel().getAsInt() : 0;
> - boolean rootSectionFound = false;
> -
> int currentLevel = 0;
> Block currentBlock = null;
> - for (HeaderBlock sectionBlock : sections) {
> - int sectionLevel = sectionBlock.getLevel().getAsInt();
> + for (HeaderBlock headerBlock : headers) {
> + int headerLevel = headerBlock.getLevel().getAsInt();
>
> - if (rootSectionBlock != null) {
> - if (rootSectionBlock == sectionBlock) {
> - rootSectionFound = true;
> - continue;
> - } else if (rootSectionBlock.getParent() ==
> sectionBlock.getParent() && sectionLevel <= rootSectionLevel) {
> - break;
> - }
> - } else {
> - rootSectionFound = true;
> - }
> + if (headerLevel >= start && headerLevel <= depth) {
> + ListItemBlock itemBlock =
> createTocEntry(headerBlock);
>
> - if (rootSectionFound && sectionLevel >= start &&
> sectionLevel <= depth) {
> - ListItemBlock itemBlock =
> createTocEntry(sectionBlock);
> + // Move to next header in toc tree
>
> - // Move to next section in toc tree
> -
> - while (currentLevel < sectionLevel) {
> + while (currentLevel < headerLevel) {
> currentBlock = createChildListBlock(numbered,
> currentBlock);
> ++currentLevel;
> }
> - while (currentLevel > sectionLevel) {
> + while (currentLevel > headerLevel) {
> currentBlock = currentBlock.getParent();
> --currentLevel;
> }
>
> Modified: platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/
> xwiki-rendering-macro-toc/src/test/java/org/xwiki/rendering/
> RenderingTests.java
> ===================================================================
> --- platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-
> rendering-macro-toc/src/test/java/org/xwiki/rendering/
> RenderingTests.java 2009-01-31 18:02:32 UTC (rev 15981)
> +++ platform/core/trunk/xwiki-rendering/xwiki-rendering-macros/xwiki-
> rendering-macro-toc/src/test/java/org/xwiki/rendering/
> RenderingTests.java 2009-01-31 18:22:16 UTC (rev 15982)
> @@ -37,12 +37,14 @@
> {
> RenderingTestSuite suite = new RenderingTestSuite("Test Toc
> Macro");
>
> - suite.addTestsFromResource("macrotoc1", true);
> + /*suite.addTestsFromResource("macrotoc1", true);
> suite.addTestsFromResource("macrotoc2", true);
> suite.addTestsFromResource("macrotoc3", true);
> suite.addTestsFromResource("macrotoc4", true);
> - suite.addTestsFromResource("macrotoc5", true);
> + suite.addTestsFromResource("macrotoc5", true);*/
>
> + suite.addTestsFromResource("macrotoc4", true);
> +
> return new RenderingPlexusTestSetup(suite);
> }
> }
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs