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:45 UTC

[4/7] wicket git commit: WICKET-6042 - List instead of Varargs

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);
 	}