Re: DataTable cell link

2008-10-29 Thread dlipski

Hi,
Thanks for help but the problem with your solution is that it doesnt work in
IE (when I have multiple columns with such links only links in first column
'fills' entire cells) in Firefox that works.


Jeremy Thomerson-5 wrote:
 
 If that's your problem, I'd suggest using CSS, something like:
 
 TD A {
 display: block;
 }
 
 This is much better because the anchor will fill the box (fixing your
 problem), and you are more compatible (if JS is off, etc).
 
 
 -- 
 Jeremy Thomerson
 http://www.wickettraining.com
 
 
 On Tue, Oct 28, 2008 at 2:42 PM, dlipski [EMAIL PROTECTED]
 wrote:
 

 Exaclty, problem is with 'consuming' td element by Item object.

 The problem is that if you have wide column but short text in it some
 users
 have problem with hitting the text (which is a link) .The idea is to make
 whole td element 'clickable'(or linkable).
 The solution would be if table could have any component as row or cell
 element not only Item object.
 But I know that this is a big change in DataTable class (or one of its
 child
 component class) .



 jwcarman wrote:
 
  On Tue, Oct 28, 2008 at 3:05 PM, dlipski [EMAIL PROTECTED]
  wrote:
 
  All this solutions are correct but the problem is not in attaching
 some
  custom Javascript to td element (which can be done in multiple ways)
  but
  in making td element work as a link.
 
 
  Right, the td element is already consumed by the Item object, so you
  can't attach your link to it.
 
  What exactly should I do to achive this ? What components should I add
 at
  server side at what JavaScript should I render at markup ?
  If I have to copy-paste bunch of Link class code it looks like some
  design/implementation problem of DataTable (or one of components it
 has).
 
 
  What is your requirement exactly?  Is there going to be any text (or
  image) in your cell?  If so, why can't it be a link?
 
  Its really supprising that such common issue is such problematic.
  I hope there is some simple and intuitive solution(if I find one I'll
  post
  it here)
 
  Thanks for your help
  Regards Daniel
 
 
  Michael O'Cleirigh wrote:
 
  Hi Daniel,
 
  If you subclass DefaultDataTable there is a protected method call
  newCellItem(...) that you can use to attach the onclick class onto
 the
  td.
 
  like:
 
  class MyDataTable extends DefaultDataTable {
   /* (non-Javadoc)
   * @see
 
 org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable#newCellItem(java.lang.String,
  int, org.apache.wicket.model.IModel)
   */
  @Override
  protected Item newCellItem(String id, int index, IModel model) {
 
 
  Item cell = super.newCellItem(id, index, model);
 
 
  cell.add(new AttributeAppender(onclick, new Model
  (someJavascriptCall();));
 
  return cell;
  }
  }
 
  Alternately you can use a custom column implementation like the
  FragrementColumn and add the onclick when the cell is created like:
 
  class MyOnClickColumn extends AbstractColumn {
  ...
  public void populateItem(Item cellItem, String componentId, IModel
  rowModel)
  {
 Label cell = new Label(componentId, new
 PropertyModel(rowModel,
  property))
 
  cell.add (new AttributeAppender(onclick, new Model
  (someJavascriptCall();));
 
  cellItem.add(cell);
  }
  }
 
 
  I think the second version would attach the onclick to the label
 within
  the td/td of a cell.
 
  Regards,
 
  Mike
  I dont know wicketopia project (and any of its classes like
  FragmentColumn)
  so I can misunderstand your idea but as far as I am able to read
 that
  code
  It looks like you are adding a link to the table cell, not making a
  cell
  itself a link.
 
  If I understand your code it is familar to:
 
  tdlt;agt;textlt;/agt;/td
 
  but Im wondering how to achive:
  td on click=xyztext/td
 
  where xyz is code generated by Wicket (like in Link component class)
 
  If I misundestood you could you give me some more details hot to
 make
  cell
  itself a link ? (not adding a link to the cell) ?
 
  Regards
  Daniel
 
 
 
  jwcarman wrote:
 
  Here's an example where I put a remove link in a DefaultDataTable
  cell:
 
 
 https://wicketopia.svn.sourceforge.net/svnroot/wicketopia/trunk/example/src/main/java/org/wicketopia/example/web/page/HomePage.java
 
 
  On Tue, Oct 28, 2008 at 6:33 AM, dlipski
 [EMAIL PROTECTED]
 
  wrote:
 
  Hi
 
  I have one short question:
  How to make entire cell in a DataTable a link ?
  I've read that Link component can be attached not only to
 lt;agt;
  tags
  but
  also to any other html elements (like tr and td) but I dont
 know
  how
  to
  use it with DataTable API.
 
  Regards Daniel
  --
  View this message in context:
  http://www.nabble.com/DataTable-cell-link-tp20204702p20204702.html
  Sent from the Wicket - User mailing list archive at Nabble.com.
 
 
 
 -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL 

Re: DataTable cell link

2008-10-29 Thread dlipski

Because I havent found better solution then adding 'onclick' handler to
cellItem I have to do it your way.
I looked at urlFor methods in Component class and didnt found the one with
Component attribute. 
How should I generate url for Link component, AjaxLink or AjaxFallbackLink ?
Do I have to add this components to the page and set its visiblity to false
?
I understand 'general concept' of this solution but dont know how to
implement this in specific scenarion (ie. linking to Link, AjaxLink,
AjaxFallbackLink).

Using diffrent repeater could be a option but DataTable (or
AjaxFallbackDefaultDataTable) provides a lot of functionality (sorting,
paging, fallback links etc) so it would be a waste of time to implement its
from scratch just because its hard to make a table cell (or row) a link. It
must be a way to achive this... if not it serious limitation of DataTable
component.

Regards Daniel


Jeremy Thomerson-5 wrote:
 
 Depending on what you are linking TO, it can be very simple.  You can call
 urlFor(YourBookmarkablePage.class, pageParamsOrNullIfNone).  So, you could
 do:
 
 cellItem.add(new SimpleAttributeModifier(onclick, location.href = ' +
 urlFor(YourBookmarkablePage.class, pageParamsOrNullIfNone) + '));
 
 Of course, that JS could be better for triple click problems, etc.
 
 Really, you may just consider using another Repeater rather than
 DataTable.
 DataTable is for a very specific purpose, and it is often easier to roll
 your own than make DT fit your purpose.
 
 
 -- 
 Jeremy Thomerson
 http://www.wickettraining.com
 
 
 On Tue, Oct 28, 2008 at 2:05 PM, dlipski [EMAIL PROTECTED]
 wrote:
 

 All this solutions are correct but the problem is not in attaching some
 custom Javascript to td element (which can be done in multiple ways)
 but
 in making td element work as a link.

 What exactly should I do to achive this ? What components should I add at
 server side at what JavaScript should I render at markup ?
 If I have to copy-paste bunch of Link class code it looks like some
 design/implementation problem of DataTable (or one of components it has).

 Its really supprising that such common issue is such problematic.
 I hope there is some simple and intuitive solution(if I find one I'll
 post
 it here)

 Thanks for your help
 Regards Daniel


 Michael O'Cleirigh wrote:
 
  Hi Daniel,
 
  If you subclass DefaultDataTable there is a protected method call
  newCellItem(...) that you can use to attach the onclick class onto the
  td.
 
  like:
 
  class MyDataTable extends DefaultDataTable {
   /* (non-Javadoc)
   * @see
 
 org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable#newCellItem(java.lang.String,
  int, org.apache.wicket.model.IModel)
   */
  @Override
  protected Item newCellItem(String id, int index, IModel model) {
 
 
  Item cell = super.newCellItem(id, index, model);
 
 
  cell.add(new AttributeAppender(onclick, new Model
  (someJavascriptCall();));
 
  return cell;
  }
  }
 
  Alternately you can use a custom column implementation like the
  FragrementColumn and add the onclick when the cell is created like:
 
  class MyOnClickColumn extends AbstractColumn {
  ...
  public void populateItem(Item cellItem, String componentId, IModel
  rowModel)
  {
 Label cell = new Label(componentId, new PropertyModel(rowModel,
  property))
 
  cell.add (new AttributeAppender(onclick, new Model
  (someJavascriptCall();));
 
  cellItem.add(cell);
  }
  }
 
 
  I think the second version would attach the onclick to the label within
  the td/td of a cell.
 
  Regards,
 
  Mike
  I dont know wicketopia project (and any of its classes like
  FragmentColumn)
  so I can misunderstand your idea but as far as I am able to read that
  code
  It looks like you are adding a link to the table cell, not making a
 cell
  itself a link.
 
  If I understand your code it is familar to:
 
  tdlt;agt;textlt;/agt;/td
 
  but Im wondering how to achive:
  td on click=xyztext/td
 
  where xyz is code generated by Wicket (like in Link component class)
 
  If I misundestood you could you give me some more details hot to make
  cell
  itself a link ? (not adding a link to the cell) ?
 
  Regards
  Daniel
 
 
 
  jwcarman wrote:
 
  Here's an example where I put a remove link in a DefaultDataTable
 cell:
 
 
 https://wicketopia.svn.sourceforge.net/svnroot/wicketopia/trunk/example/src/main/java/org/wicketopia/example/web/page/HomePage.java
 
 
  On Tue, Oct 28, 2008 at 6:33 AM, dlipski [EMAIL PROTECTED]
  wrote:
 
  Hi
 
  I have one short question:
  How to make entire cell in a DataTable a link ?
  I've read that Link component can be attached not only to lt;agt;
  tags
  but
  also to any other html elements (like tr and td) but I dont know
  how
  to
  use it with DataTable API.
 
  Regards Daniel
  --
  View this message in context:
  http://www.nabble.com/DataTable-cell-link-tp20204702p20204702.html
  Sent from the Wicket - User 

Re: DataTable cell link

2008-10-29 Thread dlipski

My colegue point out that for Ajax requests AjaxEventBehavior can be used,
and it works fine. so now I need only solution for normal (non Ajax)
requests.


dlipski wrote:
 
 Because I havent found better solution then adding 'onclick' handler to
 cellItem I have to do it your way.
 I looked at urlFor methods in Component class and didnt found the one with
 Component attribute. 
 How should I generate url for Link component, AjaxLink or AjaxFallbackLink
 ?
 Do I have to add this components to the page and set its visiblity to
 false ?
 I understand 'general concept' of this solution but dont know how to
 implement this in specific scenarion (ie. linking to Link, AjaxLink,
 AjaxFallbackLink).
 
 Using diffrent repeater could be a option but DataTable (or
 AjaxFallbackDefaultDataTable) provides a lot of functionality (sorting,
 paging, fallback links etc) so it would be a waste of time to implement
 its from scratch just because its hard to make a table cell (or row) a
 link. It must be a way to achive this... if not it serious limitation of
 DataTable component.
 
 Regards Daniel
 
 
 Jeremy Thomerson-5 wrote:
 
 Depending on what you are linking TO, it can be very simple.  You can
 call
 urlFor(YourBookmarkablePage.class, pageParamsOrNullIfNone).  So, you
 could
 do:
 
 cellItem.add(new SimpleAttributeModifier(onclick, location.href = ' +
 urlFor(YourBookmarkablePage.class, pageParamsOrNullIfNone) + '));
 
 Of course, that JS could be better for triple click problems, etc.
 
 Really, you may just consider using another Repeater rather than
 DataTable.
 DataTable is for a very specific purpose, and it is often easier to roll
 your own than make DT fit your purpose.
 
 
 -- 
 Jeremy Thomerson
 http://www.wickettraining.com
 
 
 On Tue, Oct 28, 2008 at 2:05 PM, dlipski [EMAIL PROTECTED]
 wrote:
 

 All this solutions are correct but the problem is not in attaching some
 custom Javascript to td element (which can be done in multiple ways)
 but
 in making td element work as a link.

 What exactly should I do to achive this ? What components should I add
 at
 server side at what JavaScript should I render at markup ?
 If I have to copy-paste bunch of Link class code it looks like some
 design/implementation problem of DataTable (or one of components it
 has).

 Its really supprising that such common issue is such problematic.
 I hope there is some simple and intuitive solution(if I find one I'll
 post
 it here)

 Thanks for your help
 Regards Daniel


 Michael O'Cleirigh wrote:
 
  Hi Daniel,
 
  If you subclass DefaultDataTable there is a protected method call
  newCellItem(...) that you can use to attach the onclick class onto the
  td.
 
  like:
 
  class MyDataTable extends DefaultDataTable {
   /* (non-Javadoc)
   * @see
 
 org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable#newCellItem(java.lang.String,
  int, org.apache.wicket.model.IModel)
   */
  @Override
  protected Item newCellItem(String id, int index, IModel model) {
 
 
  Item cell = super.newCellItem(id, index, model);
 
 
  cell.add(new AttributeAppender(onclick, new Model
  (someJavascriptCall();));
 
  return cell;
  }
  }
 
  Alternately you can use a custom column implementation like the
  FragrementColumn and add the onclick when the cell is created like:
 
  class MyOnClickColumn extends AbstractColumn {
  ...
  public void populateItem(Item cellItem, String componentId, IModel
  rowModel)
  {
 Label cell = new Label(componentId, new PropertyModel(rowModel,
  property))
 
  cell.add (new AttributeAppender(onclick, new Model
  (someJavascriptCall();));
 
  cellItem.add(cell);
  }
  }
 
 
  I think the second version would attach the onclick to the label
 within
  the td/td of a cell.
 
  Regards,
 
  Mike
  I dont know wicketopia project (and any of its classes like
  FragmentColumn)
  so I can misunderstand your idea but as far as I am able to read that
  code
  It looks like you are adding a link to the table cell, not making a
 cell
  itself a link.
 
  If I understand your code it is familar to:
 
  tdlt;agt;textlt;/agt;/td
 
  but Im wondering how to achive:
  td on click=xyztext/td
 
  where xyz is code generated by Wicket (like in Link component class)
 
  If I misundestood you could you give me some more details hot to make
  cell
  itself a link ? (not adding a link to the cell) ?
 
  Regards
  Daniel
 
 
 
  jwcarman wrote:
 
  Here's an example where I put a remove link in a DefaultDataTable
 cell:
 
 
 https://wicketopia.svn.sourceforge.net/svnroot/wicketopia/trunk/example/src/main/java/org/wicketopia/example/web/page/HomePage.java
 
 
  On Tue, Oct 28, 2008 at 6:33 AM, dlipski
 [EMAIL PROTECTED]
  wrote:
 
  Hi
 
  I have one short question:
  How to make entire cell in a DataTable a link ?
  I've read that Link component can be attached not only to lt;agt;
  tags
  but
  also to any other html elements (like tr and td) but I dont
 

Re: DataTable cell link

2008-10-29 Thread Igor Vaynberg
abstract class clickableitem extends item implements ilinklistener {

 protected oncomponenttag(tag) {
   super
   
tag.put(onclick,window.location='+urlfor(ilinklistenerinterface.interface)+';);
 }

}

thats about all it takes

-igor

On Wed, Oct 29, 2008 at 4:20 AM, dlipski [EMAIL PROTECTED] wrote:

 My colegue point out that for Ajax requests AjaxEventBehavior can be used,
 and it works fine. so now I need only solution for normal (non Ajax)
 requests.


 dlipski wrote:

 Because I havent found better solution then adding 'onclick' handler to
 cellItem I have to do it your way.
 I looked at urlFor methods in Component class and didnt found the one with
 Component attribute.
 How should I generate url for Link component, AjaxLink or AjaxFallbackLink
 ?
 Do I have to add this components to the page and set its visiblity to
 false ?
 I understand 'general concept' of this solution but dont know how to
 implement this in specific scenarion (ie. linking to Link, AjaxLink,
 AjaxFallbackLink).

 Using diffrent repeater could be a option but DataTable (or
 AjaxFallbackDefaultDataTable) provides a lot of functionality (sorting,
 paging, fallback links etc) so it would be a waste of time to implement
 its from scratch just because its hard to make a table cell (or row) a
 link. It must be a way to achive this... if not it serious limitation of
 DataTable component.

 Regards Daniel


 Jeremy Thomerson-5 wrote:

 Depending on what you are linking TO, it can be very simple.  You can
 call
 urlFor(YourBookmarkablePage.class, pageParamsOrNullIfNone).  So, you
 could
 do:

 cellItem.add(new SimpleAttributeModifier(onclick, location.href = ' +
 urlFor(YourBookmarkablePage.class, pageParamsOrNullIfNone) + '));

 Of course, that JS could be better for triple click problems, etc.

 Really, you may just consider using another Repeater rather than
 DataTable.
 DataTable is for a very specific purpose, and it is often easier to roll
 your own than make DT fit your purpose.


 --
 Jeremy Thomerson
 http://www.wickettraining.com


 On Tue, Oct 28, 2008 at 2:05 PM, dlipski [EMAIL PROTECTED]
 wrote:


 All this solutions are correct but the problem is not in attaching some
 custom Javascript to td element (which can be done in multiple ways)
 but
 in making td element work as a link.

 What exactly should I do to achive this ? What components should I add
 at
 server side at what JavaScript should I render at markup ?
 If I have to copy-paste bunch of Link class code it looks like some
 design/implementation problem of DataTable (or one of components it
 has).

 Its really supprising that such common issue is such problematic.
 I hope there is some simple and intuitive solution(if I find one I'll
 post
 it here)

 Thanks for your help
 Regards Daniel


 Michael O'Cleirigh wrote:
 
  Hi Daniel,
 
  If you subclass DefaultDataTable there is a protected method call
  newCellItem(...) that you can use to attach the onclick class onto the
  td.
 
  like:
 
  class MyDataTable extends DefaultDataTable {
   /* (non-Javadoc)
   * @see
 
 org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable#newCellItem(java.lang.String,
  int, org.apache.wicket.model.IModel)
   */
  @Override
  protected Item newCellItem(String id, int index, IModel model) {
 
 
  Item cell = super.newCellItem(id, index, model);
 
 
  cell.add(new AttributeAppender(onclick, new Model
  (someJavascriptCall();));
 
  return cell;
  }
  }
 
  Alternately you can use a custom column implementation like the
  FragrementColumn and add the onclick when the cell is created like:
 
  class MyOnClickColumn extends AbstractColumn {
  ...
  public void populateItem(Item cellItem, String componentId, IModel
  rowModel)
  {
 Label cell = new Label(componentId, new PropertyModel(rowModel,
  property))
 
  cell.add (new AttributeAppender(onclick, new Model
  (someJavascriptCall();));
 
  cellItem.add(cell);
  }
  }
 
 
  I think the second version would attach the onclick to the label
 within
  the td/td of a cell.
 
  Regards,
 
  Mike
  I dont know wicketopia project (and any of its classes like
  FragmentColumn)
  so I can misunderstand your idea but as far as I am able to read that
  code
  It looks like you are adding a link to the table cell, not making a
 cell
  itself a link.
 
  If I understand your code it is familar to:
 
  tdlt;agt;textlt;/agt;/td
 
  but Im wondering how to achive:
  td on click=xyztext/td
 
  where xyz is code generated by Wicket (like in Link component class)
 
  If I misundestood you could you give me some more details hot to make
  cell
  itself a link ? (not adding a link to the cell) ?
 
  Regards
  Daniel
 
 
 
  jwcarman wrote:
 
  Here's an example where I put a remove link in a DefaultDataTable
 cell:
 
 
 https://wicketopia.svn.sourceforge.net/svnroot/wicketopia/trunk/example/src/main/java/org/wicketopia/example/web/page/HomePage.java
 
 
  On Tue, 

Re: DataTable cell link

2008-10-29 Thread dlipski

That was the solution I was looking for.
I havent know that it is possible to do thinks that way !
I supose that I have to override newCellItem and newRowItem method in
DataTable class and return ClickableItem instead of Item. 

Good to know that it is possible to do this in standard Wicket way without
'magic code'. Although it works and all classes follows their contracts in
my opinion it would be more coherent and obvious if DataTable could work
with any somponent as cell/row but its only my notice...



igor.vaynberg wrote:
 
 abstract class clickableitem extends item implements ilinklistener {
 
  protected oncomponenttag(tag) {
super
   
 tag.put(onclick,window.location='+urlfor(ilinklistenerinterface.interface)+';);
  }
 
 }
 
 thats about all it takes
 
 -igor
 
 On Wed, Oct 29, 2008 at 4:20 AM, dlipski [EMAIL PROTECTED]
 wrote:

 My colegue point out that for Ajax requests AjaxEventBehavior can be
 used,
 and it works fine. so now I need only solution for normal (non Ajax)
 requests.


 dlipski wrote:

 Because I havent found better solution then adding 'onclick' handler to
 cellItem I have to do it your way.
 I looked at urlFor methods in Component class and didnt found the one
 with
 Component attribute.
 How should I generate url for Link component, AjaxLink or
 AjaxFallbackLink
 ?
 Do I have to add this components to the page and set its visiblity to
 false ?
 I understand 'general concept' of this solution but dont know how to
 implement this in specific scenarion (ie. linking to Link, AjaxLink,
 AjaxFallbackLink).

 Using diffrent repeater could be a option but DataTable (or
 AjaxFallbackDefaultDataTable) provides a lot of functionality (sorting,
 paging, fallback links etc) so it would be a waste of time to implement
 its from scratch just because its hard to make a table cell (or row) a
 link. It must be a way to achive this... if not it serious limitation of
 DataTable component.

 Regards Daniel


 Jeremy Thomerson-5 wrote:

 Depending on what you are linking TO, it can be very simple.  You can
 call
 urlFor(YourBookmarkablePage.class, pageParamsOrNullIfNone).  So, you
 could
 do:

 cellItem.add(new SimpleAttributeModifier(onclick, location.href = '
 +
 urlFor(YourBookmarkablePage.class, pageParamsOrNullIfNone) + '));

 Of course, that JS could be better for triple click problems, etc.

 Really, you may just consider using another Repeater rather than
 DataTable.
 DataTable is for a very specific purpose, and it is often easier to
 roll
 your own than make DT fit your purpose.


 --
 Jeremy Thomerson
 http://www.wickettraining.com


 On Tue, Oct 28, 2008 at 2:05 PM, dlipski [EMAIL PROTECTED]
 wrote:


 All this solutions are correct but the problem is not in attaching
 some
 custom Javascript to td element (which can be done in multiple ways)
 but
 in making td element work as a link.

 What exactly should I do to achive this ? What components should I add
 at
 server side at what JavaScript should I render at markup ?
 If I have to copy-paste bunch of Link class code it looks like some
 design/implementation problem of DataTable (or one of components it
 has).

 Its really supprising that such common issue is such problematic.
 I hope there is some simple and intuitive solution(if I find one I'll
 post
 it here)

 Thanks for your help
 Regards Daniel


 Michael O'Cleirigh wrote:
 
  Hi Daniel,
 
  If you subclass DefaultDataTable there is a protected method call
  newCellItem(...) that you can use to attach the onclick class onto
 the
  td.
 
  like:
 
  class MyDataTable extends DefaultDataTable {
   /* (non-Javadoc)
   * @see
 
 org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable#newCellItem(java.lang.String,
  int, org.apache.wicket.model.IModel)
   */
  @Override
  protected Item newCellItem(String id, int index, IModel model) {
 
 
  Item cell = super.newCellItem(id, index, model);
 
 
  cell.add(new AttributeAppender(onclick, new Model
  (someJavascriptCall();));
 
  return cell;
  }
  }
 
  Alternately you can use a custom column implementation like the
  FragrementColumn and add the onclick when the cell is created like:
 
  class MyOnClickColumn extends AbstractColumn {
  ...
  public void populateItem(Item cellItem, String componentId, IModel
  rowModel)
  {
 Label cell = new Label(componentId, new
 PropertyModel(rowModel,
  property))
 
  cell.add (new AttributeAppender(onclick, new Model
  (someJavascriptCall();));
 
  cellItem.add(cell);
  }
  }
 
 
  I think the second version would attach the onclick to the label
 within
  the td/td of a cell.
 
  Regards,
 
  Mike
  I dont know wicketopia project (and any of its classes like
  FragmentColumn)
  so I can misunderstand your idea but as far as I am able to read
 that
  code
  It looks like you are adding a link to the table cell, not making a
 cell
  itself a link.
 
  If I understand your code it is familar to:
 
  

Re: DataTable cell link

2008-10-28 Thread James Carman
Here's an example where I put a remove link in a DefaultDataTable cell:

https://wicketopia.svn.sourceforge.net/svnroot/wicketopia/trunk/example/src/main/java/org/wicketopia/example/web/page/HomePage.java


On Tue, Oct 28, 2008 at 6:33 AM, dlipski [EMAIL PROTECTED] wrote:

 Hi

 I have one short question:
 How to make entire cell in a DataTable a link ?
 I've read that Link component can be attached not only to lt;agt; tags but
 also to any other html elements (like tr and td) but I dont know how to
 use it with DataTable API.

 Regards Daniel
 --
 View this message in context: 
 http://www.nabble.com/DataTable-cell-link-tp20204702p20204702.html
 Sent from the Wicket - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: DataTable cell link

2008-10-28 Thread dlipski

Hi
I dont know wicketopia project (and any of its classes like FragmentColumn)
so I can misunderstand your idea but as far as I am able to read that code
It looks like you are adding a link to the table cell, not making a cell
itself a link.

If I understand your code it is familar to:

tdlt;agt;textlt;/agt;/td

but Im wondering how to achive:
td on click=xyztext/td

where xyz is code generated by Wicket (like in Link component class)

If I misundestood you could you give me some more details hot to make cell
itself a link ? (not adding a link to the cell) ?

Regards 
Daniel



jwcarman wrote:
 
 Here's an example where I put a remove link in a DefaultDataTable cell:
 
 https://wicketopia.svn.sourceforge.net/svnroot/wicketopia/trunk/example/src/main/java/org/wicketopia/example/web/page/HomePage.java
 
 
 On Tue, Oct 28, 2008 at 6:33 AM, dlipski [EMAIL PROTECTED]
 wrote:

 Hi

 I have one short question:
 How to make entire cell in a DataTable a link ?
 I've read that Link component can be attached not only to lt;agt; tags
 but
 also to any other html elements (like tr and td) but I dont know how
 to
 use it with DataTable API.

 Regards Daniel
 --
 View this message in context:
 http://www.nabble.com/DataTable-cell-link-tp20204702p20204702.html
 Sent from the Wicket - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]


 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 

-- 
View this message in context: 
http://www.nabble.com/DataTable-cell-link-tp20204702p20207438.html
Sent from the Wicket - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: DataTable cell link

2008-10-28 Thread James Carman
I apologize.  I must have misunderstood your question.

On Tue, Oct 28, 2008 at 9:42 AM, dlipski [EMAIL PROTECTED] wrote:

 Hi
 I dont know wicketopia project (and any of its classes like FragmentColumn)
 so I can misunderstand your idea but as far as I am able to read that code
 It looks like you are adding a link to the table cell, not making a cell
 itself a link.

 If I understand your code it is familar to:

 tdlt;agt;textlt;/agt;/td

 but Im wondering how to achive:
 td on click=xyztext/td

 where xyz is code generated by Wicket (like in Link component class)

 If I misundestood you could you give me some more details hot to make cell
 itself a link ? (not adding a link to the cell) ?

 Regards
 Daniel



 jwcarman wrote:

 Here's an example where I put a remove link in a DefaultDataTable cell:

 https://wicketopia.svn.sourceforge.net/svnroot/wicketopia/trunk/example/src/main/java/org/wicketopia/example/web/page/HomePage.java


 On Tue, Oct 28, 2008 at 6:33 AM, dlipski [EMAIL PROTECTED]
 wrote:

 Hi

 I have one short question:
 How to make entire cell in a DataTable a link ?
 I've read that Link component can be attached not only to lt;agt; tags
 but
 also to any other html elements (like tr and td) but I dont know how
 to
 use it with DataTable API.

 Regards Daniel
 --
 View this message in context:
 http://www.nabble.com/DataTable-cell-link-tp20204702p20204702.html
 Sent from the Wicket - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




 --
 View this message in context: 
 http://www.nabble.com/DataTable-cell-link-tp20204702p20207438.html
 Sent from the Wicket - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: DataTable cell link

2008-10-28 Thread Michael O'Cleirigh

Hi Daniel,

If you subclass DefaultDataTable there is a protected method call 
newCellItem(...) that you can use to attach the onclick class onto the td.


like:

class MyDataTable extends DefaultDataTable {
/* (non-Javadoc)
* @see 
org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable#newCellItem(java.lang.String, 
int, org.apache.wicket.model.IModel)

*/
   @Override
   protected Item newCellItem(String id, int index, IModel model) {


   Item cell = super.newCellItem(id, index, model);


   cell.add(new AttributeAppender(onclick, new Model 
(someJavascriptCall();));


   return cell;
   }
}

Alternately you can use a custom column implementation like the 
FragrementColumn and add the onclick when the cell is created like:


class MyOnClickColumn extends AbstractColumn {
...
public void populateItem(Item cellItem, String componentId, IModel rowModel)
   {
  Label cell = new Label(componentId, new PropertyModel(rowModel, 
property))


   cell.add (new AttributeAppender(onclick, new Model 
(someJavascriptCall();));


   cellItem.add(cell);
   }
}


I think the second version would attach the onclick to the label within 
the td/td of a cell.


Regards,

Mike

I dont know wicketopia project (and any of its classes like FragmentColumn)
so I can misunderstand your idea but as far as I am able to read that code
It looks like you are adding a link to the table cell, not making a cell
itself a link.

If I understand your code it is familar to:

tdlt;agt;textlt;/agt;/td

but Im wondering how to achive:
td on click=xyztext/td

where xyz is code generated by Wicket (like in Link component class)

If I misundestood you could you give me some more details hot to make cell
itself a link ? (not adding a link to the cell) ?

Regards 
Daniel




jwcarman wrote:
  

Here's an example where I put a remove link in a DefaultDataTable cell:

https://wicketopia.svn.sourceforge.net/svnroot/wicketopia/trunk/example/src/main/java/org/wicketopia/example/web/page/HomePage.java


On Tue, Oct 28, 2008 at 6:33 AM, dlipski [EMAIL PROTECTED]
wrote:


Hi

I have one short question:
How to make entire cell in a DataTable a link ?
I've read that Link component can be attached not only to lt;agt; tags
but
also to any other html elements (like tr and td) but I dont know how
to
use it with DataTable API.

Regards Daniel
--
View this message in context:
http://www.nabble.com/DataTable-cell-link-tp20204702p20204702.html
Sent from the Wicket - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






  



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: DataTable cell link

2008-10-28 Thread dlipski

All this solutions are correct but the problem is not in attaching some
custom Javascript to td element (which can be done in multiple ways) but
in making td element work as a link.

What exactly should I do to achive this ? What components should I add at
server side at what JavaScript should I render at markup ? 
If I have to copy-paste bunch of Link class code it looks like some
design/implementation problem of DataTable (or one of components it has).

Its really supprising that such common issue is such problematic.
I hope there is some simple and intuitive solution(if I find one I'll post
it here)

Thanks for your help
Regards Daniel


Michael O'Cleirigh wrote:
 
 Hi Daniel,
 
 If you subclass DefaultDataTable there is a protected method call 
 newCellItem(...) that you can use to attach the onclick class onto the
 td.
 
 like:
 
 class MyDataTable extends DefaultDataTable {
  /* (non-Javadoc)
  * @see 
 org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable#newCellItem(java.lang.String,
  
 int, org.apache.wicket.model.IModel)
  */
 @Override
 protected Item newCellItem(String id, int index, IModel model) {
 
  
 Item cell = super.newCellItem(id, index, model);
 
 
 cell.add(new AttributeAppender(onclick, new Model 
 (someJavascriptCall();));
 
 return cell;
 }
 }
 
 Alternately you can use a custom column implementation like the 
 FragrementColumn and add the onclick when the cell is created like:
 
 class MyOnClickColumn extends AbstractColumn {
 ...
 public void populateItem(Item cellItem, String componentId, IModel
 rowModel)
 {
Label cell = new Label(componentId, new PropertyModel(rowModel, 
 property))
 
 cell.add (new AttributeAppender(onclick, new Model 
 (someJavascriptCall();));
 
 cellItem.add(cell);
 }
 }
 
 
 I think the second version would attach the onclick to the label within 
 the td/td of a cell.
 
 Regards,
 
 Mike
 I dont know wicketopia project (and any of its classes like
 FragmentColumn)
 so I can misunderstand your idea but as far as I am able to read that
 code
 It looks like you are adding a link to the table cell, not making a cell
 itself a link.

 If I understand your code it is familar to:

 tdlt;agt;textlt;/agt;/td

 but Im wondering how to achive:
 td on click=xyztext/td

 where xyz is code generated by Wicket (like in Link component class)

 If I misundestood you could you give me some more details hot to make
 cell
 itself a link ? (not adding a link to the cell) ?

 Regards 
 Daniel



 jwcarman wrote:
   
 Here's an example where I put a remove link in a DefaultDataTable cell:

 https://wicketopia.svn.sourceforge.net/svnroot/wicketopia/trunk/example/src/main/java/org/wicketopia/example/web/page/HomePage.java


 On Tue, Oct 28, 2008 at 6:33 AM, dlipski [EMAIL PROTECTED]
 wrote:
 
 Hi

 I have one short question:
 How to make entire cell in a DataTable a link ?
 I've read that Link component can be attached not only to lt;agt;
 tags
 but
 also to any other html elements (like tr and td) but I dont know
 how
 to
 use it with DataTable API.

 Regards Daniel
 --
 View this message in context:
 http://www.nabble.com/DataTable-cell-link-tp20204702p20204702.html
 Sent from the Wicket - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]


   
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



 

   
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 

-- 
View this message in context: 
http://www.nabble.com/DataTable-cell-link-tp20204702p20213839.html
Sent from the Wicket - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: DataTable cell link

2008-10-28 Thread James Carman
On Tue, Oct 28, 2008 at 3:05 PM, dlipski [EMAIL PROTECTED] wrote:

 All this solutions are correct but the problem is not in attaching some
 custom Javascript to td element (which can be done in multiple ways) but
 in making td element work as a link.


Right, the td element is already consumed by the Item object, so you
can't attach your link to it.

 What exactly should I do to achive this ? What components should I add at
 server side at what JavaScript should I render at markup ?
 If I have to copy-paste bunch of Link class code it looks like some
 design/implementation problem of DataTable (or one of components it has).


What is your requirement exactly?  Is there going to be any text (or
image) in your cell?  If so, why can't it be a link?

 Its really supprising that such common issue is such problematic.
 I hope there is some simple and intuitive solution(if I find one I'll post
 it here)

 Thanks for your help
 Regards Daniel


 Michael O'Cleirigh wrote:

 Hi Daniel,

 If you subclass DefaultDataTable there is a protected method call
 newCellItem(...) that you can use to attach the onclick class onto the
 td.

 like:

 class MyDataTable extends DefaultDataTable {
  /* (non-Javadoc)
  * @see
 org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable#newCellItem(java.lang.String,
 int, org.apache.wicket.model.IModel)
  */
 @Override
 protected Item newCellItem(String id, int index, IModel model) {


 Item cell = super.newCellItem(id, index, model);


 cell.add(new AttributeAppender(onclick, new Model
 (someJavascriptCall();));

 return cell;
 }
 }

 Alternately you can use a custom column implementation like the
 FragrementColumn and add the onclick when the cell is created like:

 class MyOnClickColumn extends AbstractColumn {
 ...
 public void populateItem(Item cellItem, String componentId, IModel
 rowModel)
 {
Label cell = new Label(componentId, new PropertyModel(rowModel,
 property))

 cell.add (new AttributeAppender(onclick, new Model
 (someJavascriptCall();));

 cellItem.add(cell);
 }
 }


 I think the second version would attach the onclick to the label within
 the td/td of a cell.

 Regards,

 Mike
 I dont know wicketopia project (and any of its classes like
 FragmentColumn)
 so I can misunderstand your idea but as far as I am able to read that
 code
 It looks like you are adding a link to the table cell, not making a cell
 itself a link.

 If I understand your code it is familar to:

 tdlt;agt;textlt;/agt;/td

 but Im wondering how to achive:
 td on click=xyztext/td

 where xyz is code generated by Wicket (like in Link component class)

 If I misundestood you could you give me some more details hot to make
 cell
 itself a link ? (not adding a link to the cell) ?

 Regards
 Daniel



 jwcarman wrote:

 Here's an example where I put a remove link in a DefaultDataTable cell:

 https://wicketopia.svn.sourceforge.net/svnroot/wicketopia/trunk/example/src/main/java/org/wicketopia/example/web/page/HomePage.java


 On Tue, Oct 28, 2008 at 6:33 AM, dlipski [EMAIL PROTECTED]
 wrote:

 Hi

 I have one short question:
 How to make entire cell in a DataTable a link ?
 I've read that Link component can be attached not only to lt;agt;
 tags
 but
 also to any other html elements (like tr and td) but I dont know
 how
 to
 use it with DataTable API.

 Regards Daniel
 --
 View this message in context:
 http://www.nabble.com/DataTable-cell-link-tp20204702p20204702.html
 Sent from the Wicket - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]








 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




 --
 View this message in context: 
 http://www.nabble.com/DataTable-cell-link-tp20204702p20213839.html
 Sent from the Wicket - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: DataTable cell link

2008-10-28 Thread dlipski

Exaclty, problem is with 'consuming' td element by Item object.

The problem is that if you have wide column but short text in it some users
have problem with hitting the text (which is a link) .The idea is to make
whole td element 'clickable'(or linkable). 
The solution would be if table could have any component as row or cell
element not only Item object. 
But I know that this is a big change in DataTable class (or one of its child
component class) .



jwcarman wrote:
 
 On Tue, Oct 28, 2008 at 3:05 PM, dlipski [EMAIL PROTECTED]
 wrote:

 All this solutions are correct but the problem is not in attaching some
 custom Javascript to td element (which can be done in multiple ways)
 but
 in making td element work as a link.

 
 Right, the td element is already consumed by the Item object, so you
 can't attach your link to it.
 
 What exactly should I do to achive this ? What components should I add at
 server side at what JavaScript should I render at markup ?
 If I have to copy-paste bunch of Link class code it looks like some
 design/implementation problem of DataTable (or one of components it has).

 
 What is your requirement exactly?  Is there going to be any text (or
 image) in your cell?  If so, why can't it be a link?
 
 Its really supprising that such common issue is such problematic.
 I hope there is some simple and intuitive solution(if I find one I'll
 post
 it here)

 Thanks for your help
 Regards Daniel


 Michael O'Cleirigh wrote:

 Hi Daniel,

 If you subclass DefaultDataTable there is a protected method call
 newCellItem(...) that you can use to attach the onclick class onto the
 td.

 like:

 class MyDataTable extends DefaultDataTable {
  /* (non-Javadoc)
  * @see
 org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable#newCellItem(java.lang.String,
 int, org.apache.wicket.model.IModel)
  */
 @Override
 protected Item newCellItem(String id, int index, IModel model) {


 Item cell = super.newCellItem(id, index, model);


 cell.add(new AttributeAppender(onclick, new Model
 (someJavascriptCall();));

 return cell;
 }
 }

 Alternately you can use a custom column implementation like the
 FragrementColumn and add the onclick when the cell is created like:

 class MyOnClickColumn extends AbstractColumn {
 ...
 public void populateItem(Item cellItem, String componentId, IModel
 rowModel)
 {
Label cell = new Label(componentId, new PropertyModel(rowModel,
 property))

 cell.add (new AttributeAppender(onclick, new Model
 (someJavascriptCall();));

 cellItem.add(cell);
 }
 }


 I think the second version would attach the onclick to the label within
 the td/td of a cell.

 Regards,

 Mike
 I dont know wicketopia project (and any of its classes like
 FragmentColumn)
 so I can misunderstand your idea but as far as I am able to read that
 code
 It looks like you are adding a link to the table cell, not making a
 cell
 itself a link.

 If I understand your code it is familar to:

 tdlt;agt;textlt;/agt;/td

 but Im wondering how to achive:
 td on click=xyztext/td

 where xyz is code generated by Wicket (like in Link component class)

 If I misundestood you could you give me some more details hot to make
 cell
 itself a link ? (not adding a link to the cell) ?

 Regards
 Daniel



 jwcarman wrote:

 Here's an example where I put a remove link in a DefaultDataTable
 cell:

 https://wicketopia.svn.sourceforge.net/svnroot/wicketopia/trunk/example/src/main/java/org/wicketopia/example/web/page/HomePage.java


 On Tue, Oct 28, 2008 at 6:33 AM, dlipski [EMAIL PROTECTED]
 wrote:

 Hi

 I have one short question:
 How to make entire cell in a DataTable a link ?
 I've read that Link component can be attached not only to lt;agt;
 tags
 but
 also to any other html elements (like tr and td) but I dont know
 how
 to
 use it with DataTable API.

 Regards Daniel
 --
 View this message in context:
 http://www.nabble.com/DataTable-cell-link-tp20204702p20204702.html
 Sent from the Wicket - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]








 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




 --
 View this message in context:
 http://www.nabble.com/DataTable-cell-link-tp20204702p20213839.html
 Sent from the Wicket - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]


 
 

Re: DataTable cell link

2008-10-28 Thread Jeremy Thomerson
Depending on what you are linking TO, it can be very simple.  You can call
urlFor(YourBookmarkablePage.class, pageParamsOrNullIfNone).  So, you could
do:

cellItem.add(new SimpleAttributeModifier(onclick, location.href = ' +
urlFor(YourBookmarkablePage.class, pageParamsOrNullIfNone) + '));

Of course, that JS could be better for triple click problems, etc.

Really, you may just consider using another Repeater rather than DataTable.
DataTable is for a very specific purpose, and it is often easier to roll
your own than make DT fit your purpose.


-- 
Jeremy Thomerson
http://www.wickettraining.com


On Tue, Oct 28, 2008 at 2:05 PM, dlipski [EMAIL PROTECTED] wrote:


 All this solutions are correct but the problem is not in attaching some
 custom Javascript to td element (which can be done in multiple ways) but
 in making td element work as a link.

 What exactly should I do to achive this ? What components should I add at
 server side at what JavaScript should I render at markup ?
 If I have to copy-paste bunch of Link class code it looks like some
 design/implementation problem of DataTable (or one of components it has).

 Its really supprising that such common issue is such problematic.
 I hope there is some simple and intuitive solution(if I find one I'll post
 it here)

 Thanks for your help
 Regards Daniel


 Michael O'Cleirigh wrote:
 
  Hi Daniel,
 
  If you subclass DefaultDataTable there is a protected method call
  newCellItem(...) that you can use to attach the onclick class onto the
  td.
 
  like:
 
  class MyDataTable extends DefaultDataTable {
   /* (non-Javadoc)
   * @see
 
 org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable#newCellItem(java.lang.String,
  int, org.apache.wicket.model.IModel)
   */
  @Override
  protected Item newCellItem(String id, int index, IModel model) {
 
 
  Item cell = super.newCellItem(id, index, model);
 
 
  cell.add(new AttributeAppender(onclick, new Model
  (someJavascriptCall();));
 
  return cell;
  }
  }
 
  Alternately you can use a custom column implementation like the
  FragrementColumn and add the onclick when the cell is created like:
 
  class MyOnClickColumn extends AbstractColumn {
  ...
  public void populateItem(Item cellItem, String componentId, IModel
  rowModel)
  {
 Label cell = new Label(componentId, new PropertyModel(rowModel,
  property))
 
  cell.add (new AttributeAppender(onclick, new Model
  (someJavascriptCall();));
 
  cellItem.add(cell);
  }
  }
 
 
  I think the second version would attach the onclick to the label within
  the td/td of a cell.
 
  Regards,
 
  Mike
  I dont know wicketopia project (and any of its classes like
  FragmentColumn)
  so I can misunderstand your idea but as far as I am able to read that
  code
  It looks like you are adding a link to the table cell, not making a cell
  itself a link.
 
  If I understand your code it is familar to:
 
  tdlt;agt;textlt;/agt;/td
 
  but Im wondering how to achive:
  td on click=xyztext/td
 
  where xyz is code generated by Wicket (like in Link component class)
 
  If I misundestood you could you give me some more details hot to make
  cell
  itself a link ? (not adding a link to the cell) ?
 
  Regards
  Daniel
 
 
 
  jwcarman wrote:
 
  Here's an example where I put a remove link in a DefaultDataTable cell:
 
 
 https://wicketopia.svn.sourceforge.net/svnroot/wicketopia/trunk/example/src/main/java/org/wicketopia/example/web/page/HomePage.java
 
 
  On Tue, Oct 28, 2008 at 6:33 AM, dlipski [EMAIL PROTECTED]
  wrote:
 
  Hi
 
  I have one short question:
  How to make entire cell in a DataTable a link ?
  I've read that Link component can be attached not only to lt;agt;
  tags
  but
  also to any other html elements (like tr and td) but I dont know
  how
  to
  use it with DataTable API.
 
  Regards Daniel
  --
  View this message in context:
  http://www.nabble.com/DataTable-cell-link-tp20204702p20204702.html
  Sent from the Wicket - User mailing list archive at Nabble.com.
 
 
  -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 
  -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 
 
 
 
 
 
  -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 

 --
 View this message in context:
 http://www.nabble.com/DataTable-cell-link-tp20204702p20213839.html
  Sent from the Wicket - User mailing list archive at Nabble.com.


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




Re: DataTable cell link

2008-10-28 Thread Jeremy Thomerson
If that's your problem, I'd suggest using CSS, something like:

TD A {
display: block;
}

This is much better because the anchor will fill the box (fixing your
problem), and you are more compatible (if JS is off, etc).


-- 
Jeremy Thomerson
http://www.wickettraining.com


On Tue, Oct 28, 2008 at 2:42 PM, dlipski [EMAIL PROTECTED] wrote:


 Exaclty, problem is with 'consuming' td element by Item object.

 The problem is that if you have wide column but short text in it some users
 have problem with hitting the text (which is a link) .The idea is to make
 whole td element 'clickable'(or linkable).
 The solution would be if table could have any component as row or cell
 element not only Item object.
 But I know that this is a big change in DataTable class (or one of its
 child
 component class) .



 jwcarman wrote:
 
  On Tue, Oct 28, 2008 at 3:05 PM, dlipski [EMAIL PROTECTED]
  wrote:
 
  All this solutions are correct but the problem is not in attaching some
  custom Javascript to td element (which can be done in multiple ways)
  but
  in making td element work as a link.
 
 
  Right, the td element is already consumed by the Item object, so you
  can't attach your link to it.
 
  What exactly should I do to achive this ? What components should I add
 at
  server side at what JavaScript should I render at markup ?
  If I have to copy-paste bunch of Link class code it looks like some
  design/implementation problem of DataTable (or one of components it
 has).
 
 
  What is your requirement exactly?  Is there going to be any text (or
  image) in your cell?  If so, why can't it be a link?
 
  Its really supprising that such common issue is such problematic.
  I hope there is some simple and intuitive solution(if I find one I'll
  post
  it here)
 
  Thanks for your help
  Regards Daniel
 
 
  Michael O'Cleirigh wrote:
 
  Hi Daniel,
 
  If you subclass DefaultDataTable there is a protected method call
  newCellItem(...) that you can use to attach the onclick class onto the
  td.
 
  like:
 
  class MyDataTable extends DefaultDataTable {
   /* (non-Javadoc)
   * @see
 
 org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable#newCellItem(java.lang.String,
  int, org.apache.wicket.model.IModel)
   */
  @Override
  protected Item newCellItem(String id, int index, IModel model) {
 
 
  Item cell = super.newCellItem(id, index, model);
 
 
  cell.add(new AttributeAppender(onclick, new Model
  (someJavascriptCall();));
 
  return cell;
  }
  }
 
  Alternately you can use a custom column implementation like the
  FragrementColumn and add the onclick when the cell is created like:
 
  class MyOnClickColumn extends AbstractColumn {
  ...
  public void populateItem(Item cellItem, String componentId, IModel
  rowModel)
  {
 Label cell = new Label(componentId, new PropertyModel(rowModel,
  property))
 
  cell.add (new AttributeAppender(onclick, new Model
  (someJavascriptCall();));
 
  cellItem.add(cell);
  }
  }
 
 
  I think the second version would attach the onclick to the label within
  the td/td of a cell.
 
  Regards,
 
  Mike
  I dont know wicketopia project (and any of its classes like
  FragmentColumn)
  so I can misunderstand your idea but as far as I am able to read that
  code
  It looks like you are adding a link to the table cell, not making a
  cell
  itself a link.
 
  If I understand your code it is familar to:
 
  tdlt;agt;textlt;/agt;/td
 
  but Im wondering how to achive:
  td on click=xyztext/td
 
  where xyz is code generated by Wicket (like in Link component class)
 
  If I misundestood you could you give me some more details hot to make
  cell
  itself a link ? (not adding a link to the cell) ?
 
  Regards
  Daniel
 
 
 
  jwcarman wrote:
 
  Here's an example where I put a remove link in a DefaultDataTable
  cell:
 
 
 https://wicketopia.svn.sourceforge.net/svnroot/wicketopia/trunk/example/src/main/java/org/wicketopia/example/web/page/HomePage.java
 
 
  On Tue, Oct 28, 2008 at 6:33 AM, dlipski [EMAIL PROTECTED]
 
  wrote:
 
  Hi
 
  I have one short question:
  How to make entire cell in a DataTable a link ?
  I've read that Link component can be attached not only to lt;agt;
  tags
  but
  also to any other html elements (like tr and td) but I dont know
  how
  to
  use it with DataTable API.
 
  Regards Daniel
  --
  View this message in context:
  http://www.nabble.com/DataTable-cell-link-tp20204702p20204702.html
  Sent from the Wicket - User mailing list archive at Nabble.com.
 
 
 
 -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 
  -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]