Updated Branches:
  refs/heads/wicket-1.5.x fbf0ead45 -> fad724f37

WICKET-4520 Inline enclosure doesn't work if wicket:message attribute is used 
on the same tag


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/fad724f3
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/fad724f3
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/fad724f3

Branch: refs/heads/wicket-1.5.x
Commit: fad724f377e501a5d9a5e547d579b4b5f4e4f6a4
Parents: fbf0ead
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Fri Apr 27 13:36:43 2012 +0300
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Fri Apr 27 13:36:43 2012 +0300

----------------------------------------------------------------------
 .../main/java/org/apache/wicket/Application.java   |    2 +-
 .../org/apache/wicket/markup/MarkupParser.java     |    3 +-
 .../parser/filter/InlineEnclosureHandler.java      |    5 +-
 .../parser/filter/WicketMessageTagHandler.java     |    4 +-
 .../markup/html/internal/InlineEnclosureTest.java  |   28 +++++++++++
 .../InlineEnclosureWithWicketMessagePage.html      |   30 ++++++++++++
 .../InlineEnclosureWithWicketMessagePage.java      |   36 +++++++++++++++
 ...InlineEnclosureWithWicketMessagePage.properties |    1 +
 ...reWithWicketMessagePage_invisible_expected.html |   26 +++++++++++
 ...sureWithWicketMessagePage_visible_expected.html |   30 ++++++++++++
 10 files changed, 157 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/fad724f3/wicket-core/src/main/java/org/apache/wicket/Application.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/Application.java 
b/wicket-core/src/main/java/org/apache/wicket/Application.java
index 9b5bc84..7b4147b 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Application.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Application.java
@@ -680,11 +680,11 @@ public abstract class Application implements 
UnboundListener, IEventSink
                pageSettings.addComponentResolver(new HtmlHeaderResolver());
                pageSettings.addComponentResolver(new WicketLinkTagHandler());
                pageSettings.addComponentResolver(new WicketMessageResolver());
-               pageSettings.addComponentResolver(new 
WicketMessageTagHandler());
                pageSettings.addComponentResolver(new FragmentResolver());
                pageSettings.addComponentResolver(new 
RelativePathPrefixHandler());
                pageSettings.addComponentResolver(new EnclosureHandler());
                pageSettings.addComponentResolver(new InlineEnclosureHandler());
+               pageSettings.addComponentResolver(new 
WicketMessageTagHandler());
                pageSettings.addComponentResolver(new 
WicketContainerResolver());
 
                // Install button image resource factory

http://git-wip-us.apache.org/repos/asf/wicket/blob/fad724f3/wicket-core/src/main/java/org/apache/wicket/markup/MarkupParser.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/MarkupParser.java 
b/wicket-core/src/main/java/org/apache/wicket/markup/MarkupParser.java
index 7308313..55a92c3 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/MarkupParser.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/MarkupParser.java
@@ -150,6 +150,7 @@ public class MarkupParser extends AbstractMarkupParser
                filters.add(new WicketLinkTagHandler());
                filters.add(new AutoLabelTagHandler());
                filters.add(new WicketNamespaceHandler(markupResourceStream));
+               filters.add(new WicketMessageTagHandler(markupResourceStream));
 
                // Provided the wicket component requesting the markup is known 
...
                if ((markupResourceStream != null) && 
(markupResourceStream.getResource() != null))
@@ -157,8 +158,6 @@ public class MarkupParser extends AbstractMarkupParser
                        final ContainerInfo containerInfo = 
markupResourceStream.getContainerInfo();
                        if (containerInfo != null)
                        {
-                               filters.add(new 
WicketMessageTagHandler(markupResourceStream));
-
                                // Pages require additional handlers
                                if 
(Page.class.isAssignableFrom(containerInfo.getContainerClass()))
                                {

http://git-wip-us.apache.org/repos/asf/wicket/blob/fad724f3/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/InlineEnclosureHandler.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/InlineEnclosureHandler.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/InlineEnclosureHandler.java
index 8bab4f9..2ba54bb 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/InlineEnclosureHandler.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/InlineEnclosureHandler.java
@@ -43,7 +43,6 @@ import org.apache.wicket.util.string.Strings;
  * enclosure is identified by the 'child' attribute value which must be equal 
to the relative child
  * id path.
  * 
- * @see EnclosureResolver
  * @see InlineEnclosure
  * 
  * @author Joonas Hamalainen
@@ -96,7 +95,7 @@ public final class InlineEnclosureHandler extends 
AbstractMarkupFilter
                                                        tag.toString(), 
tag.getPos());
                                }
 
-                               // if it doesn't have a wicket-id already, than 
assign one now.
+                               // if it doesn't have a wicket-id already, then 
assign one now.
                                if (Strings.isEmpty(tag.getId()))
                                {
                                        if (Strings.isEmpty(htmlId))
@@ -129,7 +128,7 @@ public final class InlineEnclosureHandler extends 
AbstractMarkupFilter
                // Are we within an enclosure?
                else if ((enclosures != null) && (enclosures.size() > 0))
                {
-                       // In case the enclosure tag did not provide a child 
component id, than assign the
+                       // In case the enclosure tag did not provide a child 
component id, then assign the
                        // first ComponentTag's id found as the controlling 
child to the enclosure.
                        if (tag.isOpen() && (tag.getId() != null) && !(tag 
instanceof WicketTag) &&
                                !tag.isAutoComponentTag())

http://git-wip-us.apache.org/repos/asf/wicket/blob/fad724f3/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java
index 3f79e24..6df1ca2 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java
@@ -91,7 +91,7 @@ public final class WicketMessageTagHandler extends 
AbstractMarkupFilter
                final String wicketMessageAttribute = 
tag.getAttributes().getString(
                        getWicketMessageAttrName());
 
-               if ((wicketMessageAttribute != null) && 
(wicketMessageAttribute.trim().length() > 0))
+               if (Strings.isEmpty(wicketMessageAttribute) == false)
                {
                        // check if this tag is raw markup
                        if (tag.getId() == null)
@@ -177,7 +177,7 @@ public final class WicketMessageTagHandler extends 
AbstractMarkupFilter
                // localize any raw markup that has wicket:message attrs
                if ((tag != null) && 
(tag.getId().startsWith(WICKET_MESSAGE_CONTAINER_ID)))
                {
-                       Component wc = null;
+                       Component wc;
                        int autoIndex = container.getPage().getAutoIndex();
                        String id = WICKET_MESSAGE_CONTAINER_ID + autoIndex;
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/fad724f3/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureTest.java
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureTest.java
index 879e552..f085672 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureTest.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureTest.java
@@ -56,6 +56,34 @@ public class InlineEnclosureTest extends WicketTestCase
                executeTest(InlineEnclosurePanelPage.class, 
"InlineEnclosurePanelPageExpectedResult.html");
        }
 
+       /**
+        * https://issues.apache.org/jira/browse/WICKET-4520
+        *
+        * Tests that wicket:enclosure and wicket:message attributes can 
co-exist
+        *
+        * @throws Exception
+        */
+       @Test
+       public void inlineEnclosureWithWicketMessageVisible() throws Exception
+       {
+               executeTest(new InlineEnclosureWithWicketMessagePage(true),
+                               
"InlineEnclosureWithWicketMessagePage_visible_expected.html");
+       }
+
+       /**
+        *
+        * https://issues.apache.org/jira/browse/WICKET-4520
+        *
+        * Tests that wicket:enclosure and wicket:message attributes can 
co-exist
+        * 
+        * @throws Exception
+        */
+       @Test
+       public void inlineEnclosureWithWicketMessageInvisible() throws Exception
+       {
+               executeTest(new InlineEnclosureWithWicketMessagePage(false),
+                               
"InlineEnclosureWithWicketMessagePage_invisible_expected.html");
+       }
 
        @Override
        protected WebApplication newApplication()

http://git-wip-us.apache.org/repos/asf/wicket/blob/fad724f3/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage.html
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage.html
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage.html
new file mode 100644
index 0000000..cb57792
--- /dev/null
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage.html
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<!DOCTYPE html>
+<html xmlns:wicket="http://wicket.apache.org";>
+<head>
+       <title>Wicket 4520</title>
+</head>
+<body>
+       <div wicket:enclosure="child" wicket:message="title:titleAttr">
+               <div>Inner div
+                       <span wicket:id="child">Blah</span>
+               </div>
+       </div>
+</body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/fad724f3/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage.java
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage.java
new file mode 100644
index 0000000..aebf680
--- /dev/null
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.markup.html.internal;
+
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.basic.Label;
+
+/**
+ * Test page for InlineEnclosureTest.
+ * Tests methods:
+ * 1) inlineEnclosureWithWicketMessageVisible()
+ * 2) inlineEnclosureWithWicketMessageInvisible
+ *
+ * @since 1.5.6
+ */
+public class InlineEnclosureWithWicketMessagePage extends WebPage
+{
+       public InlineEnclosureWithWicketMessagePage(boolean childVisible)
+       {
+               add(new Label("child", "A Label").setVisible(childVisible));
+       }
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/fad724f3/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage.properties
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage.properties
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage.properties
new file mode 100644
index 0000000..1e12905
--- /dev/null
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage.properties
@@ -0,0 +1 @@
+titleAttr=Some title
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/fad724f3/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage_invisible_expected.html
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage_invisible_expected.html
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage_invisible_expected.html
new file mode 100644
index 0000000..6252a42
--- /dev/null
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage_invisible_expected.html
@@ -0,0 +1,26 @@
+
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<!DOCTYPE html>
+<html>
+<head>
+       <title>Wicket 4520</title>
+</head>
+<body>
+       <div id="_message_attr_" style="display:none"></div>
+</body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/fad724f3/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage_visible_expected.html
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage_visible_expected.html
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage_visible_expected.html
new file mode 100644
index 0000000..62d9d09
--- /dev/null
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/InlineEnclosureWithWicketMessagePage_visible_expected.html
@@ -0,0 +1,30 @@
+
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<!DOCTYPE html>
+<html>
+<head>
+       <title>Wicket 4520</title>
+</head>
+<body>
+       <div id="_message_attr_" title="Some title">
+               <div>Inner div
+                       <span>A Label</span>
+               </div>
+       </div>
+</body>
+</html>
\ No newline at end of file

Reply via email to