if(currentSelection != null){ // you should remove existing behaviours on // currentSelection here or, // use an AtrributeModifier added, just once, to all your // labels with a model that has logic // checking against currentSelection to // calculate the correct value for your "style" attribute currentSelection.add(new SimpleAttributeModifier("style", "")); target.addComponent(currentSelection); } currentSelection = contacteLabel;
On 11 March 2010 22:50, Cemal Bayramoglu <jweekend_for...@cabouge.com> wrote: > Prati, > > I'm not sure what you mean. > Here's a couple of lines of code implementing what I described: > > if(currentSelection != null){ > // you should remove existing behaviours on > // currentSelection here or, > // use an AtrributeModifier added, just once, to all your > // labels with a model that has logic > // checking against currentSelection to > // calculate the correct value for your "style" attribute > currentSelection.add(new SimpleAttributeModifier("style", "")); > target.addComponent( > } > currentSelection = contacteLabel; > > Just declare "Component currentSelection;" in your RefreshingView. > > Regards - Cemal > jWeekend > OO & Java Technologies, Wicket > Consulting, Development, Training > http://jWeekend.com > > > On 11 March 2010 21:44, prati <pratibha.pari...@gmail.com> wrote: >> >> Hi Cemal, >> >> Thanks for replying me,but the list gets rendered only once,and i am able to >> capture previous value on click but then how to move further. >> >> >> Regards >> P >> >> jWeekend wrote: >>> >>> Prati, >>> >>> This is because you are only re-rendering the most recently selected >>> label. >>> >>> One solution is keep track of the previous "current selection" >>> (probably in your RefreshingView implementation - eg declare >>> "Component currentSelection;"), which you update in your Link's >>> onClick (ie "currentSelecton = contactLabel;") _after_ you remove the >>> style attribute (that you previously set) on currentSelection and add >>> currrentSelection to the AjaxRequestTarget so it too gets refreshed. >>> >>> Make sense? >>> >>> Regards - Cemal >>> jWeekend >>> OO & Java Technologies, Wicket >>> Consulting, Development, Training >>> http://jWeekend.com >>> >>> On 11 March 2010 18:09, prati <pratibha.pari...@gmail.com> wrote: >>>> >>>> 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 >>>> >>>> >>> >>> --------------------------------------------------------------------- >>> 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--tp21998739p27870307.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