Repository: wicket Updated Branches: refs/heads/master c9aa5b94e -> 068d7d596
WICKET-5577 Generation of wicket ids with prefix / suffix Preserve the logic for not creating markup id with argument createIfDoesNotExist=false (cherry picked from commit 06660a00ba52e1c530587a3c46e16d2860470158) Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/068d7d59 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/068d7d59 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/068d7d59 Branch: refs/heads/master Commit: 068d7d59693689391b2f5a89ebe9cfb021fd9231 Parents: c9aa5b9 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Sun May 25 22:10:47 2014 +0200 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Sun May 25 22:14:46 2014 +0200 ---------------------------------------------------------------------- wicket-core/src/main/java/org/apache/wicket/Component.java | 2 +- .../main/java/org/apache/wicket/DefaultMarkupIdGenerator.java | 7 ++++++- .../src/main/java/org/apache/wicket/IMarkupIdGenerator.java | 7 +++++-- .../test/java/org/apache/wicket/MarkupIdGeneratorTest.java | 2 +- 4 files changed, 13 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/068d7d59/wicket-core/src/main/java/org/apache/wicket/Component.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/Component.java b/wicket-core/src/main/java/org/apache/wicket/Component.java index eed90a7..9a72a11 100644 --- a/wicket-core/src/main/java/org/apache/wicket/Component.java +++ b/wicket-core/src/main/java/org/apache/wicket/Component.java @@ -1499,7 +1499,7 @@ public abstract class Component public String getMarkupId(boolean createIfDoesNotExist) { IMarkupIdGenerator markupIdGenerator = getApplication().getMarkupSettings().getMarkupIdGenerator(); - String markupId = markupIdGenerator.generateMarkupId(this); + String markupId = markupIdGenerator.generateMarkupId(this, createIfDoesNotExist); return markupId; } http://git-wip-us.apache.org/repos/asf/wicket/blob/068d7d59/wicket-core/src/main/java/org/apache/wicket/DefaultMarkupIdGenerator.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/DefaultMarkupIdGenerator.java b/wicket-core/src/main/java/org/apache/wicket/DefaultMarkupIdGenerator.java index 4f5d90f..7be2d52 100644 --- a/wicket-core/src/main/java/org/apache/wicket/DefaultMarkupIdGenerator.java +++ b/wicket-core/src/main/java/org/apache/wicket/DefaultMarkupIdGenerator.java @@ -27,7 +27,7 @@ import org.apache.wicket.util.string.Strings; public class DefaultMarkupIdGenerator implements IMarkupIdGenerator { @Override - public String generateMarkupId(Component component) + public String generateMarkupId(Component component, boolean createIfDoesNotExist) { Object storedMarkupId = component.getMarkupIdImpl(); if (storedMarkupId instanceof String) @@ -35,6 +35,11 @@ public class DefaultMarkupIdGenerator implements IMarkupIdGenerator return (String)storedMarkupId; } + if (storedMarkupId == null && createIfDoesNotExist == false) + { + return null; + } + Session session = component.getSession(); int generatedMarkupId = storedMarkupId instanceof Integer ? (Integer)storedMarkupId : session.nextSequenceValue(); http://git-wip-us.apache.org/repos/asf/wicket/blob/068d7d59/wicket-core/src/main/java/org/apache/wicket/IMarkupIdGenerator.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/IMarkupIdGenerator.java b/wicket-core/src/main/java/org/apache/wicket/IMarkupIdGenerator.java index 6bd2e30..6de6a04 100644 --- a/wicket-core/src/main/java/org/apache/wicket/IMarkupIdGenerator.java +++ b/wicket-core/src/main/java/org/apache/wicket/IMarkupIdGenerator.java @@ -25,8 +25,11 @@ public interface IMarkupIdGenerator * Generates markup id for the given component * * @param component - * The component for which to generate a markup id + * The component for which to generate a markup id + * @param createIfDoesNotExist + * When there is no existing markup id, determines whether it should be generated or + * whether <code>null</code> should be returned. * @return The generated markup id */ - String generateMarkupId(Component component); + String generateMarkupId(Component component, boolean createIfDoesNotExist); } http://git-wip-us.apache.org/repos/asf/wicket/blob/068d7d59/wicket-core/src/test/java/org/apache/wicket/MarkupIdGeneratorTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/MarkupIdGeneratorTest.java b/wicket-core/src/test/java/org/apache/wicket/MarkupIdGeneratorTest.java index 859f620..0fcc91b 100644 --- a/wicket-core/src/test/java/org/apache/wicket/MarkupIdGeneratorTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/MarkupIdGeneratorTest.java @@ -51,7 +51,7 @@ public class MarkupIdGeneratorTest extends WicketTestCase IMarkupIdGenerator generator = new IMarkupIdGenerator() { @Override - public String generateMarkupId(Component component) + public String generateMarkupId(Component component, boolean create) { return customMarkupId; }
