Hi 

I have got a refreshing view ,it contains list of links.I need to highlight
the link when i click on that link.

It works properly but if i click the next item in the list,the previous text
remains highlighted.

<wicket:extend>

<table cellspacing="0" class="dataview">
    <tr>
        
        <th>First Name</th>
        
    </tr>
    <tr wicket:id="view">
        <td> #     </td>
       
    </tr>
</table>

</wicket:extend>



public class RefreshingPage extends BasePage {

        
        public RefreshingPage()
        {
                final List<IModel> contacts = new ArrayList<IModel>(10);

                // populate list of contacts to be displayed

                Iterator<Contact> it = rgetContacts().iterator();
                while (it.hasNext())
                {
                        contacts.add(new Model(it.next()));
                }

                // create the refreshing view
                RefreshingView view = new RefreshingView("view")
                {
                        /**
                         * Return an iterator over models for items in the view
                         */
                        @Override
                        protected Iterator<IModel> getItemModels()
                        {
                                return contacts.iterator();
                        }

                        @Override
                        protected void populateItem(final Item item)
                        {
                                Contact contact = (Contact) 
item.getModelObject();

                                final Label contacteLabel = new 
Label("aname",contact.getName());
                                contacteLabel.setOutputMarkupId(true);
                                
                                item.add(new AjaxLink("name") {

                                        private static final long 
serialVersionUID = 1L;

                                        @Override
                                        public void onClick(AjaxRequestTarget 
target) {

                                                if(target!= null) {
                                                        contacteLabel.add(new
                                                                        
AttributeModifier("style", true, new AbstractReadOnlyModel() {
                                                                                
@Override
                                                                                
public String getObject() {
                                                                                
        return "background-color:#80b6ed;";
                                                                                
}
                                                                        }));
                                                        
target.addComponent(contacteLabel);
                                                }

                                        }



                                }.add(contacteLabel));
                        }
                };

                add(view);


        }
}


Regards
P


moontz wrote:
> 
> i tried that before.  did not work.  no compile or runtime errors, but the
> source did not show the change.
> 
> im thinking, since its an ajax link and because only the target panel
> refreshes, the change to the link is not applied because the actual link
> is not refreshed.  only the other panel is.  in which case i would need to
> append javascript.  i was hping there was a pure wicket solutioin though
> without using JS.
> 
> 
> 
> igor.vaynberg wrote:
>> 
>> final ListItem item
>> 
>> -igor
>> 
>> On Fri, Feb 13, 2009 at 7:36 AM, moontz <bmun...@yahoo.com> wrote:
>>>
>>> I would like to add an attribute to the ListItem element in the markup
>>> (basically change the class style) on click of the link.  Below is my
>>> snippet.  Any insight on how I can accomplish this?  Thanks in advance!
>>>
>>> ListView lv = new ListView("tabListView", tabList) {
>>>                 protected void populateItem(ListItem item) {
>>>                         AjaxLink ajaxLink = new AjaxLink("tabLink",
>>> item.getModel()) {
>>>                           public void onClick(AjaxRequestTarget target)
>>> {
>>>                                        item.add(new
>>> SimpleAttributeModifier("class", "on"));  //
>>> want to do this but do not have access to item object from inner class 
>>> --
>>> ideas for this?
>>>                                             .
>>>                                             .
>>>                                             .
>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/How-to-access-ListItem-from-ListView-from-AjaxLink--tp21998739p21998739.html
>>> Sent from the Wicket - User mailing list archive at Nabble.com.
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>>> For additional commands, e-mail: users-h...@wicket.apache.org
>>>
>>>
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>> 
>> 
>> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/How-to-access-ListItem-from-ListView-from-AjaxLink--tp21998739p27867306.html
Sent from the Wicket - User mailing list archive at Nabble.com.


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

Reply via email to