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

[2/7] wicket git commit: WICKET-6042 - Improvements

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