You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jd...@apache.org on 2011/01/21 20:16:15 UTC

svn commit: r1061973 - in /wicket/trunk: wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/ wicket-util/src/main/java/org/apache/wicket/util/lang/

Author: jdonnerstag
Date: Fri Jan 21 19:16:14 2011
New Revision: 1061973

URL: http://svn.apache.org/viewvc?rev=1061973&view=rev
Log:
fixed ITab.getPanel() should be able to return Panel or Fragment; not just Panel
Issue: WICKET-3359

Modified:
    wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/ITab.java
    wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/PanelCachingTab.java
    wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/TabbedPanel.java
    wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/lang/Args.java

Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/ITab.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/ITab.java?rev=1061973&r1=1061972&r2=1061973&view=diff
==============================================================================
--- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/ITab.java (original)
+++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/ITab.java Fri Jan 21 19:16:14 2011
@@ -17,7 +17,7 @@
 package org.apache.wicket.extensions.markup.html.tabs;
 
 import org.apache.wicket.IClusterable;
-import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.model.IModel;
 
 /**
@@ -38,9 +38,10 @@ public interface ITab extends IClusterab
 	/**
 	 * @param containerId
 	 *            returned panel MUST have this id
-	 * @return a container object that will be placed as the content of the tab
+	 * @return a container object (e.g. Panel or Fragment) that will be placed as the content of the
+	 *         tab
 	 */
-	Panel getPanel(final String containerId);
+	WebMarkupContainer getPanel(final String containerId);
 
 	/**
 	 * Returns whether this tab should be visible

Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/PanelCachingTab.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/PanelCachingTab.java?rev=1061973&r1=1061972&r2=1061973&view=diff
==============================================================================
--- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/PanelCachingTab.java (original)
+++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/PanelCachingTab.java Fri Jan 21 19:16:14 2011
@@ -16,7 +16,7 @@
  */
 package org.apache.wicket.extensions.markup.html.tabs;
 
-import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.model.IModel;
 
 /**
@@ -31,7 +31,8 @@ public class PanelCachingTab implements 
 {
 	private static final long serialVersionUID = 1L;
 
-	private Panel panel;
+	// Might Panel or Fragment or ...
+	private WebMarkupContainer panel;
 
 	private final ITab delegate;
 
@@ -57,7 +58,7 @@ public class PanelCachingTab implements 
 	/**
 	 * {@inheritDoc}
 	 */
-	public Panel getPanel(final String panelId)
+	public WebMarkupContainer getPanel(final String panelId)
 	{
 		if (panel == null)
 		{

Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/TabbedPanel.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/TabbedPanel.java?rev=1061973&r1=1061972&r2=1061973&view=diff
==============================================================================
--- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/TabbedPanel.java (original)
+++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/TabbedPanel.java Fri Jan 21 19:16:14 2011
@@ -30,6 +30,7 @@ import org.apache.wicket.markup.html.pan
 import org.apache.wicket.model.AbstractReadOnlyModel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
+import org.apache.wicket.util.lang.Args;
 
 
 /**
@@ -67,7 +68,6 @@ import org.apache.wicket.model.Model;
  * @see org.apache.wicket.extensions.markup.html.tabs.ITab
  * 
  * @author Igor Vaynberg (ivaynberg at apache dot org)
- * 
  */
 public class TabbedPanel extends Panel
 {
@@ -88,16 +88,11 @@ public class TabbedPanel extends Panel
 	 * @param tabs
 	 *            list of ITab objects used to represent tabs
 	 */
-	public TabbedPanel(String id, List<? extends ITab> tabs)
+	public TabbedPanel(final String id, final List<? extends ITab> tabs)
 	{
 		super(id, new Model<Integer>(-1));
 
-		if (tabs == null)
-		{
-			throw new IllegalArgumentException("argument [tabs] cannot be null");
-		}
-
-		this.tabs = tabs;
+		this.tabs = Args.notNull(tabs, "tabs");
 
 		final IModel<Integer> tabCount = new AbstractReadOnlyModel<Integer>()
 		{
@@ -119,10 +114,10 @@ public class TabbedPanel extends Panel
 			private static final long serialVersionUID = 1L;
 
 			@Override
-			protected void populateItem(LoopItem item)
+			protected void populateItem(final LoopItem item)
 			{
 				final int index = item.getIndex();
-				final ITab tab = (TabbedPanel.this.tabs.get(index));
+				final ITab tab = TabbedPanel.this.tabs.get(index);
 
 				final WebMarkupContainer titleLink = newLink("link", index);
 
@@ -146,14 +141,14 @@ public class TabbedPanel extends Panel
 	 *            container id
 	 * @return container
 	 */
-	protected WebMarkupContainer newTabsContainer(String id)
+	protected WebMarkupContainer newTabsContainer(final String id)
 	{
 		return new WebMarkupContainer(id)
 		{
 			private static final long serialVersionUID = 1L;
 
 			@Override
-			protected void onComponentTag(ComponentTag tag)
+			protected void onComponentTag(final ComponentTag tag)
 			{
 				super.onComponentTag(tag);
 				tag.put("class", getTabContainerCssClass());
@@ -204,7 +199,7 @@ public class TabbedPanel extends Panel
 	}
 
 	/**
-	 * @see org.apache.wicket.Component#onBeforeRender()
+	 * {@inheritDoc}
 	 */
 	@Override
 	protected void onBeforeRender()
@@ -331,11 +326,9 @@ public class TabbedPanel extends Panel
 	 * 
 	 * @param index
 	 *            index of the tab to select
-	 * 
 	 * @return this for chaining
-	 * 
 	 */
-	public TabbedPanel setSelectedTab(int index)
+	public TabbedPanel setSelectedTab(final int index)
 	{
 		if (index < 0 || (index >= tabs.size() && index > 0))
 		{
@@ -360,7 +353,6 @@ public class TabbedPanel extends Panel
 			{
 				throw new WicketRuntimeException("ITab.getPanel() returned null. TabbedPanel [" +
 					getPath() + "] ITab index [" + index + "]");
-
 			}
 		}
 
@@ -386,6 +378,11 @@ public class TabbedPanel extends Panel
 		return (Integer)getDefaultModelObject();
 	}
 
+	/**
+	 * 
+	 * @param tabIndex
+	 * @return visible
+	 */
 	private boolean isTabVisible(int tabIndex)
 	{
 		if (tabsVisibilityCache == null)

Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/lang/Args.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/lang/Args.java?rev=1061973&r1=1061972&r2=1061973&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/lang/Args.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/lang/Args.java Fri Jan 21 19:16:14 2011
@@ -26,16 +26,19 @@ public class Args
 	/**
 	 * Checks argument is not null
 	 * 
+	 * @param <C>
 	 * @param argument
 	 * @param name
+	 * @return The 'argument' parameter
 	 * @throws IllegalargumentException
 	 */
-	public static void notNull(final Object argument, final String name)
+	public static <C> C notNull(final C argument, final String name)
 	{
 		if (argument == null)
 		{
 			throw new IllegalArgumentException("Argument '" + name + "' may not be null.");
 		}
+		return argument;
 	}
 
 	/**
@@ -43,15 +46,17 @@ public class Args
 	 * 
 	 * @param argument
 	 * @param name
+	 * @return The 'argument' parameter
 	 * @throws IllegalargumentException
 	 */
-	public static void notEmpty(final String argument, final String name)
+	public static String notEmpty(final String argument, final String name)
 	{
 		if (Strings.isEmpty(argument))
 		{
 			throw new IllegalArgumentException("Argument '" + name +
 				"' may not be null or empty string.");
 		}
+		return argument;
 	}
 
 	/**