Re: How to access ListItem from ListView from AjaxLink?

2010-03-11 Thread prati

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

thFirst Name/th

/tr
tr wicket:id=view
td # /td
   
/tr
/table

/wicket:extend



public class RefreshingPage extends BasePage {


public RefreshingPage()
{
final ListIModel contacts = new ArrayListIModel(10);

// populate list of contacts to be displayed

IteratorContact 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 IteratorIModel 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


 
 -

Re: How to access ListItem from ListView from AjaxLink?

2010-03-11 Thread Cemal Bayramoglu
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

        thFirst Name/th

    /tr
    tr wicket:id=view
        td #     /td

    /tr
 /table

 /wicket:extend



 public class RefreshingPage extends BasePage {


        public RefreshingPage()
        {
                final ListIModel contacts = new ArrayListIModel(10);

                // populate list of contacts to be displayed

                IteratorContact 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 IteratorIModel 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
 --
 

Re: How to access ListItem from ListView from AjaxLink?

2010-03-11 Thread prati

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

        thFirst Name/th

    /tr
    tr wicket:id=view
        td #     /td

    /tr
 /table

 /wicket:extend



 public class RefreshingPage extends BasePage {


        public RefreshingPage()
        {
                final ListIModel contacts = new ArrayListIModel(10);

                // populate list of contacts to be displayed

                IteratorContact 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 IteratorIModel 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 

Re: How to access ListItem from ListView from AjaxLink?

2010-03-11 Thread Cemal Bayramoglu
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

        thFirst Name/th

    /tr
    tr wicket:id=view
        td #     /td

    /tr
 /table

 /wicket:extend



 public class RefreshingPage extends BasePage {


        public RefreshingPage()
        {
                final ListIModel contacts = new ArrayListIModel(10);

                // populate list of contacts to be displayed

                IteratorContact 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 IteratorIModel 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 

Re: How to access ListItem from ListView from AjaxLink?

2010-03-11 Thread Cemal Bayramoglu
   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

        thFirst Name/th

    /tr
    tr wicket:id=view
        td #     /td

    /tr
 /table

 /wicket:extend



 public class RefreshingPage extends BasePage {


        public RefreshingPage()
        {
                final ListIModel contacts = new ArrayListIModel(10);

                // populate list of contacts to be displayed

                IteratorContact 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 IteratorIModel 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 

Re: How to access ListItem from ListView from AjaxLink?

2009-02-13 Thread Igor Vaynberg
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



Re: How to access ListItem from ListView from AjaxLink?

2009-02-13 Thread moontz

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://www.nabble.com/How-to-access-ListItem-from-ListView-from-AjaxLink--tp21998739p22001477.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