You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2011/01/23 12:30:23 UTC
svn commit: r1062394 - in /wicket/trunk:
wicket-core/src/main/java/org/apache/wicket/markup/html/link/
wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/
Author: mgrigorov
Date: Sun Jan 23 11:30:23 2011
New Revision: 1062394
URL: http://svn.apache.org/viewvc?rev=1062394&view=rev
Log:
WICKET-3338 Please provide a LabelLink or something similar
Remove the constructor parameter for label (body).
Now all Link impls can call #setBodyLabel(IModel) if they want to set the link's body.
Add an example.
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/link/AbstractLink.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/link/ExternalLink.java
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/Home.html
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/Home.java
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/link/AbstractLink.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/link/AbstractLink.java?rev=1062394&r1=1062393&r2=1062394&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/link/AbstractLink.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/link/AbstractLink.java Sun Jan 23 11:30:23 2011
@@ -32,7 +32,7 @@ public abstract class AbstractLink exten
private static final long serialVersionUID = 1L;
/** this link's label/body. */
- private final IModel<?> label;
+ private IModel<?> bodyModel;
/**
* Construct.
@@ -54,22 +54,7 @@ public abstract class AbstractLink exten
*/
public AbstractLink(String id, IModel<?> model)
{
- this(id, model, null);
- }
-
- /**
- * Construct.
- *
- * @param id
- * the component id
- * @param model
- * the link's model
- * @param labelModel
- */
- public AbstractLink(String id, IModel<?> model, final IModel<?> labelModel)
- {
super(id, model);
- label = wrap(labelModel);
}
/**
@@ -185,10 +170,10 @@ public abstract class AbstractLink exten
getResponse().write(getBeforeDisabledLink());
}
- if ((label != null) && (label.getObject() != null))
+ if ((bodyModel != null) && (bodyModel.getObject() != null))
{
replaceComponentTagBody(markupStream, openTag,
- getDefaultModelObjectAsString(label.getObject()));
+ getDefaultModelObjectAsString(bodyModel.getObject()));
}
else
{
@@ -233,10 +218,22 @@ public abstract class AbstractLink exten
}
/**
- * @return the link's label/body
+ * @return the link's body model
*/
- public IModel<?> getLabel()
+ public IModel<?> getBodyModel()
{
- return label;
+ return bodyModel;
+ }
+
+ /**
+ * Sets the link's body model
+ *
+ * @param bodyModel
+ * @return <code>this</code> for method chaining
+ */
+ public AbstractLink setBodyModel(final IModel<?> bodyModel)
+ {
+ this.bodyModel = bodyModel;
+ return this;
}
}
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/link/ExternalLink.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/link/ExternalLink.java?rev=1062394&r1=1062393&r2=1062394&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/link/ExternalLink.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/link/ExternalLink.java Sun Jan 23 11:30:23 2011
@@ -52,9 +52,10 @@ public class ExternalLink extends Abstra
*/
public ExternalLink(final String id, final String href, final String label)
{
- super(id, null, Model.of(label));
+ super(id);
setDefaultModel(href != null ? new Model<String>(href) : null);
+ setBodyModel(Model.of(label));
}
/**
@@ -67,37 +68,38 @@ public class ExternalLink extends Abstra
*/
public ExternalLink(final String id, final String href)
{
- this(id, href, null);
+ this(id, Model.of(href));
}
/**
* Constructor.
*
* @param id
- * See Component
+ * The name of this component
* @param href
* the href attribute to set
- * @param label
- * the label (body)
*/
- public ExternalLink(final String id, final IModel<String> href, final IModel<?> label)
+ public ExternalLink(final String id, final IModel<String> href)
{
- super(id, null, label);
-
- setDefaultModel(wrap(href));
+ this(id, href, null);
}
/**
* Constructor.
*
* @param id
- * The name of this component
+ * See Component
* @param href
* the href attribute to set
+ * @param label
+ * the label (body)
*/
- public ExternalLink(final String id, final IModel<String> href)
+ public ExternalLink(final String id, final IModel<String> href, final IModel<?> label)
{
- this(id, href, null);
+ super(id);
+
+ setDefaultModel(wrap(href));
+ setBodyModel(wrap(label));
}
/**
@@ -212,4 +214,14 @@ public class ExternalLink extends Abstra
this.contextRelative = contextRelative;
return this;
}
+
+ /**
+ * @deprecated use {@link #getBodyModel()} instead
+ * @return the model used for the link's body
+ */
+ @Deprecated
+ public IModel<?> getLabel()
+ {
+ return getBodyModel();
+ }
}
\ No newline at end of file
Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/Home.html
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/Home.html?rev=1062394&r1=1062393&r2=1062394&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/Home.html (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/Home.html Sun Jan 23 11:30:23 2011
@@ -45,6 +45,8 @@
<input wicket:id="redirectUrl" type="text" size="50" /><input type="submit" value="go"/>
</form>
</p><p>
+ <a wicket:id="linkWithLabel">[will be set in .java]</a>
+ </p><p>
<div wicket:id="anchorLabel">[label for anchor]</div>
</p><p>
<div id="anotherAnchor">This is another div that serves as an anchor</div>
Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/Home.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/Home.java?rev=1062394&r1=1062393&r2=1062394&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/Home.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/Home.java Sun Jan 23 11:30:23 2011
@@ -32,6 +32,7 @@ import org.apache.wicket.markup.html.pag
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import org.apache.wicket.markup.parser.filter.RelativePathPrefixHandler;
import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.request.resource.PackageResourceReference;
import org.apache.wicket.request.resource.SharedResourceReference;
@@ -117,7 +118,8 @@ public class Home extends WicketExampleP
add(new ClientSideImageMap("imageMap", imageForMap).addRectangleArea(
new BookmarkablePageLink<Page1>("page1", Page1.class), 0, 0, 100, 100)
.addCircleArea(new BookmarkablePageLink<Page2>("page2", Page2.class), 160, 50, 35)
- .addPolygonArea(new BookmarkablePageLink<Page3>("page3", Page3.class), 212, 79, 241, 4, 279, 54, 212, 79)
+ .addPolygonArea(new BookmarkablePageLink<Page3>("page3", Page3.class), 212, 79, 241, 4,
+ 279, 54, 212, 79)
.add(RelativePathPrefixHandler.RELATIVE_PATH_BEHAVIOR));
// Popup example
@@ -165,6 +167,17 @@ public class Home extends WicketExampleP
"this label is here to function as an anchor for a link").setOutputMarkupId(true);
add(anchorLabel);
linkToAnchor.setAnchor(anchorLabel);
+
+ Link<Void> linkWithLabel = new Link<Void>("linkWithLabel")
+ {
+
+ @Override
+ public void onClick()
+ {
+ }
+ };
+ linkWithLabel.setBodyModel(Model.of("A link that provides its body with Link.setBodyLabel(someModel)"));
+ add(linkWithLabel);
}
/**
Re: svn commit: r1062394 - in /wicket/trunk: wicket-core/src/main/java/org/apache/wicket/markup/html/link/
wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/
Posted by Martin Grigorov <mg...@apache.org>.
Improved with r1062672.
Thanks!
On Mon, Jan 24, 2011 at 6:09 AM, Igor Vaynberg <ig...@gmail.com>wrote:
> also it should just be setLabel() or setBody(), setBodyLabel() seems
> redundant
>
> -igor
>
> On Sun, Jan 23, 2011 at 3:17 PM, Jeremy Thomerson
> <jr...@apache.org> wrote:
> >
> >
> > On Sun, Jan 23, 2011 at 5:30 AM, <mg...@apache.org> wrote:
> >>
> >> + public AbstractLink setBodyModel(final IModel<?> bodyModel)
> >> + {
> >> + this.bodyModel = bodyModel;
> >> + return this;
> >> }
> >
> > Should this be:
> >
> > this.bodyModel = wrap(bodyModel);
> >
> > --
> > Jeremy Thomerson
> > http://wickettraining.com
> > Need a CMS for Wicket? Use Brix! http://brixcms.org
> >
> >
>
Re: svn commit: r1062394 - in /wicket/trunk: wicket-core/src/main/java/org/apache/wicket/markup/html/link/
wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/
Posted by Igor Vaynberg <ig...@gmail.com>.
also it should just be setLabel() or setBody(), setBodyLabel() seems redundant
-igor
On Sun, Jan 23, 2011 at 3:17 PM, Jeremy Thomerson
<jr...@apache.org> wrote:
>
>
> On Sun, Jan 23, 2011 at 5:30 AM, <mg...@apache.org> wrote:
>>
>> + public AbstractLink setBodyModel(final IModel<?> bodyModel)
>> + {
>> + this.bodyModel = bodyModel;
>> + return this;
>> }
>
> Should this be:
>
> this.bodyModel = wrap(bodyModel);
>
> --
> Jeremy Thomerson
> http://wickettraining.com
> Need a CMS for Wicket? Use Brix! http://brixcms.org
>
>
Re: svn commit: r1062394 - in /wicket/trunk: wicket-core/src/main/java/org/apache/wicket/markup/html/link/
wicket-examples/src/main/java/org/apache/wicket/examples/linkomatic/
Posted by Jeremy Thomerson <jr...@apache.org>.
On Sun, Jan 23, 2011 at 5:30 AM, <mg...@apache.org> wrote:
> + public AbstractLink setBodyModel(final IModel<?> bodyModel)
> + {
> + this.bodyModel = bodyModel;
> + return this;
> }
>
Should this be:
this.bodyModel = wrap(bodyModel);
--
Jeremy Thomerson
http://wickettraining.com
*Need a CMS for Wicket? Use Brix! http://brixcms.org*