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;
}
/**