You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2017/04/03 16:06:00 UTC

[1/2] wicket git commit: WICKET-6347 renderer might be null

Repository: wicket
Updated Branches:
  refs/heads/master abf1ae634 -> 44a20c5df


WICKET-6347 renderer might be null

if #newEditor() doesn't create AbstractChoice, the renderer might actually be null


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

Branch: refs/heads/master
Commit: 44a20c5df85e636a49f62c87be7377b44e5008ee
Parents: 775c40c
Author: Sven Meier <sv...@apache.org>
Authored: Mon Mar 27 18:38:00 2017 +0200
Committer: Sven Meier <sv...@apache.org>
Committed: Mon Apr 3 17:57:08 2017 +0200

----------------------------------------------------------------------
 .../extensions/ajax/markup/html/AjaxEditableChoiceLabel.java  | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/44a20c5d/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java
index 221a42f..5dfa693 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java
@@ -325,8 +325,11 @@ public class AjaxEditableChoiceLabel<T> extends AjaxEditableLabel<T>
 			choices.detach();
 		}
 		
-		renderer.detach();
+		if (renderer != null)
+		{
+			renderer.detach();
+		}
 		
 		super.onDetach();
 	}
-}
+}
\ No newline at end of file


[2/2] wicket git commit: WICKET-6347 added #detach() to all renderers

Posted by sv...@apache.org.
WICKET-6347 added #detach() to all renderers

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

Branch: refs/heads/master
Commit: 775c40c77226517636ba3905dff8b4cc7dd86e60
Parents: abf1ae6
Author: Sven Meier <sv...@apache.org>
Authored: Mon Mar 27 17:27:20 2017 +0200
Committer: Sven Meier <sv...@apache.org>
Committed: Mon Apr 3 17:57:08 2017 +0200

----------------------------------------------------------------------
 .../wicket/markup/html/form/AbstractChoice.java      |  8 ++++++++
 .../wicket/markup/html/form/IChoiceRenderer.java     | 15 ++++++++++++---
 .../ajax/markup/html/AjaxEditableChoiceLabel.java    |  3 +++
 .../html/autocomplete/AutoCompleteBehavior.java      |  7 +++++++
 .../html/autocomplete/AutoCompleteTextField.java     |  8 ++++++++
 .../html/autocomplete/IAutoCompleteRenderer.java     | 11 +++++++++--
 .../extensions/markup/html/form/palette/Palette.java |  2 ++
 .../markup/html/form/select/IOptionRenderer.java     | 12 ++++++++++--
 .../markup/html/form/select/SelectOptions.java       |  8 ++++++++
 9 files changed, 67 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/775c40c7/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java
index 523116e..fd1cacf 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AbstractChoice.java
@@ -501,4 +501,12 @@ public abstract class AbstractChoice<T, E> extends FormComponent<T>
 			"This class does not support type-conversion because it is performed "
 				+ "exclusively by the IChoiceRenderer assigned to this component");
 	}
+	
+	@Override
+	protected void onDetach()
+	{
+		renderer.detach();
+		
+		super.onDetach();
+	};
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/775c40c7/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IChoiceRenderer.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IChoiceRenderer.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IChoiceRenderer.java
index c8345d4..5fcc14e 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IChoiceRenderer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/IChoiceRenderer.java
@@ -18,8 +18,8 @@ package org.apache.wicket.markup.html.form;
 
 import java.util.List;
 
+import org.apache.wicket.model.IDetachable;
 import org.apache.wicket.model.IModel;
-import org.apache.wicket.util.io.IClusterable;
 
 /**
  * Renders one choice. Separates the 'id' values used for internal representation from 'display
@@ -30,7 +30,7 @@ import org.apache.wicket.util.io.IClusterable;
  * @param <T>
  *            The model object type
  */
-public interface IChoiceRenderer<T> extends IClusterable
+public interface IChoiceRenderer<T> extends IDetachable
 {
 	/**
 	 * Get the value for displaying to an end user.
@@ -70,4 +70,13 @@ public interface IChoiceRenderer<T> extends IClusterable
 	 * @return A choice from the list that has this {@code id}
 	 */
 	T getObject(String id, IModel<? extends List<? extends T>> choices);
-}
+
+	/**
+	 * Override when needed.
+	 */
+	@Override
+	default void detach()
+	{
+	}
+	
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/775c40c7/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java
index 2afe6cf..221a42f 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java
@@ -324,6 +324,9 @@ public class AjaxEditableChoiceLabel<T> extends AjaxEditableLabel<T>
 		{
 			choices.detach();
 		}
+		
+		renderer.detach();
+		
 		super.onDetach();
 	}
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/775c40c7/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteBehavior.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteBehavior.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteBehavior.java
index 02472ac..5f5453a 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteBehavior.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteBehavior.java
@@ -19,6 +19,7 @@ package org.apache.wicket.extensions.ajax.markup.html.autocomplete;
 import java.util.Iterator;
 
 import org.apache.wicket.Application;
+import org.apache.wicket.Component;
 import org.apache.wicket.request.IRequestCycle;
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.cycle.RequestCycle;
@@ -129,4 +130,10 @@ public abstract class AutoCompleteBehavior<T> extends AbstractAutoCompleteBehavi
 	 * @return iterator over all possible choice objects
 	 */
 	protected abstract Iterator<T> getChoices(String input);
+
+	@Override
+	public void detach(Component component)
+	{
+		renderer.detach();
+	}
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/775c40c7/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteTextField.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteTextField.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteTextField.java
index 79b86ea..70536e4 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteTextField.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AutoCompleteTextField.java
@@ -307,4 +307,12 @@ public abstract class AutoCompleteTextField<T> extends TextField<T>
 	{
 		return renderer;
 	}
+	
+	@Override
+	protected void onDetach()
+	{
+		renderer.detach();
+		
+		super.onDetach();
+	}
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/775c40c7/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/IAutoCompleteRenderer.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/IAutoCompleteRenderer.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/IAutoCompleteRenderer.java
index c2d0a5f..55a0d6b 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/IAutoCompleteRenderer.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/IAutoCompleteRenderer.java
@@ -16,8 +16,8 @@
  */
 package org.apache.wicket.extensions.ajax.markup.html.autocomplete;
 
+import org.apache.wicket.model.IDetachable;
 import org.apache.wicket.request.Response;
-import org.apache.wicket.util.io.IClusterable;
 
 /**
  * A renderer used to generate html output for the {@link AutoCompleteBehavior}.
@@ -60,7 +60,7 @@ import org.apache.wicket.util.io.IClusterable;
  * @author Janne Hietam&auml;ki (jannehietamaki)
  * 
  */
-public interface IAutoCompleteRenderer<T> extends IClusterable
+public interface IAutoCompleteRenderer<T> extends IDetachable
 {
 	/**
 	 * Render the html fragment for the given completion object. Usually the html is written out by
@@ -94,4 +94,11 @@ public interface IAutoCompleteRenderer<T> extends IClusterable
 	 */
 	void renderFooter(Response response, int count);
 
+	/**
+	 * Override when needed.
+	 */
+	@Override
+	default void detach()
+	{
+	}
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/775c40c7/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/Palette.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/Palette.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/Palette.java
index 5f8c5f5..93432f9 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/Palette.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/palette/Palette.java
@@ -671,6 +671,8 @@ public class Palette<T> extends FormComponentPanel<Collection<T>>
 		// an alternative might be to attach it to one of the subcomponents
 		choicesModel.detach();
 
+		choiceRenderer.detach();
+
 		super.onDetach();
 	}
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/775c40c7/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/IOptionRenderer.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/IOptionRenderer.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/IOptionRenderer.java
index e641c57..1854a19 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/IOptionRenderer.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/IOptionRenderer.java
@@ -16,8 +16,8 @@
  */
 package org.apache.wicket.extensions.markup.html.form.select;
 
+import org.apache.wicket.model.IDetachable;
 import org.apache.wicket.model.IModel;
-import org.apache.wicket.util.io.IClusterable;
 
 /**
  * @param <T>
@@ -25,7 +25,7 @@ import org.apache.wicket.util.io.IClusterable;
  * @author Igor Vaynberg (ivaynberg)
  * 
  */
-public interface IOptionRenderer<T> extends IClusterable
+public interface IOptionRenderer<T> extends IDetachable
 {
 	/**
 	 * Get the value for displaying to the user.
@@ -45,4 +45,12 @@ public interface IOptionRenderer<T> extends IClusterable
 	 * @return model that will contain the value object
 	 */
 	IModel<T> getModel(T value);
+
+	/**
+	 * Override when needed.
+	 */
+	@Override
+	default void detach()
+	{
+	}
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/775c40c7/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOptions.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOptions.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOptions.java
index e0d338e..fdf22c1 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOptions.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOptions.java
@@ -185,4 +185,12 @@ public class SelectOptions<T> extends RepeatingView
 			tag.setType(TagType.OPEN);
 		}
 	}
+	
+	@Override
+	protected void onDetach()
+	{
+		renderer.detach();
+		
+		super.onDetach();
+	}
 }