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


Reply via email to