You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by ts...@apache.org on 2015/12/04 18:48:42 UTC
[1/7] wicket git commit: WICKET-6042 - Implementation of
ExternalImage component
Repository: wicket
Updated Branches:
refs/heads/master b00692de0 -> ee572d0ee
WICKET-6042 - Implementation of ExternalImage component
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/78802c9c
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/78802c9c
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/78802c9c
Branch: refs/heads/master
Commit: 78802c9c8a13a71000d5b6225daab80c9e6f8d46
Parents: b00692d
Author: Tobias Soloschenko <ts...@apache.org>
Authored: Mon Nov 30 21:13:39 2015 +0100
Committer: Tobias Soloschenko <ts...@apache.org>
Committed: Fri Dec 4 18:47:39 2015 +0100
----------------------------------------------------------------------
.../wicket/markup/html/image/ExternalImage.java | 274 +++++++++++++++++++
.../markup/html/image/ExternalSource.java | 121 ++++++++
.../markup/html/image/ExternalImageTest.java | 70 +++++
.../html/image/ExternalImageTestPage.html | 13 +
.../html/image/ExternalImageTestPage.java | 52 ++++
5 files changed, 530 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/78802c9c/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
new file mode 100644
index 0000000..f3b6ae0
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
@@ -0,0 +1,274 @@
+/*
+ * 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.image;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.wicket.markup.ComponentTag;
+import org.apache.wicket.markup.html.WebComponent;
+import org.apache.wicket.markup.html.image.Image.Cors;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+
+/**
+ * A component to display external images. The src / srcset information are hold in models
+ *
+ * @author Tobias Soloschenko
+ *
+ */
+public class ExternalImage extends WebComponent
+{
+
+ private static final long serialVersionUID = 1L;
+
+ /** The x values to be used within the srcset */
+ private List<String> xValues = null;
+
+ /** The sizes of the responsive images */
+ private List<String> sizes = null;
+
+ /**
+ * Cross origin settings
+ */
+ private Cors crossOrigin = null;
+
+ private IModel<?>[] srcSet;
+
+ /**
+ * Creates an external image
+ *
+ * @param id
+ * the component id
+ * @param src
+ * the source URL
+ * @param srcSet
+ * a list of URLs placed in the srcset attribute
+ */
+ public ExternalImage(String id, String src, String... srcSet)
+ {
+ this(id, src != null ? Model.of(src) : null, convertToModel(srcSet));
+ }
+
+ /**
+ * Creates an external image
+ *
+ * @param id
+ * the component id
+ * @param src
+ * the model source URL
+ * @param srcSetModels
+ * a model list of URLs placed in the srcset attribute
+ */
+ public ExternalImage(String id, IModel<?> src, IModel<?>... srcSetModels)
+ {
+ super(id, src);
+ this.srcSet = srcSetModels;
+ }
+
+ /**
+ * Converts a variable argument of Strings to an array of models
+ *
+ * @param srcSet
+ * a variable argument of URLs to be converted to an array of models
+ * @return an array of models
+ */
+ private static IModel<?>[] convertToModel(String... srcSet)
+ {
+ IModel<?>[] models = null;
+ if (srcSet != null)
+ {
+
+ models = new IModel<?>[srcSet.length];
+ int i = 0;
+ for (String srcSetElement : srcSet)
+ {
+ models[i] = Model.of(srcSetElement);
+ i++;
+ }
+ }
+ else
+ {
+ models = new IModel<?>[0];
+ }
+ return models;
+ }
+
+ @Override
+ protected void onComponentTag(ComponentTag tag)
+ {
+ super.onComponentTag(tag);
+
+ if ("source".equals(tag.getName()))
+ {
+ buildSrcSetAttribute(tag, getSrcSet());
+ }
+ else
+ {
+ List<IModel<?>> srcSet = getSrcSet();
+ checkComponentTag(tag, "img");
+ buildSrcAttribute(tag, getDefaultModel());
+ if (srcSet.size() > 1)
+ {
+ buildSrcSetAttribute(tag, srcSet);
+ }
+ }
+
+ buildSizesAttribute(tag);
+
+ Cors crossOrigin = getCrossOrigin();
+ if (crossOrigin != null && Cors.NO_CORS != crossOrigin)
+ {
+ tag.put("crossOrigin", crossOrigin.getRealName());
+ }
+ }
+
+ /**
+ * Builds the src attribute
+ *
+ * @param tag
+ * the component tag
+ * @param srcModel
+ * the model containing the src URL
+ */
+ protected void buildSrcAttribute(final ComponentTag tag, IModel<?> srcModel)
+ {
+ // The first model is the one put into src attribute
+ tag.put("src", srcModel.getObject().toString());
+ }
+
+ /**
+ * Builds the srcset attribute if multiple models are found as varargs
+ *
+ * @param tag
+ * the component tag
+ * @param srcSetModels
+ * the models containing the src set URLs
+ */
+ protected void buildSrcSetAttribute(final ComponentTag tag, List<IModel<?>> srcSetModels)
+ {
+ int srcSetPosition = 0;
+ for (IModel<?> srcSetModel : srcSetModels)
+ {
+ String srcset = tag.getAttribute("srcset");
+ String xValue = "";
+
+ // If there are xValues set process them in the applied order to the srcset attribute.
+ if (xValues != null)
+ {
+ xValue = xValues.size() > srcSetPosition && xValues.get(srcSetPosition) != null
+ ? " " + xValues.get(srcSetPosition) : "";
+ }
+ tag.put("srcset",
+ (srcset != null ? srcset + ", " : "") + srcSetModel.getObject() + xValue);
+ srcSetPosition++;
+ }
+ }
+
+ /**
+ * builds the sizes attribute of the img tag
+ *
+ * @param tag
+ * the component tag
+ */
+ protected void buildSizesAttribute(final ComponentTag tag)
+ {
+ // if no sizes have been set then don't build the attribute
+ if (sizes == null)
+ {
+ return;
+ }
+ String sizes = "";
+ for (String size : this.sizes)
+ {
+ sizes += size + ",";
+ }
+ int lastIndexOf = sizes.lastIndexOf(",");
+ if (lastIndexOf != -1)
+ {
+ sizes = sizes.substring(0, lastIndexOf);
+ }
+ if (!"".equals(sizes))
+ {
+ tag.put("sizes", sizes);
+ }
+ }
+
+ /**
+ * @param values
+ * the x values to be used in the srcset
+ */
+ public void setXValues(String... values)
+ {
+ if (xValues == null)
+ {
+ xValues = new ArrayList<>();
+ }
+ xValues.clear();
+ xValues.addAll(Arrays.asList(values));
+ }
+
+ /**
+ * @param sizes
+ * the sizes to be used in the size
+ */
+ public void setSizes(String... sizes)
+ {
+ if (this.sizes == null)
+ {
+ this.sizes = new ArrayList<>();
+ }
+ this.sizes.clear();
+ this.sizes.addAll(Arrays.asList(sizes));
+ }
+
+ /**
+ * Gets the cross origin settings
+ *
+ * @see {@link org.apache.wicket.markup.html.image.Image#setCrossOrigin(Cors)}
+ *
+ * @return the cross origins settings
+ */
+ public Cors getCrossOrigin()
+ {
+ return crossOrigin;
+ }
+
+ /**
+ * Sets the cross origin settings
+ *
+ * @see {@link org.apache.wicket.markup.html.image.Image#setCrossOrigin(Cors)}
+ * @param crossOrigin
+ * the cross origins settings to set
+ */
+ public void setCrossOrigin(Cors crossOrigin)
+ {
+ this.crossOrigin = crossOrigin;
+ }
+
+ /**
+ * Gets a list of models containing the src set values
+ *
+ * @return a list of models containing the src set values
+ */
+ public List<IModel<?>> getSrcSet()
+ {
+ return Arrays.asList(srcSet);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/wicket/blob/78802c9c/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalSource.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalSource.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalSource.java
new file mode 100644
index 0000000..637d69e
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalSource.java
@@ -0,0 +1,121 @@
+/*
+ * 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.image;
+
+import java.util.Arrays;
+
+import org.apache.wicket.markup.ComponentTag;
+import org.apache.wicket.markup.html.image.Image.Cors;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.util.lang.Args;
+
+/**
+ * A component which displays external images within a picture tag.
+ *
+ * @see org.apache.wicket.markup.html.image.Source
+ *
+ * @author Tobias Soloschenko
+ *
+ */
+public class ExternalSource extends ExternalImage
+{
+
+ private static final long serialVersionUID = 1L;
+
+ private String media = null;
+
+ /**
+ * Creates an external source
+ *
+ * @param id
+ * the component id
+ * @param src
+ * the source URL
+ * @param srcSet
+ * a list of URLs placed in the srcset attribute
+ */
+ public ExternalSource(String id, String... srcSet)
+ {
+ super(id, null, Arrays.copyOfRange(srcSet, 1, srcSet.length));
+ }
+
+ /**
+ * Creates an external source
+ *
+ * @param id
+ * the component id
+ * @param src
+ * the model source URL
+ * @param srcSet
+ * a model list of URLs placed in the srcset attribute
+ */
+ public ExternalSource(String id, IModel<?>... srcSet)
+ {
+ super(id, null, srcSet);
+ }
+
+ @Override
+ protected void onComponentTag(ComponentTag tag)
+ {
+ checkComponentTag(tag, "source");
+ super.onComponentTag(tag);
+ if (getMedia() != null)
+ {
+ tag.put("media", getMedia());
+ }
+ }
+
+ /**
+ * Sets the media attribute information
+ *
+ * @param media
+ * the media attribute information
+ */
+ public void setMedia(String media)
+ {
+ this.media = media;
+ }
+
+ /**
+ * Gets the media attribute information
+ *
+ * @return the media attribute information
+ */
+ public String getMedia()
+ {
+ return media;
+ }
+
+ /**
+ * Unsupported for source tag
+ */
+ @Override
+ public void setCrossOrigin(Cors crossorigin)
+ {
+ throw new UnsupportedOperationException(
+ "It is not allowed to set the crossorigin attribute for source tag");
+ }
+
+ /**
+ * Unsupported for source tag
+ */
+ @Override
+ public final Cors getCrossOrigin()
+ {
+ return null;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/wicket/blob/78802c9c/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java
new file mode 100644
index 0000000..fb4e072
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java
@@ -0,0 +1,70 @@
+/*
+ * 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.image;
+
+import java.util.List;
+
+import org.apache.wicket.Component;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.util.tester.TagTester;
+import org.apache.wicket.util.tester.WicketTestCase;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Test cases to test the external image components
+ *
+ * @author Tobias Soloschenko
+ *
+ */
+public class ExternalImageTest extends WicketTestCase
+{
+
+ @Test
+ public void testExternalImage()
+ {
+ tester.startPage(ExternalImageTestPage.class);
+ String lastResponseAsString = tester.getLastResponse().getDocument();
+ Assert.assertTrue(lastResponseAsString.contains(
+ "<img wicket:id=\"externalImage1\" src=\"http://wicket.apache.org/img/wicket-7-bg.jpg\"/>"));
+ Assert.assertTrue(lastResponseAsString.contains(
+ "<img id=\"externalImage2\" wicket:id=\"externalImage2\" src=\"http://wicket.apache.org/img/wicket-7-bg.jpg\" srcset=\"http://wicket.apache.org/img/wicket-7-bg-1.jpg x1, http://wicket.apache.org/img/wicket-7-bg-2.jpg x2\" sizes=\"s1,s2\"/>"));
+ Assert.assertTrue(lastResponseAsString.contains(
+ "<source wicket:id=\"externalSource\" srcset=\"http://wicket.apache.org/img/wicket-7-bg-1.jpg , http://wicket.apache.org/img/wicket-7-bg-2.jpg x2\" sizes=\"1\" media=\"(min-width: 650px)\"/>"));
+ }
+
+ @Test
+ public void testExternalImageModel()
+ {
+ tester.startPage(ExternalImageTestPage.class);
+ String lastResponseAsString = tester.getLastResponse().getDocument();
+ Component externalImage2Component = tester
+ .getComponentFromLastRenderedPage("externalImage2");
+ ExternalImage externalImage2 = (ExternalImage)externalImage2Component;
+ Object defaultModelObject = externalImage2.getDefaultModelObject();
+
+ TagTester tagById = tester.getTagById("externalImage2");
+ for (IModel<?> model : externalImage2.getSrcSet())
+ {
+ String attribute = tagById.getAttribute("srcset");
+ Assert.assertTrue(attribute.contains(model.getObject().toString()));
+ }
+
+ String attribute = tagById.getAttribute("src");
+ Assert.assertEquals(externalImage2.getDefaultModelObject(), attribute);
+ }
+}
http://git-wip-us.apache.org/repos/asf/wicket/blob/78802c9c/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.html
new file mode 100644
index 0000000..40d99d2
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.html
@@ -0,0 +1,13 @@
+<html xmlns:wicket="http://wicket.apache.org/">
+ <head>
+ <title>external image test page</title>
+ </head>
+ <body>
+ <img wicket:id="externalImage1" />
+ <img id="externalImage2" wicket:id="externalImage2" />
+ <picture wicket:id="externalPicture">
+ <source wicket:id="externalSource"/>
+ <img wicket:id="externalImage3"/>
+ </picture>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/wicket/blob/78802c9c/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.java
new file mode 100644
index 0000000..a75b54b
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.java
@@ -0,0 +1,52 @@
+/*
+ * 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.image;
+
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.model.Model;
+
+/**
+ * page to test the external components
+ *
+ * @author Tobias Soloschenko
+ *
+ */
+public class ExternalImageTestPage extends WebPage
+{
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Creates the external test page
+ */
+ public ExternalImageTestPage()
+ {
+ add(new ExternalImage("externalImage1", "http://wicket.apache.org/img/wicket-7-bg.jpg"));
+ ExternalImage externalImage2 = new ExternalImage("externalImage2", "http://wicket.apache.org/img/wicket-7-bg.jpg","http://wicket.apache.org/img/wicket-7-bg-1.jpg","http://wicket.apache.org/img/wicket-7-bg-2.jpg");
+ externalImage2.setSizes("s1","s2");
+ externalImage2.setXValues("x1","x2");
+ add(externalImage2);
+ Picture picture = new Picture("externalPicture");
+ ExternalSource externalSource = new ExternalSource("externalSource", Model.of("http://wicket.apache.org/img/wicket-7-bg-1.jpg"),Model.of("http://wicket.apache.org/img/wicket-7-bg-2.jpg"));
+ externalSource.setXValues("","x2");
+ externalSource.setSizes("1");
+ externalSource.setMedia("(min-width: 650px)");
+ picture.add(externalSource);
+ ExternalImage externalImage3 = new ExternalImage("externalImage3", "http://wicket.apache.org/img/wicket-7-bg.jpg","http://wicket.apache.org/img/wicket-7-bg-1.jpg","http://wicket.apache.org/img/wicket-7-bg-2.jpg");
+ picture.add(externalImage3);
+ add(picture);
+ }
+}
[2/7] wicket git commit: WICKET-6042 - Improvements
Posted by ts...@apache.org.
WICKET-6042 - Improvements
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/1ac89ee1
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/1ac89ee1
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/1ac89ee1
Branch: refs/heads/master
Commit: 1ac89ee1c8c305097e34c3733c41bb217d627e57
Parents: 78802c9
Author: Tobias Soloschenko <ts...@apache.org>
Authored: Tue Dec 1 20:25:28 2015 +0100
Committer: Tobias Soloschenko <ts...@apache.org>
Committed: Fri Dec 4 18:47:40 2015 +0100
----------------------------------------------------------------------
.../wicket/markup/html/image/ExternalImage.java | 47 ++++++++++++++------
.../markup/html/image/ExternalSource.java | 13 +++---
.../apache/wicket/markup/html/image/Image.java | 6 ++-
3 files changed, 44 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/1ac89ee1/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
index f3b6ae0..78de861 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
@@ -16,6 +16,7 @@
*/
package org.apache.wicket.markup.html.image;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -48,7 +49,7 @@ public class ExternalImage extends WebComponent
*/
private Cors crossOrigin = null;
- private IModel<?>[] srcSet;
+ private IModel<?>[] srcSetModels;
/**
* Creates an external image
@@ -60,7 +61,7 @@ public class ExternalImage extends WebComponent
* @param srcSet
* a list of URLs placed in the srcset attribute
*/
- public ExternalImage(String id, String src, String... srcSet)
+ public ExternalImage(String id, Serializable src, Serializable... srcSet)
{
this(id, src != null ? Model.of(src) : null, convertToModel(srcSet));
}
@@ -70,15 +71,15 @@ public class ExternalImage extends WebComponent
*
* @param id
* the component id
- * @param src
+ * @param srcModel
* the model source URL
* @param srcSetModels
* a model list of URLs placed in the srcset attribute
*/
- public ExternalImage(String id, IModel<?> src, IModel<?>... srcSetModels)
+ public ExternalImage(String id, IModel<?> srcModel, IModel<?>... srcSetModels)
{
- super(id, src);
- this.srcSet = srcSetModels;
+ super(id, srcModel);
+ this.srcSetModels = srcSetModels;
}
/**
@@ -88,7 +89,7 @@ public class ExternalImage extends WebComponent
* a variable argument of URLs to be converted to an array of models
* @return an array of models
*/
- private static IModel<?>[] convertToModel(String... srcSet)
+ private static IModel<?>[] convertToModel(Serializable... srcSet)
{
IModel<?>[] models = null;
if (srcSet != null)
@@ -96,7 +97,7 @@ public class ExternalImage extends WebComponent
models = new IModel<?>[srcSet.length];
int i = 0;
- for (String srcSetElement : srcSet)
+ for (Serializable srcSetElement : srcSet)
{
models[i] = Model.of(srcSetElement);
i++;
@@ -148,8 +149,10 @@ public class ExternalImage extends WebComponent
*/
protected void buildSrcAttribute(final ComponentTag tag, IModel<?> srcModel)
{
- // The first model is the one put into src attribute
- tag.put("src", srcModel.getObject().toString());
+ if (srcModel != null)
+ {
+ tag.put("src", srcModel.getObject().toString());
+ }
}
/**
@@ -219,7 +222,10 @@ public class ExternalImage extends WebComponent
{
xValues = new ArrayList<>();
}
- xValues.clear();
+ else
+ {
+ xValues.clear();
+ }
xValues.addAll(Arrays.asList(values));
}
@@ -233,7 +239,10 @@ public class ExternalImage extends WebComponent
{
this.sizes = new ArrayList<>();
}
- this.sizes.clear();
+ else
+ {
+ this.sizes.clear();
+ }
this.sizes.addAll(Arrays.asList(sizes));
}
@@ -268,7 +277,19 @@ public class ExternalImage extends WebComponent
*/
public List<IModel<?>> getSrcSet()
{
- return Arrays.asList(srcSet);
+ return Arrays.asList(srcSetModels);
}
+ /**
+ * Detaches the srcSetModels
+ */
+ @Override
+ protected void onDetach()
+ {
+ for (IModel<?> model : srcSetModels)
+ {
+ model.detach();
+ }
+ super.onDetach();
+ }
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/1ac89ee1/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalSource.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalSource.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalSource.java
index 637d69e..a2d184a 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalSource.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalSource.java
@@ -16,12 +16,11 @@
*/
package org.apache.wicket.markup.html.image;
-import java.util.Arrays;
+import java.io.Serializable;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.image.Image.Cors;
import org.apache.wicket.model.IModel;
-import org.apache.wicket.util.lang.Args;
/**
* A component which displays external images within a picture tag.
@@ -48,9 +47,9 @@ public class ExternalSource extends ExternalImage
* @param srcSet
* a list of URLs placed in the srcset attribute
*/
- public ExternalSource(String id, String... srcSet)
+ public ExternalSource(String id, Serializable... srcSet)
{
- super(id, null, Arrays.copyOfRange(srcSet, 1, srcSet.length));
+ super(id, null, srcSet);
}
/**
@@ -60,12 +59,12 @@ public class ExternalSource extends ExternalImage
* the component id
* @param src
* the model source URL
- * @param srcSet
+ * @param srcSetModels
* a model list of URLs placed in the srcset attribute
*/
- public ExternalSource(String id, IModel<?>... srcSet)
+ public ExternalSource(String id, IModel<?>... srcSetModels)
{
- super(id, null, srcSet);
+ super(id, null, srcSetModels);
}
@Override
http://git-wip-us.apache.org/repos/asf/wicket/blob/1ac89ee1/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java
index f96e66c..5a64395 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java
@@ -316,8 +316,9 @@ public class Image extends WebComponent implements IResourceListener
if (xValues == null)
{
xValues = new ArrayList<>();
+ }else{
+ xValues.clear();
}
- xValues.clear();
xValues.addAll(Arrays.asList(values));
}
@@ -330,8 +331,9 @@ public class Image extends WebComponent implements IResourceListener
if (this.sizes == null)
{
this.sizes = new ArrayList<>();
+ }else{
+ this.sizes.clear();
}
- this.sizes.clear();
this.sizes.addAll(Arrays.asList(sizes));
}
[6/7] wicket git commit: WICKET-6042 - src tag created with
String.valueOf
Posted by ts...@apache.org.
WICKET-6042 - src tag created with String.valueOf
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b174c21c
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b174c21c
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b174c21c
Branch: refs/heads/master
Commit: b174c21c42220d9ccb4a01579ee9b0723a121513
Parents: 4eacb2a
Author: Tobias Soloschenko <ts...@apache.org>
Authored: Fri Dec 4 09:46:37 2015 +0100
Committer: Tobias Soloschenko <ts...@apache.org>
Committed: Fri Dec 4 18:47:43 2015 +0100
----------------------------------------------------------------------
.../java/org/apache/wicket/markup/html/image/ExternalImage.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/b174c21c/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
index 407229e..d24fb1a 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
@@ -161,7 +161,7 @@ public class ExternalImage extends WebComponent
*/
protected void buildSrcAttribute(final ComponentTag tag, IModel<?> srcModel)
{
- tag.put("src", srcModel.getObject().toString());
+ tag.put("src", String.valueOf(srcModel.getObject()));
}
/**
[3/7] wicket git commit: WICKET-6042 - Constructor changes / typo
Posted by ts...@apache.org.
WICKET-6042 - Constructor changes / typo
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/a1b19493
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/a1b19493
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/a1b19493
Branch: refs/heads/master
Commit: a1b19493da671dce33f258de8021713fdc45234a
Parents: 93fe70d
Author: Tobias Soloschenko <ts...@apache.org>
Authored: Wed Dec 2 21:40:07 2015 +0100
Committer: Tobias Soloschenko <ts...@apache.org>
Committed: Fri Dec 4 18:47:41 2015 +0100
----------------------------------------------------------------------
.../wicket/markup/html/image/ExternalImage.java | 97 ++++++++++++--------
.../markup/html/image/ExternalSource.java | 28 +++++-
.../markup/html/image/ExternalImageTest.java | 3 +-
.../html/image/ExternalImageTestPage.java | 7 +-
4 files changed, 88 insertions(+), 47 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/a1b19493/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
index 832c711..407229e 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
@@ -19,6 +19,7 @@ package org.apache.wicket.markup.html.image;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
import org.apache.wicket.markup.ComponentTag;
@@ -28,9 +29,14 @@ import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
/**
- * A component to display external images. The src / srcset information are hold in models
+ * A component to display external images. The src / srcSet information are hold in models
+ *
+ * @see org.apache.wicket.markup.html.image.Image
*
* @author Tobias Soloschenko
+ * @author Sebastien Briquet
+ * @author Sven Meier
+ * @author Martin Grigorov
*
*/
public class ExternalImage extends WebComponent
@@ -49,7 +55,18 @@ public class ExternalImage extends WebComponent
*/
private Cors crossOrigin = null;
- private IModel<List<Serializable>> srcSetModels;
+ private IModel<List<Serializable>> srcSetModel;
+
+ /**
+ * Creates an external image
+ *
+ * @param id
+ * the component id
+ */
+ public ExternalImage(String id)
+ {
+ this(id, null, Model.ofList(Collections.<Serializable> emptyList()));
+ }
/**
* Creates an external image
@@ -61,7 +78,7 @@ public class ExternalImage extends WebComponent
*/
public ExternalImage(String id, Serializable src)
{
- this(id, src, (List<Serializable>)null);
+ this(id, Model.of(src), Model.ofList(Collections.<Serializable> emptyList()));
}
/**
@@ -72,7 +89,7 @@ public class ExternalImage extends WebComponent
* @param src
* the source URL
* @param srcSet
- * a list of URLs placed in the srcset attribute
+ * a list of URLs placed in the srcSet attribute
*/
public ExternalImage(String id, Serializable src, List<Serializable> srcSet)
{
@@ -86,12 +103,10 @@ public class ExternalImage extends WebComponent
* the component id
* @param srcModel
* the model source URL
- * @param srcSetModels
- * a model list of URLs placed in the srcset attribute
*/
public ExternalImage(String id, IModel<Serializable> srcModel)
{
- this(id, srcModel, (IModel<List<Serializable>>)null);
+ this(id, srcModel, Model.ofList(Collections.<Serializable> emptyList()));
}
/**
@@ -101,14 +116,14 @@ public class ExternalImage extends WebComponent
* the component id
* @param srcModel
* the model source URL
- * @param srcSetModels
- * a model list of URLs placed in the srcset attribute
+ * @param srcSetModel
+ * a model list of URLs placed in the srcSet attribute
*/
public ExternalImage(String id, IModel<Serializable> srcModel,
- IModel<List<Serializable>> srcSetModels)
+ IModel<List<Serializable>> srcSetModel)
{
super(id, srcModel);
- this.srcSetModels = srcSetModels;
+ this.srcSetModel = srcSetModel;
}
@Override
@@ -118,13 +133,13 @@ public class ExternalImage extends WebComponent
if ("source".equals(tag.getName()))
{
- buildSrcSetAttribute(tag, getSrcSet());
+ buildSrcSetAttribute(tag, getSrcSetModel());
}
else
{
checkComponentTag(tag, "img");
buildSrcAttribute(tag, getDefaultModel());
- buildSrcSetAttribute(tag, getSrcSet());
+ buildSrcSetAttribute(tag, getSrcSetModel());
}
buildSizesAttribute(tag);
@@ -146,10 +161,7 @@ public class ExternalImage extends WebComponent
*/
protected void buildSrcAttribute(final ComponentTag tag, IModel<?> srcModel)
{
- if (srcModel != null)
- {
- tag.put("src", srcModel.getObject().toString());
- }
+ tag.put("src", srcModel.getObject().toString());
}
/**
@@ -157,32 +169,28 @@ public class ExternalImage extends WebComponent
*
* @param tag
* the component tag
- * @param srcSetModels
+ * @param srcSetModel
* the models containing the src set URLs
*/
protected void buildSrcSetAttribute(final ComponentTag tag,
- IModel<List<Serializable>> srcSetModels)
+ IModel<List<Serializable>> srcSetModel)
{
int srcSetPosition = 0;
- List<Serializable> srcSetItems = srcSetModels.getObject();
- if (srcSetItems != null)
+ List<Serializable> srcSetItems = srcSetModel.getObject();
+ for (Serializable srcSet : srcSetItems)
{
- for (Serializable srcSetModel : srcSetItems)
- {
- String srcset = tag.getAttribute("srcset");
- String xValue = "";
+ String srcset = tag.getAttribute("srcset");
+ String xValue = "";
- // If there are xValues set process them in the applied order to the srcset
- // attribute.
- if (xValues != null)
- {
- xValue = xValues.size() > srcSetPosition && xValues.get(srcSetPosition) != null
- ? " " + xValues.get(srcSetPosition)
- : "";
- }
- tag.put("srcset", (srcset != null ? srcset + ", " : "") + srcSetModel + xValue);
- srcSetPosition++;
+ // If there are xValues set process them in the applied order to the srcset
+ // attribute.
+ if (xValues != null)
+ {
+ xValue = xValues.size() > srcSetPosition && xValues.get(srcSetPosition) != null
+ ? " " + xValues.get(srcSetPosition) : "";
}
+ tag.put("srcset", (srcset != null ? srcset + ", " : "") + srcSet + xValue);
+ srcSetPosition++;
}
}
@@ -278,9 +286,20 @@ public class ExternalImage extends WebComponent
*
* @return a list of models containing the src set values
*/
- public IModel<List<Serializable>> getSrcSet()
+ public IModel<List<Serializable>> getSrcSetModel()
+ {
+ return srcSetModel;
+ }
+
+ /**
+ * Sets the source set model
+ *
+ * @param srcSetModel
+ * the model of a list of src set entries
+ */
+ public void setSrcSetModel(IModel<List<Serializable>> srcSetModel)
{
- return srcSetModels;
+ this.srcSetModel = srcSetModel;
}
/**
@@ -289,9 +308,9 @@ public class ExternalImage extends WebComponent
@Override
protected void onDetach()
{
- if (srcSetModels != null)
+ if (srcSetModel != null)
{
- srcSetModels.detach();
+ srcSetModel.detach();
}
super.onDetach();
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/a1b19493/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalSource.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalSource.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalSource.java
index 3485f9d..a1bf59a 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalSource.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalSource.java
@@ -17,11 +17,13 @@
package org.apache.wicket.markup.html.image;
import java.io.Serializable;
+import java.util.Collections;
import java.util.List;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.image.Image.Cors;
import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
/**
* A component which displays external images within a picture tag.
@@ -29,6 +31,9 @@ import org.apache.wicket.model.IModel;
* @see org.apache.wicket.markup.html.image.Source
*
* @author Tobias Soloschenko
+ * @author Sebastien Briquet
+ * @author Sven Meier
+ * @author Martin Grigorov
*
*/
public class ExternalSource extends ExternalImage
@@ -48,9 +53,24 @@ public class ExternalSource extends ExternalImage
* @param srcSet
* a list of URLs placed in the srcset attribute
*/
+ public ExternalSource(String id)
+ {
+ super(id, null, Model.ofList(Collections.<Serializable> emptyList()));
+ }
+
+ /**
+ * Creates an external source
+ *
+ * @param id
+ * the component id
+ * @param src
+ * the source URL
+ * @param srcSet
+ * a list of URLs placed in the srcset attribute
+ */
public ExternalSource(String id, List<Serializable> srcSet)
{
- super(id, null, srcSet);
+ super(id, null, Model.ofList(srcSet));
}
/**
@@ -60,12 +80,12 @@ public class ExternalSource extends ExternalImage
* the component id
* @param src
* the model source URL
- * @param srcSetModels
+ * @param srcSetModel
* a model list of URLs placed in the srcset attribute
*/
- public ExternalSource(String id, IModel<List<Serializable>> srcSetModels)
+ public ExternalSource(String id, IModel<List<Serializable>> srcSetModel)
{
- super(id, null, srcSetModels);
+ super(id, null, srcSetModel);
}
@Override
http://git-wip-us.apache.org/repos/asf/wicket/blob/a1b19493/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java
index d520f7c..c761513 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java
@@ -40,6 +40,7 @@ public class ExternalImageTest extends WicketTestCase
{
tester.startPage(ExternalImageTestPage.class);
String lastResponseAsString = tester.getLastResponse().getDocument();
+ System.out.println(lastResponseAsString);
Assert.assertTrue(lastResponseAsString.contains(
"<img wicket:id=\"externalImage1\" src=\"http://wicket.apache.org/img/wicket-7-bg.jpg\"/>"));
Assert.assertTrue(lastResponseAsString.contains(
@@ -58,7 +59,7 @@ public class ExternalImageTest extends WicketTestCase
ExternalImage externalImage2 = (ExternalImage)externalImage2Component;
TagTester tagById = tester.getTagById("externalImage2");
- IModel<List<Serializable>> srcSet = externalImage2.getSrcSet();
+ IModel<List<Serializable>> srcSet = externalImage2.getSrcSetModel();
for (Serializable model :srcSet.getObject())
{
String attribute = tagById.getAttribute("srcset");
http://git-wip-us.apache.org/repos/asf/wicket/blob/a1b19493/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.java
index 753d487..0beeb1a 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.java
@@ -16,6 +16,7 @@
*/
package org.apache.wicket.markup.html.image;
+import java.io.Serializable;
import java.util.Arrays;
import org.apache.wicket.markup.html.WebPage;
@@ -39,14 +40,14 @@ public class ExternalImageTestPage extends WebPage
add(new ExternalImage("externalImage1", "http://wicket.apache.org/img/wicket-7-bg.jpg"));
ExternalImage externalImage2 = new ExternalImage("externalImage2",
"http://wicket.apache.org/img/wicket-7-bg.jpg",
- Arrays.asList("http://wicket.apache.org/img/wicket-7-bg-1.jpg",
+ Arrays.<Serializable>asList("http://wicket.apache.org/img/wicket-7-bg-1.jpg",
"http://wicket.apache.org/img/wicket-7-bg-2.jpg"));
externalImage2.setSizes("s1", "s2");
externalImage2.setXValues("x1", "x2");
add(externalImage2);
Picture picture = new Picture("externalPicture");
ExternalSource externalSource = new ExternalSource("externalSource",
- Model.ofList(Arrays.asList("http://wicket.apache.org/img/wicket-7-bg-1.jpg",
+ Model.ofList(Arrays.<Serializable>asList("http://wicket.apache.org/img/wicket-7-bg-1.jpg",
"http://wicket.apache.org/img/wicket-7-bg-2.jpg")));
externalSource.setXValues("", "x2");
externalSource.setSizes("1");
@@ -54,7 +55,7 @@ public class ExternalImageTestPage extends WebPage
picture.add(externalSource);
ExternalImage externalImage3 = new ExternalImage("externalImage3",
"http://wicket.apache.org/img/wicket-7-bg.jpg",
- Arrays.asList("http://wicket.apache.org/img/wicket-7-bg-1.jpg",
+ Arrays.<Serializable>asList("http://wicket.apache.org/img/wicket-7-bg-1.jpg",
"http://wicket.apache.org/img/wicket-7-bg-2.jpg"));
picture.add(externalImage3);
add(picture);
[4/7] wicket git commit: WICKET-6042 - List instead of Varargs
Posted by ts...@apache.org.
WICKET-6042 - List instead of Varargs
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/93fe70d0
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/93fe70d0
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/93fe70d0
Branch: refs/heads/master
Commit: 93fe70d08cf255d6673243ae02e36c01c360eaf7
Parents: 1ac89ee
Author: Tobias Soloschenko <ts...@apache.org>
Authored: Wed Dec 2 18:58:10 2015 +0100
Committer: Tobias Soloschenko <ts...@apache.org>
Committed: Fri Dec 4 18:47:41 2015 +0100
----------------------------------------------------------------------
.../wicket/markup/html/image/ExternalImage.java | 101 ++++++++++---------
.../markup/html/image/ExternalSource.java | 5 +-
.../markup/html/image/ExternalImageTest.java | 9 +-
.../html/image/ExternalImageTestPage.java | 22 ++--
4 files changed, 76 insertions(+), 61 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/93fe70d0/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
index 78de861..832c711 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
@@ -49,7 +49,20 @@ public class ExternalImage extends WebComponent
*/
private Cors crossOrigin = null;
- private IModel<?>[] srcSetModels;
+ private IModel<List<Serializable>> srcSetModels;
+
+ /**
+ * Creates an external image
+ *
+ * @param id
+ * the component id
+ * @param src
+ * the source URL
+ */
+ public ExternalImage(String id, Serializable src)
+ {
+ this(id, src, (List<Serializable>)null);
+ }
/**
* Creates an external image
@@ -61,9 +74,9 @@ public class ExternalImage extends WebComponent
* @param srcSet
* a list of URLs placed in the srcset attribute
*/
- public ExternalImage(String id, Serializable src, Serializable... srcSet)
+ public ExternalImage(String id, Serializable src, List<Serializable> srcSet)
{
- this(id, src != null ? Model.of(src) : null, convertToModel(srcSet));
+ this(id, Model.of(src), Model.ofList(srcSet));
}
/**
@@ -76,38 +89,26 @@ public class ExternalImage extends WebComponent
* @param srcSetModels
* a model list of URLs placed in the srcset attribute
*/
- public ExternalImage(String id, IModel<?> srcModel, IModel<?>... srcSetModels)
+ public ExternalImage(String id, IModel<Serializable> srcModel)
{
- super(id, srcModel);
- this.srcSetModels = srcSetModels;
+ this(id, srcModel, (IModel<List<Serializable>>)null);
}
/**
- * Converts a variable argument of Strings to an array of models
+ * Creates an external image
*
- * @param srcSet
- * a variable argument of URLs to be converted to an array of models
- * @return an array of models
+ * @param id
+ * the component id
+ * @param srcModel
+ * the model source URL
+ * @param srcSetModels
+ * a model list of URLs placed in the srcset attribute
*/
- private static IModel<?>[] convertToModel(Serializable... srcSet)
+ public ExternalImage(String id, IModel<Serializable> srcModel,
+ IModel<List<Serializable>> srcSetModels)
{
- IModel<?>[] models = null;
- if (srcSet != null)
- {
-
- models = new IModel<?>[srcSet.length];
- int i = 0;
- for (Serializable srcSetElement : srcSet)
- {
- models[i] = Model.of(srcSetElement);
- i++;
- }
- }
- else
- {
- models = new IModel<?>[0];
- }
- return models;
+ super(id, srcModel);
+ this.srcSetModels = srcSetModels;
}
@Override
@@ -121,13 +122,9 @@ public class ExternalImage extends WebComponent
}
else
{
- List<IModel<?>> srcSet = getSrcSet();
checkComponentTag(tag, "img");
buildSrcAttribute(tag, getDefaultModel());
- if (srcSet.size() > 1)
- {
- buildSrcSetAttribute(tag, srcSet);
- }
+ buildSrcSetAttribute(tag, getSrcSet());
}
buildSizesAttribute(tag);
@@ -163,23 +160,29 @@ public class ExternalImage extends WebComponent
* @param srcSetModels
* the models containing the src set URLs
*/
- protected void buildSrcSetAttribute(final ComponentTag tag, List<IModel<?>> srcSetModels)
+ protected void buildSrcSetAttribute(final ComponentTag tag,
+ IModel<List<Serializable>> srcSetModels)
{
int srcSetPosition = 0;
- for (IModel<?> srcSetModel : srcSetModels)
+ List<Serializable> srcSetItems = srcSetModels.getObject();
+ if (srcSetItems != null)
{
- String srcset = tag.getAttribute("srcset");
- String xValue = "";
-
- // If there are xValues set process them in the applied order to the srcset attribute.
- if (xValues != null)
+ for (Serializable srcSetModel : srcSetItems)
{
- xValue = xValues.size() > srcSetPosition && xValues.get(srcSetPosition) != null
- ? " " + xValues.get(srcSetPosition) : "";
+ String srcset = tag.getAttribute("srcset");
+ String xValue = "";
+
+ // If there are xValues set process them in the applied order to the srcset
+ // attribute.
+ if (xValues != null)
+ {
+ xValue = xValues.size() > srcSetPosition && xValues.get(srcSetPosition) != null
+ ? " " + xValues.get(srcSetPosition)
+ : "";
+ }
+ tag.put("srcset", (srcset != null ? srcset + ", " : "") + srcSetModel + xValue);
+ srcSetPosition++;
}
- tag.put("srcset",
- (srcset != null ? srcset + ", " : "") + srcSetModel.getObject() + xValue);
- srcSetPosition++;
}
}
@@ -275,9 +278,9 @@ public class ExternalImage extends WebComponent
*
* @return a list of models containing the src set values
*/
- public List<IModel<?>> getSrcSet()
+ public IModel<List<Serializable>> getSrcSet()
{
- return Arrays.asList(srcSetModels);
+ return srcSetModels;
}
/**
@@ -286,9 +289,9 @@ public class ExternalImage extends WebComponent
@Override
protected void onDetach()
{
- for (IModel<?> model : srcSetModels)
+ if (srcSetModels != null)
{
- model.detach();
+ srcSetModels.detach();
}
super.onDetach();
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/93fe70d0/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalSource.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalSource.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalSource.java
index a2d184a..3485f9d 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalSource.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalSource.java
@@ -17,6 +17,7 @@
package org.apache.wicket.markup.html.image;
import java.io.Serializable;
+import java.util.List;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.image.Image.Cors;
@@ -47,7 +48,7 @@ public class ExternalSource extends ExternalImage
* @param srcSet
* a list of URLs placed in the srcset attribute
*/
- public ExternalSource(String id, Serializable... srcSet)
+ public ExternalSource(String id, List<Serializable> srcSet)
{
super(id, null, srcSet);
}
@@ -62,7 +63,7 @@ public class ExternalSource extends ExternalImage
* @param srcSetModels
* a model list of URLs placed in the srcset attribute
*/
- public ExternalSource(String id, IModel<?>... srcSetModels)
+ public ExternalSource(String id, IModel<List<Serializable>> srcSetModels)
{
super(id, null, srcSetModels);
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/93fe70d0/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java
index fb4e072..d520f7c 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.wicket.markup.html.image;
+import java.io.Serializable;
import java.util.List;
import org.apache.wicket.Component;
@@ -51,17 +52,17 @@ public class ExternalImageTest extends WicketTestCase
public void testExternalImageModel()
{
tester.startPage(ExternalImageTestPage.class);
- String lastResponseAsString = tester.getLastResponse().getDocument();
+ tester.getLastResponse().getDocument();
Component externalImage2Component = tester
.getComponentFromLastRenderedPage("externalImage2");
ExternalImage externalImage2 = (ExternalImage)externalImage2Component;
- Object defaultModelObject = externalImage2.getDefaultModelObject();
TagTester tagById = tester.getTagById("externalImage2");
- for (IModel<?> model : externalImage2.getSrcSet())
+ IModel<List<Serializable>> srcSet = externalImage2.getSrcSet();
+ for (Serializable model :srcSet.getObject())
{
String attribute = tagById.getAttribute("srcset");
- Assert.assertTrue(attribute.contains(model.getObject().toString()));
+ Assert.assertTrue(attribute.contains(model.toString()));
}
String attribute = tagById.getAttribute("src");
http://git-wip-us.apache.org/repos/asf/wicket/blob/93fe70d0/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.java
index a75b54b..753d487 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.java
@@ -16,6 +16,8 @@
*/
package org.apache.wicket.markup.html.image;
+import java.util.Arrays;
+
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.model.Model;
@@ -35,17 +37,25 @@ public class ExternalImageTestPage extends WebPage
public ExternalImageTestPage()
{
add(new ExternalImage("externalImage1", "http://wicket.apache.org/img/wicket-7-bg.jpg"));
- ExternalImage externalImage2 = new ExternalImage("externalImage2", "http://wicket.apache.org/img/wicket-7-bg.jpg","http://wicket.apache.org/img/wicket-7-bg-1.jpg","http://wicket.apache.org/img/wicket-7-bg-2.jpg");
- externalImage2.setSizes("s1","s2");
- externalImage2.setXValues("x1","x2");
+ ExternalImage externalImage2 = new ExternalImage("externalImage2",
+ "http://wicket.apache.org/img/wicket-7-bg.jpg",
+ Arrays.asList("http://wicket.apache.org/img/wicket-7-bg-1.jpg",
+ "http://wicket.apache.org/img/wicket-7-bg-2.jpg"));
+ externalImage2.setSizes("s1", "s2");
+ externalImage2.setXValues("x1", "x2");
add(externalImage2);
Picture picture = new Picture("externalPicture");
- ExternalSource externalSource = new ExternalSource("externalSource", Model.of("http://wicket.apache.org/img/wicket-7-bg-1.jpg"),Model.of("http://wicket.apache.org/img/wicket-7-bg-2.jpg"));
- externalSource.setXValues("","x2");
+ ExternalSource externalSource = new ExternalSource("externalSource",
+ Model.ofList(Arrays.asList("http://wicket.apache.org/img/wicket-7-bg-1.jpg",
+ "http://wicket.apache.org/img/wicket-7-bg-2.jpg")));
+ externalSource.setXValues("", "x2");
externalSource.setSizes("1");
externalSource.setMedia("(min-width: 650px)");
picture.add(externalSource);
- ExternalImage externalImage3 = new ExternalImage("externalImage3", "http://wicket.apache.org/img/wicket-7-bg.jpg","http://wicket.apache.org/img/wicket-7-bg-1.jpg","http://wicket.apache.org/img/wicket-7-bg-2.jpg");
+ ExternalImage externalImage3 = new ExternalImage("externalImage3",
+ "http://wicket.apache.org/img/wicket-7-bg.jpg",
+ Arrays.asList("http://wicket.apache.org/img/wicket-7-bg-1.jpg",
+ "http://wicket.apache.org/img/wicket-7-bg-2.jpg"));
picture.add(externalImage3);
add(picture);
}
[5/7] wicket git commit: WICKET-6042 - Removed unwanted output
Posted by ts...@apache.org.
WICKET-6042 - Removed unwanted output
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/4eacb2ab
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/4eacb2ab
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/4eacb2ab
Branch: refs/heads/master
Commit: 4eacb2aba5f580fbbb851293834253ec7a8b3ce9
Parents: a1b1949
Author: Tobias Soloschenko <ts...@apache.org>
Authored: Wed Dec 2 21:48:06 2015 +0100
Committer: Tobias Soloschenko <ts...@apache.org>
Committed: Fri Dec 4 18:47:42 2015 +0100
----------------------------------------------------------------------
.../java/org/apache/wicket/markup/html/image/ExternalImageTest.java | 1 -
1 file changed, 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/4eacb2ab/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java
index c761513..062a04b 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java
@@ -40,7 +40,6 @@ public class ExternalImageTest extends WicketTestCase
{
tester.startPage(ExternalImageTestPage.class);
String lastResponseAsString = tester.getLastResponse().getDocument();
- System.out.println(lastResponseAsString);
Assert.assertTrue(lastResponseAsString.contains(
"<img wicket:id=\"externalImage1\" src=\"http://wicket.apache.org/img/wicket-7-bg.jpg\"/>"));
Assert.assertTrue(lastResponseAsString.contains(
[7/7] wicket git commit: WICKET-6042 - Additional test / remove
methods for xvalues / sizes
Posted by ts...@apache.org.
WICKET-6042 - Additional test / remove methods for xvalues / sizes
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/ee572d0e
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/ee572d0e
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/ee572d0e
Branch: refs/heads/master
Commit: ee572d0ee597a357f10735cb2141b01ec19d19a4
Parents: b174c21
Author: Tobias Soloschenko <ts...@sapient.com>
Authored: Fri Dec 4 15:07:01 2015 +0100
Committer: Tobias Soloschenko <ts...@apache.org>
Committed: Fri Dec 4 18:47:43 2015 +0100
----------------------------------------------------------------------
.../wicket/markup/html/image/ExternalImage.java | 22 +++++++++
.../apache/wicket/markup/html/image/Image.java | 26 +++++++++-
.../markup/html/image/ExternalImageTest.java | 2 +
.../html/image/ExternalImageTestPage.html | 1 +
.../html/image/ExternalImageTestPage.java | 50 ++++++++++++++++++--
5 files changed, 95 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/ee572d0e/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
index d24fb1a..2a30418 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/ExternalImage.java
@@ -241,6 +241,17 @@ public class ExternalImage extends WebComponent
}
/**
+ * Removes all sizes values. The corresponding tag will not be rendered anymore.
+ */
+ public void removeSizes()
+ {
+ if (sizes != null)
+ {
+ sizes.clear();
+ }
+ }
+
+ /**
* @param sizes
* the sizes to be used in the size
*/
@@ -258,6 +269,17 @@ public class ExternalImage extends WebComponent
}
/**
+ * Removes all x values from the image src set.
+ */
+ public void removeXValues()
+ {
+ if (xValues != null)
+ {
+ xValues.clear();
+ }
+ }
+
+ /**
* Gets the cross origin settings
*
* @see {@link org.apache.wicket.markup.html.image.Image#setCrossOrigin(Cors)}
http://git-wip-us.apache.org/repos/asf/wicket/blob/ee572d0e/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java
index 5a64395..19f4f7a 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java
@@ -316,13 +316,24 @@ public class Image extends WebComponent implements IResourceListener
if (xValues == null)
{
xValues = new ArrayList<>();
- }else{
+ }else{
xValues.clear();
}
xValues.addAll(Arrays.asList(values));
}
/**
+ * Removes all x values from the image src set
+ */
+ public void removeXValues()
+ {
+ if (xValues != null)
+ {
+ xValues.clear();
+ }
+ }
+
+ /**
* @param sizes
* the sizes to be used in the size
*/
@@ -331,13 +342,24 @@ public class Image extends WebComponent implements IResourceListener
if (this.sizes == null)
{
this.sizes = new ArrayList<>();
- }else{
+ }else{
this.sizes.clear();
}
this.sizes.addAll(Arrays.asList(sizes));
}
/**
+ * Removes all sizes values. The corresponding attribute will not be rendered anymore.
+ */
+ public void removeSizes()
+ {
+ if (sizes != null)
+ {
+ sizes.clear();
+ }
+ }
+
+ /**
* @see org.apache.wicket.Component#setDefaultModel(org.apache.wicket.model.IModel)
*/
@Override
http://git-wip-us.apache.org/repos/asf/wicket/blob/ee572d0e/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java
index 062a04b..6c285ed 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTest.java
@@ -46,6 +46,8 @@ public class ExternalImageTest extends WicketTestCase
"<img id=\"externalImage2\" wicket:id=\"externalImage2\" src=\"http://wicket.apache.org/img/wicket-7-bg.jpg\" srcset=\"http://wicket.apache.org/img/wicket-7-bg-1.jpg x1, http://wicket.apache.org/img/wicket-7-bg-2.jpg x2\" sizes=\"s1,s2\"/>"));
Assert.assertTrue(lastResponseAsString.contains(
"<source wicket:id=\"externalSource\" srcset=\"http://wicket.apache.org/img/wicket-7-bg-1.jpg , http://wicket.apache.org/img/wicket-7-bg-2.jpg x2\" sizes=\"1\" media=\"(min-width: 650px)\"/>"));
+ Assert.assertTrue(lastResponseAsString.contains(
+ "<img wicket:id=\"compoundImage\" src=\"http://www.google.de/test.jpg\"/>"));
}
@Test
http://git-wip-us.apache.org/repos/asf/wicket/blob/ee572d0e/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.html
index 40d99d2..498daed 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.html
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.html
@@ -9,5 +9,6 @@
<source wicket:id="externalSource"/>
<img wicket:id="externalImage3"/>
</picture>
+ <img wicket:id="compoundImage" />
</body>
</html>
http://git-wip-us.apache.org/repos/asf/wicket/blob/ee572d0e/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.java
index 0beeb1a..dd0ce95 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/image/ExternalImageTestPage.java
@@ -20,6 +20,7 @@ import java.io.Serializable;
import java.util.Arrays;
import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.Model;
/**
@@ -40,24 +41,65 @@ public class ExternalImageTestPage extends WebPage
add(new ExternalImage("externalImage1", "http://wicket.apache.org/img/wicket-7-bg.jpg"));
ExternalImage externalImage2 = new ExternalImage("externalImage2",
"http://wicket.apache.org/img/wicket-7-bg.jpg",
- Arrays.<Serializable>asList("http://wicket.apache.org/img/wicket-7-bg-1.jpg",
+ Arrays.<Serializable> asList("http://wicket.apache.org/img/wicket-7-bg-1.jpg",
"http://wicket.apache.org/img/wicket-7-bg-2.jpg"));
externalImage2.setSizes("s1", "s2");
externalImage2.setXValues("x1", "x2");
add(externalImage2);
Picture picture = new Picture("externalPicture");
ExternalSource externalSource = new ExternalSource("externalSource",
- Model.ofList(Arrays.<Serializable>asList("http://wicket.apache.org/img/wicket-7-bg-1.jpg",
- "http://wicket.apache.org/img/wicket-7-bg-2.jpg")));
+ Model.ofList(
+ Arrays.<Serializable> asList("http://wicket.apache.org/img/wicket-7-bg-1.jpg",
+ "http://wicket.apache.org/img/wicket-7-bg-2.jpg")));
externalSource.setXValues("", "x2");
externalSource.setSizes("1");
externalSource.setMedia("(min-width: 650px)");
picture.add(externalSource);
ExternalImage externalImage3 = new ExternalImage("externalImage3",
"http://wicket.apache.org/img/wicket-7-bg.jpg",
- Arrays.<Serializable>asList("http://wicket.apache.org/img/wicket-7-bg-1.jpg",
+ Arrays.<Serializable> asList("http://wicket.apache.org/img/wicket-7-bg-1.jpg",
"http://wicket.apache.org/img/wicket-7-bg-2.jpg"));
picture.add(externalImage3);
add(picture);
+
+ ImageSrc imageSrc = new ImageSrc();
+ imageSrc.setUrl("http://www.google.de/test.jpg");
+ CompoundPropertyModel<ImageSrc> compoundPropertyModel = new CompoundPropertyModel<ImageSrc>(imageSrc);
+ add(new ExternalImage("compoundImage",compoundPropertyModel.bind("url")));
+ }
+
+ /**
+ * Model object for url
+ *
+ * @author Tobias Soloschenko
+ */
+ private class ImageSrc implements Serializable
+ {
+
+ private static final long serialVersionUID = 1L;
+
+ private String url;
+
+ /**
+ * Gets the url
+ *
+ * @return the url
+ */
+ @SuppressWarnings("unused")
+ public String getUrl()
+ {
+ return url;
+ }
+
+ /**
+ * Sets the url
+ *
+ * @param url
+ * the url to be used
+ */
+ public void setUrl(String url)
+ {
+ this.url = url;
+ }
}
}