Thanks again Vasu,

I've tried your solution but it does not work yet. Below my code:

public TestPage() {
        final WebMarkupContainer container = new
WebMarkupContainer("container");
        container.setOutputMarkupId(true);

        container.add(new ListView<Category>("categories", buildCategories()) {
            @Override
            protected void populateItem(ListItem<Category> item) {
                Category category = item.getModelObject();
                item.add(new Label("category", category.getName()));
                item.add(new ListView<Topic>("topics", category.getTopics()) {
                    @Override
                    protected void populateItem(final ListItem<Topic> item) {
                        final Topic topic = item.getModelObject();
                        final Label topicLabel = new Label("topic",
topic.getName());
                        item.add(new AjaxLink<String>("topicLink") {
                            @Override
                            public void onClick(AjaxRequestTarget target) {
                                item.add(topicLabel).add(new
AttributeModifier("class", true, new AbstractReadOnlyModel<String>() {
                                    @Override
                                    public String getObject() {
                                        return "highlight";
                                    }
                                }));
                                target.addComponent(container);
                            }
                        }.add(topicLabel));
                    }
                });
            }
        });
        add(container);
    }

Any other suggestions?


Regards,
Hbiloo


On Wed, Jun 24, 2009 at 3:48 PM, Vasu Srinivasan<vasy...@gmail.com> wrote:
> I see you are trying to add the class modifier to "item" which is ListItem
> and thats not a HTML component.
> In my case, I was adding it to the link or label. I think you may have to do
> something like
>
> item.add(new Label(...).add(new AttributeModifier("class", new
> AbstractReadOnlyModel() ...
>
> etc.
>
>
> On Wed, Jun 24, 2009 at 7:28 AM, Azzeddine Daddah <waarhei...@gmail.com>wrote:
>
>> Thanks Vasu for your replay.
>>
>> I've tried your suggestion, but didn't work. This is what I get in the
>> Ajax debuger when I click a certain item:
>> ...
>> <li>
>>   <a id="topicLink31" href="#" onclick="var
>>
>> wcall=wicketAjaxGet('?wicket:interface=:0:container:categories:3:topics:3:topicLink::IBehaviorListener:0:-1',null,null,
>> function() {return Wicket.$('topicLink31') !=
>> null;}.bind(this));return !wcall;"><span>Yeeh</span></a>
>> </li>
>> ...
>>
>> Does someone else already got the same issue?
>>
>> Regards,
>> Hbiloo
>>
>>
>> On Wed, Jun 24, 2009 at 12:36 PM, Vasu Srinivasan<vasy...@gmail.com>
>> wrote:
>> > Ive got a very similar thing working.
>> >
>> > I think you may have to return the "highlight" value dynamically. Try
>> this
>> > alternative:
>> >
>> > item.add(new AttributeModifier("class", true, new AbstractReadOnlyModel()
>> {
>> > �...@override public Object getObject() {
>> >      return "highlight"
>> >  }
>> > });
>> >
>> > On Tue, Jun 23, 2009 at 5:56 PM, Azzeddine Daddah <waarhei...@gmail.com
>> >wrote:
>> >
>> >> Hi Wicket users,
>> >>
>> >> I've a ListView in a ListView. The 1st ListVeiw holds "categories".
>> >> The 2nd ListView holds links (topics) which I want to be highlighted
>> >> if the link (topic) is clicked. The problem is that the wrapped list
>> >> (container) is getting refreshed, but the CSS class is not set for the
>> >> corresponding list item.
>> >> Below my code:
>> >>
>> >> TestPage.java
>> >> ========================================
>> >> import java.io.Serializable;
>> >> import java.util.ArrayList;
>> >> import java.util.Arrays;
>> >> import java.util.List;
>> >>
>> >> import org.apache.wicket.AttributeModifier;
>> >> import org.apache.wicket.ajax.AjaxRequestTarget;
>> >> import org.apache.wicket.ajax.markup.html.AjaxLink;
>> >> import org.apache.wicket.markup.html.WebMarkupContainer;
>> >> import org.apache.wicket.markup.html.basic.Label;
>> >> import org.apache.wicket.markup.html.list.ListItem;
>> >> import org.apache.wicket.markup.html.list.ListView;
>> >> import org.apache.wicket.model.Model;
>> >> import org.wicketstuff.annotation.mount.MountPath;
>> >>
>> >> import com.hbiloo.receptino.web.page.template.PageWithoutSideBar;
>> >>
>> >> @MountPath(path = "test")
>> >> public class TestPage extends PageWithoutSideBar {
>> >>
>> >>       �...@suppresswarnings("serial")
>> >>        public TestPage() {
>> >>                final WebMarkupContainer container = new
>> >> WebMarkupContainer("container");
>> >>                container.setOutputMarkupId(true);
>> >>
>> >>                container.add(new ListView<Category>("categories",
>> >> buildCategories()) {
>> >>                       �...@override
>> >>                        protected void populateItem(ListItem<Category>
>> item)
>> >> {
>> >>                                Category category =
>> item.getModelObject();
>> >>                                item.add(new Label("category",
>> >> category.getName()));
>> >>                                item.add(new ListView<Topic>("topics",
>> >> category.getTopics()) {
>> >>                                       �...@override
>> >>                                        protected void populateItem(final
>> >> ListItem<Topic> item) {
>> >>                                                Topic topic =
>> >> item.getModelObject();
>> >>                                                AjaxLink<String>
>> topicLink =
>> >> (new AjaxLink<String>("topicLink") {
>> >>                                                       �...@override
>> >>                                                        public void
>> >> onClick(AjaxRequestTarget target) {
>> >>
>> >>  target.addComponent(container);
>> >>
>>  item.add(new
>> >> AttributeModifier("class", true, new
>> >> Model<String>("highlight")));
>> >>                                                        }
>> >>                                                });
>> >>                                                topicLink.add(new
>> >> Label("topic", topic.getName()));
>> >>                                                item.add(topicLink);
>> >>                                        }
>> >>                                });
>> >>                        }
>> >>                });
>> >>                add(container);
>> >>        }
>> >>
>> >>       �...@suppresswarnings("serial")
>> >>        private class Category implements Serializable {
>> >>                private String name;
>> >>                private List<Topic> topics;
>> >>
>> >>                public Category(String name, List<Topic> topics) {
>> >>                        this.name = name;
>> >>                        this.topics = topics;
>> >>                }
>> >>
>> >>                public String getName() {
>> >>                        return name;
>> >>                }
>> >>
>> >>                public List<Topic> getTopics() {
>> >>                        return topics;
>> >>                }
>> >>        }
>> >>
>> >>       �...@suppresswarnings("serial")
>> >>        private class Topic implements Serializable {
>> >>                private String name;
>> >>
>> >>                public Topic(String name) {
>> >>                        this.name = name;
>> >>                }
>> >>
>> >>                public String getName() {
>> >>                        return name;
>> >>                }
>> >>        }
>> >>
>> >>        private List<Category> buildCategories() {
>> >>                List<Category> categories = new ArrayList<Category>();
>> >>                categories.add(new Category("Movies", Arrays.asList(new
>> >> Topic("Mamma"),
>> >>                                new Topic("USA"), new Topic("NL"))));
>> >>                categories.add(new Category("Articles", Arrays.asList(
>> >>                                new Topic("Test"), new
>> >> Topic("Nederland"))));
>> >>                categories.add(new Category("Images", Arrays.asList(new
>> >> Topic("Mag"),
>> >>                                new Topic("Spullen"), new Topic("Mamma
>> >> mia"))));
>> >>                categories.add(new Category("Links", Arrays.asList(new
>> >> Topic("Ana"),
>> >>                                new Topic("Smiti"), new Topic("Hbiloo"),
>> new
>> >> Topic("Yeeh"))));
>> >>                return categories;
>> >>        }
>> >> }
>> >>
>> >> TestPage.html
>> >> ========================================
>> >> <html xmlns:wicket>
>> >>    <wicket:extend>
>> >>    <ul class="menu" wicket:id="container">
>> >>        <li class="r" wicket:id="categories"><span class="category"
>> >>            wicket:id="category">Category A: </span>
>> >>        <ul>
>> >>            <li wicket:id="topics"><a wicket:id="topicLink"><span
>> >>                wicket:id="topic">Link</span></a></li>
>> >>        </ul>
>> >>        </li>
>> >>    </ul>
>> >> </wicket:extend>
>> >> </html>
>> >>
>> >> Kind regards,
>> >>
>> >> Hbiloo
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> >> For additional commands, e-mail: users-h...@wicket.apache.org
>> >>
>> >>
>> >
>> >
>> > --
>> > Regards,
>> > Vasu Srinivasan
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
>
>
> --
> Regards,
> Vasu Srinivasan
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to