Non technical question: Editing registered service provider page help

2017-05-01 Thread Hesketh, Mark
Guys, I have a registered account on confluence but, I can't edit the service 
provider page. I'm missing something or do you need to add me?

cheers.
--
-m.

---
This email, and any attachments, may be confidential and also privileged. If 
you are not the intended recipient, please notify the sender and delete all 
copies of this transmission along with any attachments immediately. You should 
not copy or use it for any purpose, nor disclose its contents to any other 
person.
---


RE: Question on Double Submit and rendering strategy

2014-11-24 Thread Hesketh, Mark
Thanks for that Martin - I understand. Thanks also for the alternate approaches.

I think we might experiment with the AjaxChannel#ACTIVE approach as an 
alternative although we do have the veil approach ready to ship.

Cheers.

-Original Message-
From: Martin Grigorov [mailto:mgrigo...@apache.org]
Sent: Monday, 24 November 2014 7:08 PM
To: users@wicket.apache.org
Subject: Re: Question on Double Submit and rendering strategy

Hi,

What you observe is correct !

Wicket support for Redirect after Post
http://en.wikipedia.org/wiki/Post/Redirect/Get is to prevent double submit of 
a form if the user reloads the page (Ctrl+R or F5) or if the user navigates 
back. In these cases usually the browser would ask you whether you want to 
re-send the form data. With the REDIRECT_TO_XYZ strategies this is avoided.

As you have found out this doesn't cover the cases when the user clicks several 
times on a submit button/link. The only support for this in Wicket is to use 
AjaxChannel#ACTIVE for Ajax submit buttons/links. Using an active channel will 
prevent any following Ajax call while there is an active one with the same 
channel name. But this solution doesn't provide visual feedback for the user. 
It just silently ignores the click event.

Other ways to prevent multiple submits are not so generic and that's why they 
are not provided by Wicket itself.
These include:
- Disable the button/link somehow
Wicket 6.x replaces a with spanem by default but this is not acceptable 
by some applications.
Wicket-Bootstrap https://github.com/l0rdn1kk0n/wicket-bootstrap for example 
follows Bootstrap recommendations for making the button/link look and act as 
disabled
- Show a veil
Some apps prefer to veil only the button. Others the whole screen. Others some 
area, e.g. just the form.
The UI used as a veil also differs for most applications... That's why Wicket 
doesn't provide a generic solution here.

Any feedback about this and other topics in Wicket are very welcome !

On Mon, Nov 24, 2014 at 1:36 AM, Hesketh, Mark mark.hesk...@act.gov.au
wrote:

 Hi

 Please give more details what you try to avoid exactly by making
 changes in this area.
 [MH] Hello again,
 [MH] Well, I'm trying to avoid Double Submit through repeatedly button
 clicking (or submitting a form). We're currently [MH] porting all our
 web applications to Wicket. We have had to include a veil function
 around the Next button [MH] to block subsequent clicks explicitly as
 Wicket's Double Submit prevention (we are using the default
 RENDER_TO_BUFFER render strategy) [MH] is allowing repeated requests
 through. I've stepped through
 WebPageRenderer::respond() and noticed that there's a call [MH] to
 getAndRemoveBufferedResponse() and stopped looking since I could see
 that responses were being discarded. I just assumed that I am
 misunderstanding [MH] the full intent of the Double Submit treatment
 in Wicket. Hope that makes sense. I'm not wanting to *change* Wicket
 here, I'm chasing clarification only given what [MH] what I've stepped
 through and hear that from the maintainers directly. I guess I'm
 confused about what happens when there's more than one duplicate
 request when [MH] clearly the implementation is discarding (by design)
 the buffered response to an identical earlier request.
 [MH]
 [MH] Many thanks

  Hello,
 
  I just wanted to know what the impact of removing the buffered
  response (referring to javadoc below for REDIRECT_TO_BUFFER) for a
  request is if there's presumably a bunch of other duplicate requests
  following it on solving the Double Submit problem.
  (
  http://ci.apache.org/projects/wicket/apidocs/6.x/org/apache/wicket/s
  et
  tings/IRequestCycleSettings.html
  )
 
  I'm puzzled about throwing a response away when I would have thought
  it's buffered and reused to service the (duplicate) requests following?
 
  Many thanks
 
  cheers.
  -m.
 
 
  
  --
  - This email, and any attachments, may be confidential and also
  privileged.
  If you are not the intended recipient, please notify the sender and
  delete all copies of this transmission along with any attachments
  immediately. You should not copy or use it for any purpose, nor
  disclose its contents to any other person.
  
  --
  -
 
 --
 - This email, and any attachments, may be confidential and also
 privileged.
 If you are not the intended recipient, please notify the sender and
 delete all copies of this transmission along with any attachments
 immediately. You should not copy or use it for any purpose, nor
 disclose its contents to any other person.
 --
 -

---
This email, and any attachments, may be confidential and also

RE: Question on Double Submit and rendering strategy

2014-11-23 Thread Hesketh, Mark
Hi

Please give more details what you try to avoid exactly by making changes in 
this area.
[MH] Hello again,
[MH] Well, I'm trying to avoid Double Submit through repeatedly button clicking 
(or submitting a form). We're currently
[MH] porting all our web applications to Wicket. We have had to include a veil 
function around the Next button
[MH] to block subsequent clicks explicitly as Wicket's Double Submit prevention 
(we are using the default RENDER_TO_BUFFER render strategy)
[MH] is allowing repeated requests through. I've stepped through 
WebPageRenderer::respond() and noticed that there's a call
[MH] to getAndRemoveBufferedResponse() and stopped looking since I could see 
that responses were being discarded. I just assumed that I am misunderstanding
[MH] the full intent of the Double Submit treatment in Wicket. Hope that makes 
sense. I'm not wanting to *change* Wicket here, I'm chasing clarification only 
given what
[MH] what I've stepped through and hear that from the maintainers directly. I 
guess I'm confused about what happens when there's more than one duplicate 
request when
[MH] clearly the implementation is discarding (by design) the buffered response 
to an identical earlier request.
[MH]
[MH] Many thanks

 Hello,

 I just wanted to know what the impact of removing the buffered
 response (referring to javadoc below for REDIRECT_TO_BUFFER) for a
 request is if there's presumably a bunch of other duplicate requests
 following it on solving the Double Submit problem.
 (
 http://ci.apache.org/projects/wicket/apidocs/6.x/org/apache/wicket/set
 tings/IRequestCycleSettings.html
 )

 I'm puzzled about throwing a response away when I would have thought
 it's buffered and reused to service the (duplicate) requests following?

 Many thanks

 cheers.
 -m.


 --
 - This email, and any attachments, may be confidential and also
 privileged.
 If you are not the intended recipient, please notify the sender and
 delete all copies of this transmission along with any attachments
 immediately. You should not copy or use it for any purpose, nor
 disclose its contents to any other person.
 --
 -

---
This email, and any attachments, may be confidential and also privileged. If 
you are not the intended recipient, please notify the sender and delete all 
copies of this transmission along with any attachments immediately. You should 
not copy or use it for any purpose, nor disclose its contents to any other 
person.
---


Question on Double Submit and rendering strategy

2014-11-20 Thread Hesketh, Mark
Hello,

I just wanted to know what the impact of removing the buffered response 
(referring to javadoc below for REDIRECT_TO_BUFFER) for a request is if there's 
presumably a bunch of other duplicate requests following it on solving the 
Double Submit problem.
(http://ci.apache.org/projects/wicket/apidocs/6.x/org/apache/wicket/settings/IRequestCycleSettings.html)

I'm puzzled about throwing a response away when I would have thought it's 
buffered and reused to service the (duplicate) requests following?

Many thanks

cheers.
-m.


---
This email, and any attachments, may be confidential and also privileged. If 
you are not the intended recipient, please notify the sender and delete all 
copies of this transmission along with any attachments immediately. You should 
not copy or use it for any purpose, nor disclose its contents to any other 
person.
---


Mixing Wicket + JQuery + JQueryUI to achieve infinite scroll.

2012-03-24 Thread Mark
Unfortunately I am a beginner to Wicket and looking for for guidance on
integrating Wicket + JQuery + JQueryUI in a way to achieve infinite scroll.

Ideally I would aim to achieve something like the following url that allows
you to inject divs that contain both images and text into the page:
http://masonry.desandro.com/demos/infinite-scroll.html.  

Anyone, with any advice on how to achieve this?


From what I read Wicket 1.6 will be out soon and using JQuery as it's AJAX
processor.  Will this change things much?

-- snippet --
http://apache-wicket.1842946.n4.nabble.com/Roadmap-for-Wicket-6-tt3777610.html#none

5. Ajax refactoring to use JQuery and provide proper JQuery integration in
core 





--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/Mixing-Wicket-JQuery-JQueryUI-to-achieve-infinite-scroll-tp4502701p4502701.html
Sent from the Users forum 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: Page Map versions and Ajax Requests

2011-12-09 Thread Mark Lichtenberg
1.5.3. 

I've narrowed the problem to a ListView being present on the page. Whenever 
there's a ListView with setReuseItems set to false (the default) the Page ID 
gets incremented whenever the back button is used to return to the page. I 
confirmed this with a call to getPage().getPageId() in an onComponentTag 
method. After returning via the back button the URL is still at the original 
Page ID while there's a newer version in the page map. 

Without a ListView present on the page using the back button does not increment 
the Page ID and everything works as expected. 

I have a quickstart app that illustrates the problem. Here is the page with the 
applicable code:  http://pastebin.com/jn9czHK8

Mark


On Friday, December 9, 2011 at 9:56 AM, Nazaret Kazarian wrote: 
 Which version of Wicket are you using?
 
 
 2011/12/7 Lichtenberg, Mark mlichtenb...@machenergy.com 
 (mailto:mlichtenb...@machenergy.com):
  I have a page containing a number of AjaxLinks that when clicked fetch data
  and update some panels. When a user leaves one of these pages and returns
  via the back button the state of the page isn't always how they left it.
  However, this behavior happens only when the page is returned to the second
  time. Using the the request logger I've been able to partially explain this
  with the page IDs:
  
  
1. First visit to page X has a page ID of 3
2. AjaxLink requests for this page also have a page ID of 3.
3. User leaves page then returns to page X via the back button; this
request also has ID of 3
4. User clicks AjaxLinks again, but here a new X page is created with an
ID of 5
5. User leaves page and again returns with the back button. Here the
page state is as they left it in #2, and the URL confirms the page ID of 3
  
   I understand using the back button will always take the user to ID 3 since
  it is present in the URL.
  
  My workaround so far is to add the Page component to the target of my
  AjaxLink onClick()s. This increments the page ID whenever an AjaxLink is
  clicked and is reflected in the URL, so the back button always returns to
  the last state.
  
  So I have two questions - Why is a new page X created in step 4 above, and
  why does adding the Page component to the ajax request target make a new
  page map entry?
  
  Thanks,
  
  Mark
 
 -
 To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org 
 (mailto:users-unsubscr...@wicket.apache.org)
 For additional commands, e-mail: users-h...@wicket.apache.org 
 (mailto:users-h...@wicket.apache.org)
 
 




Re: Page Map versions and Ajax Requests

2011-12-09 Thread Mark Lichtenberg
That's exactly what I'm experiencing. In 1.5 it appears there's a few extra 
requests during a reload that I assume are retrieving the latest page version. 
I'll create a bug report. Thanks for your help. 

Mark

On Friday, December 9, 2011 at 1:26 PM, Dan Retzlaff wrote:
 I confirmed this behavior in our application. Simply reloading a page with
 a ListView a few times advances the page ID but not the URL. AJAX links
 know to target the new page ID, but any updates they make get lost if the
 page gets reloaded from the URL. Sounds like a bug to me. Wicket 1.4 didn't
 behave this way.
 
 On Fri, Dec 9, 2011 at 10:26 AM, Dan Retzlaff dretzl...@gmail.com 
 (mailto:dretzl...@gmail.com) wrote:
 
  Without reusing the ListView items, the item.add(...) will get called
  with each render. I expect that'll cause MarkupContainer#addedComponent()
  to WebPage#componentAdded() to WebPage#dirty() which sets a new page ID.
  Sorry I don't have time to test the theory at the moment.
  
  
  On Fri, Dec 9, 2011 at 8:27 AM, Mark Lichtenberg 
  mlichtenb...@machenergy.com (mailto:mlichtenb...@machenergy.com) wrote:
  
   1.5.3.
   
   I've narrowed the problem to a ListView being present on the page.
   Whenever there's a ListView with setReuseItems set to false (the default)
   the Page ID gets incremented whenever the back button is used to return to
   the page. I confirmed this with a call to getPage().getPageId() in an
   onComponentTag method. After returning via the back button the URL is 
   still
   at the original Page ID while there's a newer version in the page map.
   
   Without a ListView present on the page using the back button does not
   increment the Page ID and everything works as expected.
   
   I have a quickstart app that illustrates the problem. Here is the page
   with the applicable code: http://pastebin.com/jn9czHK8
   
   Mark
   
   
   On Friday, December 9, 2011 at 9:56 AM, Nazaret Kazarian wrote:
Which version of Wicket are you using?


2011/12/7 Lichtenberg, Mark mlichtenb...@machenergy.com 
(mailto:mlichtenb...@machenergy.com) (mailto:
   mlichtenb...@machenergy.com (mailto:mlichtenb...@machenergy.com)):
 I have a page containing a number of AjaxLinks that when clicked

   
   fetch data
 and update some panels. When a user leaves one of these pages and

   
   returns
 via the back button the state of the page isn't always how they left

   
   it.
 However, this behavior happens only when the page is returned to the

   
   second
 time. Using the the request logger I've been able to partially

   
   explain this
 with the page IDs:
 
 
 1. First visit to page X has a page ID of 3
 2. AjaxLink requests for this page also have a page ID of 3.
 3. User leaves page then returns to page X via the back button; this
 request also has ID of 3
 4. User clicks AjaxLinks again, but here a new X page is created
 

   
   with an
 ID of 5
 5. User leaves page and again returns with the back button. Here the
 page state is as they left it in #2, and the URL confirms the page
 

   
   ID of 3
 
 I understand using the back button will always take the user to ID 3
   since
 it is present in the URL.
 
 My workaround so far is to add the Page component to the target of my
 AjaxLink onClick()s. This increments the page ID whenever an AjaxLink
 

   
   is
 clicked and is reflected in the URL, so the back button always

   
   returns to
 the last state.
 
 So I have two questions - Why is a new page X created in step 4
   above, and
 why does adding the Page component to the ajax request target make a

   
   new
 page map entry?
 
 Thanks,
 
 Mark

-
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org 
(mailto:users-unsubscr...@wicket.apache.org) (mailto:

   
   users-unsubscr...@wicket.apache.org 
   (mailto:users-unsubscr...@wicket.apache.org))
For additional commands, e-mail: users-h...@wicket.apache.org 
(mailto:users-h...@wicket.apache.org) (mailto:
   
   users-h...@wicket.apache.org (mailto:users-h...@wicket.apache.org))

   
   
  
  
 
 
 
 




Re: Page Map versions and Ajax Requests

2011-12-09 Thread Mark Lichtenberg
I'm seeing requests logged when the RequestLogger is enabled during page 
reloads and when the back button is used. The same code under 1.4 does not. I 
assumed the extra request was to fetch the latest render of the page if it was 
updated via ajax. 

On Friday, December 9, 2011 at 1:59 PM, Dan Retzlaff wrote:

 I wouldn't say there are extra requests, just extra page versions due to
 re-population of the list view. Seems like the re-population process should
 be engineered in a way that doesn't advance the page number. But I'll leave
 that to the experts. :)
 
 On Fri, Dec 9, 2011 at 11:50 AM, Mark Lichtenberg 
 mlichtenb...@machenergy.com (mailto:mlichtenb...@machenergy.com) wrote:
 
  That's exactly what I'm experiencing. In 1.5 it appears there's a few
  extra requests during a reload that I assume are retrieving the latest page
  version. I'll create a bug report. Thanks for your help.
  
  Mark
  
  On Friday, December 9, 2011 at 1:26 PM, Dan Retzlaff wrote:
   I confirmed this behavior in our application. Simply reloading a page
  
  with
   a ListView a few times advances the page ID but not the URL. AJAX links
   know to target the new page ID, but any updates they make get lost if the
   page gets reloaded from the URL. Sounds like a bug to me. Wicket 1.4
   
  
  didn't
   behave this way.
   
   On Fri, Dec 9, 2011 at 10:26 AM, Dan Retzlaff dretzl...@gmail.com 
   (mailto:dretzl...@gmail.com)(mailto:
  dretzl...@gmail.com (mailto:dretzl...@gmail.com)) wrote:
   
Without reusing the ListView items, the item.add(...) will get called
with each render. I expect that'll cause

   
   
  
  MarkupContainer#addedComponent()
to WebPage#componentAdded() to WebPage#dirty() which sets a new page
   
  
  ID.
Sorry I don't have time to test the theory at the moment.


On Fri, Dec 9, 2011 at 8:27 AM, Mark Lichtenberg 
mlichtenb...@machenergy.com (mailto:mlichtenb...@machenergy.com)

   
  
  wrote:

 1.5.3.
 
 I've narrowed the problem to a ListView being present on the page.
 Whenever there's a ListView with setReuseItems set to false (the
 


   
  
  default)
 the Page ID gets incremented whenever the back button is used to

   
  
  return to
 the page. I confirmed this with a call to getPage().getPageId() in an
 onComponentTag method. After returning via the back button the URL
 

   
  
  is still
 at the original Page ID while there's a newer version in the page

   
  
  map.
 
 Without a ListView present on the page using the back button does not
 increment the Page ID and everything works as expected.
 
 I have a quickstart app that illustrates the problem. Here is the
  page
 with the applicable code: http://pastebin.com/jn9czHK8
 
 Mark
 
 
 On Friday, December 9, 2011 at 9:56 AM, Nazaret Kazarian wrote:
  Which version of Wicket are you using?
  
  
  2011/12/7 Lichtenberg, Mark mlichtenb...@machenergy.com 
  (mailto:mlichtenb...@machenergy.com) (mailto:
  mlichtenb...@machenergy.com (mailto:mlichtenb...@machenergy.com)) (mailto:
 mlichtenb...@machenergy.com (mailto:mlichtenb...@machenergy.com)):
   I have a page containing a number of AjaxLinks that when clicked
  
 
 
 fetch data
   and update some panels. When a user leaves one of these pages and
  
 
 
 returns
   via the back button the state of the page isn't always how they
  
 
 

   
  
  left
  
 
 
 it.
   However, this behavior happens only when the page is returned to
  
 
 

   
  
  the
  
 
 
 second
   time. Using the the request logger I've been able to partially
  
 
 
 explain this
   with the page IDs:
   
   
   1. First visit to page X has a page ID of 3
   2. AjaxLink requests for this page also have a page ID of 3.
   3. User leaves page then returns to page X via the back button;
   
  
 
 

   
  
  this
   request also has ID of 3
   4. User clicks AjaxLinks again, but here a new X page is created
   
  
 
 
 with an
   ID of 5
   5. User leaves page and again returns with the back button. Here
   
  
 
 

   
  
  the
   page state is as they left it in #2, and the URL confirms the
  
 

   
  
  page
   
  
 
 
 ID of 3
   
   I understand using the back button will always take the user to
  ID 3
 since
   it is present in the URL.
   
   My workaround so far is to add the Page component to the target
  of my
   AjaxLink onClick()s. This increments the page ID whenever an
  
 

   
  
  AjaxLink
   
  
 
 
 is
   clicked and is reflected in the URL, so the back button always
  
 
 
 returns

Page Map versions and Ajax Requests

2011-12-08 Thread Lichtenberg, Mark
I have a page containing a number of AjaxLinks that when clicked fetch data
and update some panels. When a user leaves one of these pages and returns
via the back button the state of the page isn't always how they left it.
However, this behavior happens only when the page is returned to the second
time. Using the the request logger I've been able to partially explain this
with the page IDs:


   1. First visit to page X has a page ID of 3
   2. AjaxLink requests for this page also have a page ID of 3.
   3. User leaves page then returns to page X via the back button; this
   request also has ID of 3
   4. User clicks AjaxLinks again, but here a new X page is created with an
   ID of 5
   5. User leaves page and again returns with the back button. Here the
   page state is as they left it in #2, and the URL confirms the page ID of 3

 I understand using the back button will always take the user to ID 3 since
it is present in the URL.

My workaround so far is to add the Page component to the target of my
AjaxLink onClick()s. This increments the page ID whenever an AjaxLink is
clicked and is reflected in the URL, so the back button always returns to
the last state.

So I have two questions - Why is a new page X created in step 4 above, and
why does adding the Page component to the ajax request target make a new
page map entry?

Thanks,

Mark


Page Map versions and Ajax Requests

2011-12-07 Thread Mark Lichtenberg
I have a page containing a number of AjaxLinks that when clicked fetch data and 
update some panels. When a user leaves one of these pages and returns via the 
back button the state of the page isn't always how they left it. However, this 
behavior happens only when the page is returned to the second time. Using the 
the request logger I've been able to partially explain this with the page IDs:

First visit to page X has a page ID of 3
AjaxLink requests for this page also have a page ID of 3. 
User leaves page then returns to page X via the back button; this request also 
has ID of 3
User clicks AjaxLinks again, but here a new X page is created with an ID of 5
User leaves page and again returns with the back button. Here the page state is 
as they left it in #2, and the URL confirms the page ID of 3



I understand using the back button will always take the user to ID 3 since it 
is present in the URL. 
My workaround so far is to add the Page component to the target of my AjaxLink 
onClick()s. This increments the page ID whenever an AjaxLink is clicked and is 
reflected in the URL, so the back button always returns to the last state. 
So I have two questions - Why is a new page X created in step 4 above, and why 
does adding the Page component to the ajax request target make a new page map 
entry?
Thanks,
Mark




Wicket newbie seeks redirect idiom

2011-05-30 Thread Mark Petrovic
Hello.  I just finished reading Wicket In Action, and now I'm working
on my first Wicket app.  I have a simple question about page
redirects.

My application's homepage is WelcomePage.java, which I have mounted on
/welcome.  However, if the user has already authenticated and they
have a session, I would like to immediately send them to HomePage.java
if they happen to browse to /welcome.  HomePage.java is a protected
page that contains stuff only a logged user can see.  Whereas
WelcomePage.java is the unauthenticated user's restricted view of the
site.

As a first step, I have chosen to implement this redirect in the
WelcomePage ctor as follows:

public WelcomePage(PageParameters parameters) {
  add(new Label(message, blah));

if (AppSession.get().isAuthenticated()) {
setResponsePage(HomePage.class);
}
}

While checking the session for an authenticated user and setting the
response page to HomePage.class seems to work, I don't know if it
represents the Wicket Way.  I was thinking there may be a more
elegant way to affect the redirect, perhaps with one of the Page
lifecycle methods.

Would someone who has been here be kind enough to comment?

Thank you.


-- 
Mark

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



Re: visural-wicket 0.6.5 released!

2010-11-25 Thread Mark Doyle
Great library.  I always expected more of these since component creation and
reuse is one of Wickets a key strengths.

What I like about this lib is it's clean and finished.  There is no feeling
of immaturity or of a project that has died off.


On Thu, Nov 25, 2010 at 2:02 PM, alex shubert alex.shub...@gmail.comwrote:

 I must ask it: why did you make such fat header at your page? Did you
 every try to take a look at this in 1600*900 notebook screen?
 All you writings begins in bottom second part of the screen. It is not
 my busenees of course, but why dont you kill that nice picture and
 resize header to just contain pragmatic without strong empty white
 line?

 Ah, forget it. At least you did not add banner on the top of all of that
  :)

 --
 Best regards
 Alex

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




Re: Accessing the cells in a row of a DataTable

2010-10-27 Thread Mark Doyle
Of course, here is the entire Panel constructor:

private DropDownChoiceString dropdown;

public AjaxDropDownChoicePanel(String id, IModelString model,
IModelListString choicesModel) {
super(id);
System.out.println(dropdown model =  + model.getObject());

dropdown = new DropDownChoiceString(dropdown, model, choicesModel);
dropdown.setOutputMarkupId(true);
dropdown.add(new AjaxFormComponentUpdatingBehavior(onchange) {
private static final long serialVersionUID = 1L;

protected void onUpdate(AjaxRequestTarget target) {
dropdown.setEnabled(false);
System.err.println(Not yet implemented but you selected  +
dropdown.getDefaultModelObjectAsString());
target.addComponent(dropdown);
}
});
add(dropdown);
}

On Wed, Oct 27, 2010 at 4:54 AM, Jeremy Thomerson jer...@wickettraining.com
 wrote:

 Show the code for the dropdownchoice creation (in your panel)

 On Tue, Oct 26, 2010 at 6:14 PM, Mark Doyle markjohndo...@googlemail.com
 wrote:

  I suppose this is related so I'll keep the thread going.
 
  As part of the above use case I have created a custom PropertyColumn that
  uses a DropDownChoice.
 
  Everything seems to be working except for the initial display, this is
  always set to Choose One.
 
  The code that builds the dropdown is in the populateItem method of the
  custom Property Column.  As you can see it has a model set
 (propertyModel)
  which wraps a String.
 
  PropertyModelString propertyModel = new PropertyModelString(rowModel,
  getPropertyExpression());
  System.out.println(propertyModel value =  + propertyModel.getObject());
  AjaxDropDownChoicePanel cp = new AjaxDropDownChoicePanel(componentId,
  propertyModel, selectionOptionsModel);
 
  The AjaxDropDownChoicePanel is simply a panel that wraps the DropDown in
 a
  some select tags.  It instantiates a DropDownChoice with the passed in
  parameters.  The DropDownChoice is instantiated is of type String, that
  is, DropDownChoiceString.
 
  NOTE: The syso is printing the expected value.
 
 
 
  On Sat, Oct 23, 2010 at 10:18 PM, James Carman
  ja...@carmanconsulting.comwrote:
 
   Use a fragment.  Search this list for my FragmentColumn.  I think I've
   posted it before
   On Oct 23, 2010 4:04 PM, Mark Doyle markjohndo...@googlemail.com
   wrote:
Ok, I've nearly got this finished.
   
Does anybody know how to add a link in populateItem() that doesn't
  render
   as
[cell]? I could create a customised Panel I suppose but it seems
 like
overkill.
   
Maybe a fragment...hmmm
   
   
On Fri, Oct 22, 2010 at 11:56 AM, Mark Doyle
markjohndo...@googlemail.comwrote:
   
Oh and the table isn't the parent:
   
// get the table to rerender
target.addComponent(this.getParent());
   
I had to do a six step parental grab; I'm sure there is a better
  way!
   :D
   
   
   
On Fri, Oct 22, 2010 at 11:54 AM, Mark Doyle 
   markjohndo...@googlemail.com
 wrote:
   
Thanks Mike, this was definitely a great pointer in the right
   direction;
I'm beginning to grasp the column system now.
   
I do have some issues though as detailed below.
   
Firstly, my business model is out of my control so I had to wrap
 that
   in
   a
class that contains the editable state. I don't like doing that it
  but
   it's
useful to see if I can get it to work and it shouldn't effect the
   process on
the whole.
   
The main difference is I'm attempting to do this using different
   columns,
that is, not having a custom column that takes a type and switches.
  The
problem is that the models for each column seem to wrap different
   instances
of the business object.
   
The code below shows how I'm creating the columns. The link in the
AbstractColumn grabs the business object and toggles editable.
The EditablePropertyColumn's populateItem method then get's it's
   rowModel
object (the business object) and checks the editable state. This is
   where
it goes wrong as each column seems to have it's own copy of the
 rows
business model object. I guess this is how the columns with with
   datagrid.
   
/**
* Creates the columns for the synonym data table
*
* @return
*/
@SuppressWarnings(serial)
private ListIColumnEditStateSynonymWrapper createColumns() {
ListIColumnEditStateSynonymWrapper columns = new
ArrayListIColumnEditStateSynonymWrapper();
   
columns.add(new AbstractColumnEditStateSynonymWrapper(new
ModelString(Edit)) {
public void
  populateItem(ItemICellPopulatorEditStateSynonymWrapper
cellItem, String componentId, IModelEditStateSynonymWrapper
 model)
  {
AjaxFallbackLinkEditStateSynonymWrapper editLink = new
AjaxFallbackLinkEditStateSynonymWrapper(componentId, model) {
@Override
public void onClick(AjaxRequestTarget target) {
EditStateSynonymWrapper selected = (EditStateSynonymWrapper)
getDefaultModelObject

Re: Accessing the cells in a row of a DataTable

2010-10-27 Thread Mark Doyle
Of course, here is the entire Panel constructor:

private DropDownChoiceString dropdown;

public AjaxDropDownChoicePanel(String id, IModelString model,
IModelListString choicesModel) {
super(id);
System.out.println(dropdown model =  + model.getObject());

dropdown = new DropDownChoiceString(dropdown, model, choicesModel);
dropdown.setOutputMarkupId(true);
dropdown.add(new AjaxFormComponentUpdatingBehavior(onchange) {
private static final long serialVersionUID = 1L;

protected void onUpdate(AjaxRequestTarget target) {
dropdown.setEnabled(false);
System.err.println(Not yet implemented but you selected  +
dropdown.getDefaultModelObjectAsString());
target.addComponent(dropdown);
}
});
add(dropdown);
}

On Wed, Oct 27, 2010 at 4:54 AM, Jeremy Thomerson jer...@wickettraining.com
 wrote:

 Show the code for the dropdownchoice creation (in your panel)

 On Tue, Oct 26, 2010 at 6:14 PM, Mark Doyle markjohndo...@googlemail.com
 wrote:

  I suppose this is related so I'll keep the thread going.
 
  As part of the above use case I have created a custom PropertyColumn that
  uses a DropDownChoice.
 
  Everything seems to be working except for the initial display, this is
  always set to Choose One.
 
  The code that builds the dropdown is in the populateItem method of the
  custom Property Column.  As you can see it has a model set
 (propertyModel)
  which wraps a String.
 
  PropertyModelString propertyModel = new PropertyModelString(rowModel,
  getPropertyExpression());
  System.out.println(propertyModel value =  + propertyModel.getObject());
  AjaxDropDownChoicePanel cp = new AjaxDropDownChoicePanel(componentId,
  propertyModel, selectionOptionsModel);
 
  The AjaxDropDownChoicePanel is simply a panel that wraps the DropDown in
 a
  some select tags.  It instantiates a DropDownChoice with the passed in
  parameters.  The DropDownChoice is instantiated is of type String, that
  is, DropDownChoiceString.
 
  NOTE: The syso is printing the expected value.
 
 
 
  On Sat, Oct 23, 2010 at 10:18 PM, James Carman
  ja...@carmanconsulting.comwrote:
 
   Use a fragment.  Search this list for my FragmentColumn.  I think I've
   posted it before
   On Oct 23, 2010 4:04 PM, Mark Doyle markjohndo...@googlemail.com
   wrote:
Ok, I've nearly got this finished.
   
Does anybody know how to add a link in populateItem() that doesn't
  render
   as
[cell]? I could create a customised Panel I suppose but it seems
 like
overkill.
   
Maybe a fragment...hmmm
   
   
On Fri, Oct 22, 2010 at 11:56 AM, Mark Doyle
markjohndo...@googlemail.comwrote:
   
Oh and the table isn't the parent:
   
// get the table to rerender
target.addComponent(this.getParent());
   
I had to do a six step parental grab; I'm sure there is a better
  way!
   :D
   
   
   
On Fri, Oct 22, 2010 at 11:54 AM, Mark Doyle 
   markjohndo...@googlemail.com
 wrote:
   
Thanks Mike, this was definitely a great pointer in the right
   direction;
I'm beginning to grasp the column system now.
   
I do have some issues though as detailed below.
   
Firstly, my business model is out of my control so I had to wrap
 that
   in
   a
class that contains the editable state. I don't like doing that it
  but
   it's
useful to see if I can get it to work and it shouldn't effect the
   process on
the whole.
   
The main difference is I'm attempting to do this using different
   columns,
that is, not having a custom column that takes a type and switches.
  The
problem is that the models for each column seem to wrap different
   instances
of the business object.
   
The code below shows how I'm creating the columns. The link in the
AbstractColumn grabs the business object and toggles editable.
The EditablePropertyColumn's populateItem method then get's it's
   rowModel
object (the business object) and checks the editable state. This is
   where
it goes wrong as each column seems to have it's own copy of the
 rows
business model object. I guess this is how the columns with with
   datagrid.
   
/**
* Creates the columns for the synonym data table
*
* @return
*/
@SuppressWarnings(serial)
private ListIColumnEditStateSynonymWrapper createColumns() {
ListIColumnEditStateSynonymWrapper columns = new
ArrayListIColumnEditStateSynonymWrapper();
   
columns.add(new AbstractColumnEditStateSynonymWrapper(new
ModelString(Edit)) {
public void
  populateItem(ItemICellPopulatorEditStateSynonymWrapper
cellItem, String componentId, IModelEditStateSynonymWrapper
 model)
  {
AjaxFallbackLinkEditStateSynonymWrapper editLink = new
AjaxFallbackLinkEditStateSynonymWrapper(componentId, model) {
@Override
public void onClick(AjaxRequestTarget target) {
EditStateSynonymWrapper selected = (EditStateSynonymWrapper)
getDefaultModelObject

Re: Accessing the cells in a row of a DataTable

2010-10-27 Thread Mark Doyle
I think I may have circumnavigated this issue by discovering the wonders of
AjaxEditableLabel and AjaxEditableChoiceLabel :D

I'll post my results when I've tested it.  Hopefully this will be helpful to
somebody else in the future.

On Wed, Oct 27, 2010 at 10:59 AM, Mark Doyle
markjohndo...@googlemail.comwrote:

 Of course, here is the entire Panel constructor:

 private DropDownChoiceString dropdown;

 public AjaxDropDownChoicePanel(String id, IModelString model,
 IModelListString choicesModel) {
 super(id);
 System.out.println(dropdown model =  + model.getObject());

 dropdown = new DropDownChoiceString(dropdown, model, choicesModel);
 dropdown.setOutputMarkupId(true);
 dropdown.add(new AjaxFormComponentUpdatingBehavior(onchange) {
 private static final long serialVersionUID = 1L;

 protected void onUpdate(AjaxRequestTarget target) {
 dropdown.setEnabled(false);
 System.err.println(Not yet implemented but you selected  +
 dropdown.getDefaultModelObjectAsString());
 target.addComponent(dropdown);
 }
 });
 add(dropdown);
 }

 On Wed, Oct 27, 2010 at 4:54 AM, Jeremy Thomerson 
 jer...@wickettraining.com wrote:

 Show the code for the dropdownchoice creation (in your panel)

 On Tue, Oct 26, 2010 at 6:14 PM, Mark Doyle markjohndo...@googlemail.com
 wrote:

  I suppose this is related so I'll keep the thread going.
 
  As part of the above use case I have created a custom PropertyColumn
 that
  uses a DropDownChoice.
 
  Everything seems to be working except for the initial display, this is
  always set to Choose One.
 
  The code that builds the dropdown is in the populateItem method of the
  custom Property Column.  As you can see it has a model set
 (propertyModel)
  which wraps a String.
 
  PropertyModelString propertyModel = new
 PropertyModelString(rowModel,
  getPropertyExpression());
  System.out.println(propertyModel value =  +
 propertyModel.getObject());
  AjaxDropDownChoicePanel cp = new AjaxDropDownChoicePanel(componentId,
  propertyModel, selectionOptionsModel);
 
  The AjaxDropDownChoicePanel is simply a panel that wraps the DropDown in
 a
  some select tags.  It instantiates a DropDownChoice with the passed in
  parameters.  The DropDownChoice is instantiated is of type String, that
  is, DropDownChoiceString.
 
  NOTE: The syso is printing the expected value.
 
 
 
  On Sat, Oct 23, 2010 at 10:18 PM, James Carman
  ja...@carmanconsulting.comwrote:
 
   Use a fragment.  Search this list for my FragmentColumn.  I think I've
   posted it before
   On Oct 23, 2010 4:04 PM, Mark Doyle markjohndo...@googlemail.com
   wrote:
Ok, I've nearly got this finished.
   
Does anybody know how to add a link in populateItem() that doesn't
  render
   as
[cell]? I could create a customised Panel I suppose but it seems
 like
overkill.
   
Maybe a fragment...hmmm
   
   
On Fri, Oct 22, 2010 at 11:56 AM, Mark Doyle
markjohndo...@googlemail.comwrote:
   
Oh and the table isn't the parent:
   
// get the table to rerender
target.addComponent(this.getParent());
   
I had to do a six step parental grab; I'm sure there is a better
  way!
   :D
   
   
   
On Fri, Oct 22, 2010 at 11:54 AM, Mark Doyle 
   markjohndo...@googlemail.com
 wrote:
   
Thanks Mike, this was definitely a great pointer in the right
   direction;
I'm beginning to grasp the column system now.
   
I do have some issues though as detailed below.
   
Firstly, my business model is out of my control so I had to wrap
 that
   in
   a
class that contains the editable state. I don't like doing that it
  but
   it's
useful to see if I can get it to work and it shouldn't effect the
   process on
the whole.
   
The main difference is I'm attempting to do this using different
   columns,
that is, not having a custom column that takes a type and
 switches.
  The
problem is that the models for each column seem to wrap different
   instances
of the business object.
   
The code below shows how I'm creating the columns. The link in the
AbstractColumn grabs the business object and toggles editable.
The EditablePropertyColumn's populateItem method then get's it's
   rowModel
object (the business object) and checks the editable state. This
 is
   where
it goes wrong as each column seems to have it's own copy of the
 rows
business model object. I guess this is how the columns with with
   datagrid.
   
/**
* Creates the columns for the synonym data table
*
* @return
*/
@SuppressWarnings(serial)
private ListIColumnEditStateSynonymWrapper createColumns() {
ListIColumnEditStateSynonymWrapper columns = new
ArrayListIColumnEditStateSynonymWrapper();
   
columns.add(new AbstractColumnEditStateSynonymWrapper(new
ModelString(Edit)) {
public void
  populateItem(ItemICellPopulatorEditStateSynonymWrapper
cellItem

Re: Accessing the cells in a row of a DataTable

2010-10-26 Thread Mark Doyle
I suppose this is related so I'll keep the thread going.

As part of the above use case I have created a custom PropertyColumn that
uses a DropDownChoice.

Everything seems to be working except for the initial display, this is
always set to Choose One.

The code that builds the dropdown is in the populateItem method of the
custom Property Column.  As you can see it has a model set (propertyModel)
which wraps a String.

PropertyModelString propertyModel = new PropertyModelString(rowModel,
getPropertyExpression());
System.out.println(propertyModel value =  + propertyModel.getObject());
AjaxDropDownChoicePanel cp = new AjaxDropDownChoicePanel(componentId,
propertyModel, selectionOptionsModel);

The AjaxDropDownChoicePanel is simply a panel that wraps the DropDown in a
some select tags.  It instantiates a DropDownChoice with the passed in
parameters.  The DropDownChoice is instantiated is of type String, that
is, DropDownChoiceString.

NOTE: The syso is printing the expected value.



On Sat, Oct 23, 2010 at 10:18 PM, James Carman
ja...@carmanconsulting.comwrote:

 Use a fragment.  Search this list for my FragmentColumn.  I think I've
 posted it before
 On Oct 23, 2010 4:04 PM, Mark Doyle markjohndo...@googlemail.com
 wrote:
  Ok, I've nearly got this finished.
 
  Does anybody know how to add a link in populateItem() that doesn't render
 as
  [cell]? I could create a customised Panel I suppose but it seems like
  overkill.
 
  Maybe a fragment...hmmm
 
 
  On Fri, Oct 22, 2010 at 11:56 AM, Mark Doyle
  markjohndo...@googlemail.comwrote:
 
  Oh and the table isn't the parent:
 
  // get the table to rerender
  target.addComponent(this.getParent());
 
  I had to do a six step parental grab; I'm sure there is a better way!
 :D
 
 
 
  On Fri, Oct 22, 2010 at 11:54 AM, Mark Doyle 
 markjohndo...@googlemail.com
   wrote:
 
  Thanks Mike, this was definitely a great pointer in the right
 direction;
  I'm beginning to grasp the column system now.
 
  I do have some issues though as detailed below.
 
  Firstly, my business model is out of my control so I had to wrap that
 in
 a
  class that contains the editable state. I don't like doing that it but
 it's
  useful to see if I can get it to work and it shouldn't effect the
 process on
  the whole.
 
  The main difference is I'm attempting to do this using different
 columns,
  that is, not having a custom column that takes a type and switches. The
  problem is that the models for each column seem to wrap different
 instances
  of the business object.
 
  The code below shows how I'm creating the columns. The link in the
  AbstractColumn grabs the business object and toggles editable.
  The EditablePropertyColumn's populateItem method then get's it's
 rowModel
  object (the business object) and checks the editable state. This is
 where
  it goes wrong as each column seems to have it's own copy of the rows
  business model object. I guess this is how the columns with with
 datagrid.
 
  /**
  * Creates the columns for the synonym data table
  *
  * @return
  */
  @SuppressWarnings(serial)
  private ListIColumnEditStateSynonymWrapper createColumns() {
  ListIColumnEditStateSynonymWrapper columns = new
  ArrayListIColumnEditStateSynonymWrapper();
 
  columns.add(new AbstractColumnEditStateSynonymWrapper(new
  ModelString(Edit)) {
  public void populateItem(ItemICellPopulatorEditStateSynonymWrapper
  cellItem, String componentId, IModelEditStateSynonymWrapper model) {
  AjaxFallbackLinkEditStateSynonymWrapper editLink = new
  AjaxFallbackLinkEditStateSynonymWrapper(componentId, model) {
  @Override
  public void onClick(AjaxRequestTarget target) {
  EditStateSynonymWrapper selected = (EditStateSynonymWrapper)
  getDefaultModelObject();
  System.out.println(selected value =  +
 selected.wrappedSynonym.value);
  selected.setEditing(!selected.isEditing());
 
  // FIXME WHAT!? There must be a better way than this to get the parent
  table. :D
  MarkupContainer dataTable =
 
 getParent().getParent().getParent().getParent().getParent().getParent();
  target.addComponent(dataTable);
  }
  };
  cellItem.add(editLink);
  // cellItem.add(new EditLinkFragment(componentId,
 SynonymAdminPanel.this,
  model));
  }
  });
 
  columns.add(new PropertyColumnEditStateSynonymWrapper(new
  ModelString(Category), wrappedSynonym.category));
  // columns.add(new EditablePropertyColumnEditStateSynonymWrapper(new
  ModelString(State),
  // wrappedSynonym.state, new PropertyModelSynonym(this,
 selected)));
  columns.add(new EditablePropertyColumnEditStateSynonymWrapper(new
  ModelString(State), wrappedSynonym.state));
  columns.add(new PropertyColumnEditStateSynonymWrapper(new
  ModelString(Root), wrappedSynonym.root));
  columns.add(new PropertyColumnEditStateSynonymWrapper(new
  ModelString(Value), wrappedSynonym.value));
  columns.add(new PropertyColumnEditStateSynonymWrapper(new
  ModelString(Rational), wrappedSynonym.rational));
  columns.add(new PropertyColumnEditStateSynonymWrapper(new

Re: Accessing the cells in a row of a DataTable

2010-10-23 Thread Mark Doyle
Ok, I've nearly got this finished.

Does anybody know how to add a link in populateItem() that doesn't render as
[cell]?  I could create a customised Panel I suppose but it seems like
overkill.

Maybe a fragment...hmmm


On Fri, Oct 22, 2010 at 11:56 AM, Mark Doyle
markjohndo...@googlemail.comwrote:

 Oh and the table isn't the parent:

 // get the table to rerender
  target.addComponent(this.getParent());

 I had to do a six step parental grab; I'm sure there is a better way! :D



 On Fri, Oct 22, 2010 at 11:54 AM, Mark Doyle markjohndo...@googlemail.com
  wrote:

 Thanks Mike, this was definitely a great pointer in the right direction;
 I'm beginning to grasp the column system now.

 I do have some issues though as detailed below.

 Firstly, my business model is out of my control so I had to wrap that in a
 class that contains the editable state.  I don't like doing that it but it's
 useful to see if I can get it to work and it shouldn't effect the process on
 the whole.

 The main difference is I'm attempting to do this using different columns,
 that is, not having a custom column that takes a type and switches.  The
 problem is that the models for each column seem to wrap different instances
 of the business object.

 The code below shows how I'm creating the columns.  The link in the
 AbstractColumn grabs the business object and toggles editable.
  The EditablePropertyColumn's populateItem method then get's it's rowModel
 object (the business object) and checks the editable state.  This is where
 it goes wrong as each column seems to have it's own copy of the rows
 business model object.  I guess this is how the columns with with datagrid.

 /**
  * Creates the columns for the synonym data table
  *
  * @return
  */
 @SuppressWarnings(serial)
  private ListIColumnEditStateSynonymWrapper createColumns() {
 ListIColumnEditStateSynonymWrapper columns = new
 ArrayListIColumnEditStateSynonymWrapper();

 columns.add(new AbstractColumnEditStateSynonymWrapper(new
 ModelString(Edit)) {
  public void populateItem(ItemICellPopulatorEditStateSynonymWrapper
 cellItem, String componentId, IModelEditStateSynonymWrapper model) {
  AjaxFallbackLinkEditStateSynonymWrapper editLink = new
 AjaxFallbackLinkEditStateSynonymWrapper(componentId, model) {
 @Override
  public void onClick(AjaxRequestTarget target) {
 EditStateSynonymWrapper selected = (EditStateSynonymWrapper)
 getDefaultModelObject();
  System.out.println(selected value =  + selected.wrappedSynonym.value);
 selected.setEditing(!selected.isEditing());

 // FIXME WHAT!? There must be a better way than this to get the parent
 table. :D
 MarkupContainer dataTable =
 getParent().getParent().getParent().getParent().getParent().getParent();
  target.addComponent(dataTable);
 }
 };
  cellItem.add(editLink);
 // cellItem.add(new EditLinkFragment(componentId, SynonymAdminPanel.this,
 model));
  }
 });

 columns.add(new PropertyColumnEditStateSynonymWrapper(new
 ModelString(Category), wrappedSynonym.category));
  // columns.add(new EditablePropertyColumnEditStateSynonymWrapper(new
 ModelString(State),
 // wrappedSynonym.state, new PropertyModelSynonym(this, selected)));
  columns.add(new EditablePropertyColumnEditStateSynonymWrapper(new
 ModelString(State), wrappedSynonym.state));
  columns.add(new PropertyColumnEditStateSynonymWrapper(new
 ModelString(Root), wrappedSynonym.root));
 columns.add(new PropertyColumnEditStateSynonymWrapper(new
 ModelString(Value), wrappedSynonym.value));
  columns.add(new PropertyColumnEditStateSynonymWrapper(new
 ModelString(Rational), wrappedSynonym.rational));
  columns.add(new PropertyColumnEditStateSynonymWrapper(new
 ModelString(Taxonomy parent), wrappedSynonym.taxonomyParent));

 return columns;
 }



 On Thu, Oct 21, 2010 at 3:50 PM, Michael O'Cleirigh 
 michael.ocleir...@rivulet.ca wrote:

  Hi Mark,

 The cell's of a datatable are created by the IColumn.  So you need to
 create a wrapping object or additional IModel that contains the edit-ability
 of each row and then use that inside the populateItem(...) method of the
 column to figure out which case to show (i.e. the label or the textfield).

 One way to persist the change immediately is to use an
 AjaxFormComponentUpdatingBehavior on the onblur event of the textfield to
 push the changes through.

 Do something like this:

 class MyColumn extends AbstractColumnBusinessObject {

public static enum ColumnType { LINK, COL1, COL2 };

private ColumnType type;

public MyColumn (IModelStringheader, ColumnType type) {
super (header);
this.type = type;
}
@Override
public void populateItem(ItemICellPopulatorBusinessObject
 cellItem,
String componentId, IModelBusinessObject rowModel) {


switch (this.type) {

case LINK :
// add in the ajax link to the cell item
// inside the onclick do:
// get the row model object and then set its editable
 field

Re: Accessing the cells in a row of a DataTable

2010-10-22 Thread Mark Doyle
Thanks Mike, this was definitely a great pointer in the right direction; I'm
beginning to grasp the column system now.

I do have some issues though as detailed below.

Firstly, my business model is out of my control so I had to wrap that in a
class that contains the editable state.  I don't like doing that it but it's
useful to see if I can get it to work and it shouldn't effect the process on
the whole.

The main difference is I'm attempting to do this using different columns,
that is, not having a custom column that takes a type and switches.  The
problem is that the models for each column seem to wrap different instances
of the business object.

The code below shows how I'm creating the columns.  The link in the
AbstractColumn grabs the business object and toggles editable.
 The EditablePropertyColumn's populateItem method then get's it's rowModel
object (the business object) and checks the editable state.  This is where
it goes wrong as each column seems to have it's own copy of the rows
business model object.  I guess this is how the columns with with datagrid.

/**
 * Creates the columns for the synonym data table
 *
 * @return
 */
@SuppressWarnings(serial)
private ListIColumnEditStateSynonymWrapper createColumns() {
ListIColumnEditStateSynonymWrapper columns = new
ArrayListIColumnEditStateSynonymWrapper();

columns.add(new AbstractColumnEditStateSynonymWrapper(new
ModelString(Edit)) {
 public void populateItem(ItemICellPopulatorEditStateSynonymWrapper
cellItem, String componentId, IModelEditStateSynonymWrapper model) {
AjaxFallbackLinkEditStateSynonymWrapper editLink = new
AjaxFallbackLinkEditStateSynonymWrapper(componentId, model) {
@Override
public void onClick(AjaxRequestTarget target) {
EditStateSynonymWrapper selected = (EditStateSynonymWrapper)
getDefaultModelObject();
System.out.println(selected value =  + selected.wrappedSynonym.value);
selected.setEditing(!selected.isEditing());

// FIXME WHAT!? There must be a better way than this to get the parent
table. :D
MarkupContainer dataTable =
getParent().getParent().getParent().getParent().getParent().getParent();
target.addComponent(dataTable);
}
};
cellItem.add(editLink);
// cellItem.add(new EditLinkFragment(componentId, SynonymAdminPanel.this,
model));
}
});

columns.add(new PropertyColumnEditStateSynonymWrapper(new
ModelString(Category), wrappedSynonym.category));
// columns.add(new EditablePropertyColumnEditStateSynonymWrapper(new
ModelString(State),
// wrappedSynonym.state, new PropertyModelSynonym(this, selected)));
columns.add(new EditablePropertyColumnEditStateSynonymWrapper(new
ModelString(State), wrappedSynonym.state));
columns.add(new PropertyColumnEditStateSynonymWrapper(new
ModelString(Root), wrappedSynonym.root));
columns.add(new PropertyColumnEditStateSynonymWrapper(new
ModelString(Value), wrappedSynonym.value));
columns.add(new PropertyColumnEditStateSynonymWrapper(new
ModelString(Rational), wrappedSynonym.rational));
columns.add(new PropertyColumnEditStateSynonymWrapper(new
ModelString(Taxonomy parent), wrappedSynonym.taxonomyParent));

return columns;
}



On Thu, Oct 21, 2010 at 3:50 PM, Michael O'Cleirigh 
michael.ocleir...@rivulet.ca wrote:

  Hi Mark,

 The cell's of a datatable are created by the IColumn.  So you need to
 create a wrapping object or additional IModel that contains the edit-ability
 of each row and then use that inside the populateItem(...) method of the
 column to figure out which case to show (i.e. the label or the textfield).

 One way to persist the change immediately is to use an
 AjaxFormComponentUpdatingBehavior on the onblur event of the textfield to
 push the changes through.

 Do something like this:

 class MyColumn extends AbstractColumnBusinessObject {

public static enum ColumnType { LINK, COL1, COL2 };

private ColumnType type;

public MyColumn (IModelStringheader, ColumnType type) {
super (header);
this.type = type;
}
@Override
public void populateItem(ItemICellPopulatorBusinessObject cellItem,
String componentId, IModelBusinessObject rowModel) {


switch (this.type) {

case LINK :
// add in the ajax link to the cell item
// inside the onclick do:
// get the row model object and then set its editable field.
cellItem.add(new AjaxLink(componentId) {
public void onClick(AjaxRequestTarget target) {
  BusinessObject bo = rowModel.getObject();


   bo.setEditable(true);
// get the table to rerender
target.addComponent(this.getParent());
}
});

break;

case COL1:
case COL2:

BusinessObject bo = rowModel.getObject();


if (bo.isEditable

Re: Accessing the cells in a row of a DataTable

2010-10-22 Thread Mark Doyle
Oh and the table isn't the parent:
// get the table to rerender
 target.addComponent(this.getParent());

I had to do a six step parental grab; I'm sure there is a better way! :D



On Fri, Oct 22, 2010 at 11:54 AM, Mark Doyle
markjohndo...@googlemail.comwrote:

 Thanks Mike, this was definitely a great pointer in the right direction;
 I'm beginning to grasp the column system now.

 I do have some issues though as detailed below.

 Firstly, my business model is out of my control so I had to wrap that in a
 class that contains the editable state.  I don't like doing that it but it's
 useful to see if I can get it to work and it shouldn't effect the process on
 the whole.

 The main difference is I'm attempting to do this using different columns,
 that is, not having a custom column that takes a type and switches.  The
 problem is that the models for each column seem to wrap different instances
 of the business object.

 The code below shows how I'm creating the columns.  The link in the
 AbstractColumn grabs the business object and toggles editable.
  The EditablePropertyColumn's populateItem method then get's it's rowModel
 object (the business object) and checks the editable state.  This is where
 it goes wrong as each column seems to have it's own copy of the rows
 business model object.  I guess this is how the columns with with datagrid.

 /**
  * Creates the columns for the synonym data table
  *
  * @return
  */
 @SuppressWarnings(serial)
  private ListIColumnEditStateSynonymWrapper createColumns() {
 ListIColumnEditStateSynonymWrapper columns = new
 ArrayListIColumnEditStateSynonymWrapper();

 columns.add(new AbstractColumnEditStateSynonymWrapper(new
 ModelString(Edit)) {
  public void populateItem(ItemICellPopulatorEditStateSynonymWrapper
 cellItem, String componentId, IModelEditStateSynonymWrapper model) {
  AjaxFallbackLinkEditStateSynonymWrapper editLink = new
 AjaxFallbackLinkEditStateSynonymWrapper(componentId, model) {
 @Override
  public void onClick(AjaxRequestTarget target) {
 EditStateSynonymWrapper selected = (EditStateSynonymWrapper)
 getDefaultModelObject();
  System.out.println(selected value =  + selected.wrappedSynonym.value);
 selected.setEditing(!selected.isEditing());

 // FIXME WHAT!? There must be a better way than this to get the parent
 table. :D
 MarkupContainer dataTable =
 getParent().getParent().getParent().getParent().getParent().getParent();
  target.addComponent(dataTable);
 }
 };
  cellItem.add(editLink);
 // cellItem.add(new EditLinkFragment(componentId, SynonymAdminPanel.this,
 model));
  }
 });

 columns.add(new PropertyColumnEditStateSynonymWrapper(new
 ModelString(Category), wrappedSynonym.category));
  // columns.add(new EditablePropertyColumnEditStateSynonymWrapper(new
 ModelString(State),
 // wrappedSynonym.state, new PropertyModelSynonym(this, selected)));
  columns.add(new EditablePropertyColumnEditStateSynonymWrapper(new
 ModelString(State), wrappedSynonym.state));
  columns.add(new PropertyColumnEditStateSynonymWrapper(new
 ModelString(Root), wrappedSynonym.root));
 columns.add(new PropertyColumnEditStateSynonymWrapper(new
 ModelString(Value), wrappedSynonym.value));
  columns.add(new PropertyColumnEditStateSynonymWrapper(new
 ModelString(Rational), wrappedSynonym.rational));
  columns.add(new PropertyColumnEditStateSynonymWrapper(new
 ModelString(Taxonomy parent), wrappedSynonym.taxonomyParent));

 return columns;
 }



 On Thu, Oct 21, 2010 at 3:50 PM, Michael O'Cleirigh 
 michael.ocleir...@rivulet.ca wrote:

  Hi Mark,

 The cell's of a datatable are created by the IColumn.  So you need to
 create a wrapping object or additional IModel that contains the edit-ability
 of each row and then use that inside the populateItem(...) method of the
 column to figure out which case to show (i.e. the label or the textfield).

 One way to persist the change immediately is to use an
 AjaxFormComponentUpdatingBehavior on the onblur event of the textfield to
 push the changes through.

 Do something like this:

 class MyColumn extends AbstractColumnBusinessObject {

public static enum ColumnType { LINK, COL1, COL2 };

private ColumnType type;

public MyColumn (IModelStringheader, ColumnType type) {
super (header);
this.type = type;
}
@Override
public void populateItem(ItemICellPopulatorBusinessObject cellItem,
String componentId, IModelBusinessObject rowModel) {


switch (this.type) {

case LINK :
// add in the ajax link to the cell item
// inside the onclick do:
// get the row model object and then set its editable
 field.
cellItem.add(new AjaxLink(componentId) {
public void onClick(AjaxRequestTarget target) {
  BusinessObject bo = rowModel.getObject();


   bo.setEditable(true);
// get the table

Accessing the cells in a row of a DataTable

2010-10-21 Thread Mark Doyle
Hi all,

I'm having a bit of trouble wrapping my head around the DataTable with
regards to what I need to do.

The perfect example of my goal is in Wicket Examples, namely, the Ajax
Editable Tree Table:
http://wicketstuff.org/wicket14/ajax/tree/table/editable.0

http://wicketstuff.org/wicket14/ajax/tree/table/editable.0Rather than use
the Tree table I must alter an existing DataTable.  I was thinking that
I could create an editable textfield for the cells which I could enable or
disable using an edit link in the first column.

A bit like this:

Edit | col1 | col2

edit | text  | ksfuh
-
edit | text  | fsdkl

Using the edit link I can get the model object of the row but I'm not sure
how I can get the row that represents this and set it's cells to editable.

The Editable text field is much like the one in the example and with the
entire table wrapped in a form.  This means I can deal with the submission
of the changes easy enough.


Perhaps this is the wrong way to go about ithmmm, thoughts?


Re: Trouble creating a behaviour that adds JS and also a Body onLoad event

2010-07-31 Thread Mark Doyle
Ah ok, I'll test that.  I never thought of just adding it to the Page.


What, if any, is the difference between this and adding the behaviour to the
WebPage which is a kind of Component?


On Fri, Jul 30, 2010 at 7:03 PM, Martin Makundi 
martin.maku...@koodaripalvelut.com wrote:

 Hi!

 You could try this:

 public class HomePage extends WebPage implements IHeaderContributor {
  @Override
  public void renderHead(IHeaderResponse response) {
response.renderOnLoadJavascript(javascript)
  }


 **
 Martin

 2010/7/30 Mark Doyle markjohndo...@googlemail.com:
  Firstly, I'm having some trouble finding a decent behaviour tutorial.  If
  anybody knows of one post a link up.
 
  Now, the problem I am having is creating a behaviour that adds some JS to
  the head and sets an onLoad method.  The JS project instructs users to
 add:
 
  body onload=jsfunctionhere ( options, callback );
 
  but I'm not sure how Wicket supports this.
 
  Any ideas?
 
  Cheers
 

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




Re: Trouble creating a behaviour that adds JS and also a Body onLoad event

2010-07-31 Thread Mark Doyle
Yeah, I actually messed up the behaviour because I never noticed the
rendOnLoad method.

I've done as you suggested in the behaviour and then simply added that to
the component.  It works perfectly, thanks Martin.


The progression to more advanced Wicket certainly requires more web specific
knowledge that Wicket has shielded me from in the past :)


On Sat, Jul 31, 2010 at 12:48 PM, Martin Makundi 
martin.maku...@koodaripalvelut.com wrote:

 Headercontribution can be added to many things ...

 2010/7/31 Mark Doyle markjohndo...@googlemail.com:
  Ah ok, I'll test that.  I never thought of just adding it to the Page.
 
 
  What, if any, is the difference between this and adding the behaviour to
 the
  WebPage which is a kind of Component?
 
 
  On Fri, Jul 30, 2010 at 7:03 PM, Martin Makundi 
  martin.maku...@koodaripalvelut.com wrote:
 
  Hi!
 
  You could try this:
 
  public class HomePage extends WebPage implements IHeaderContributor {
   @Override
   public void renderHead(IHeaderResponse response) {
 response.renderOnLoadJavascript(javascript)
   }
 
 
  **
  Martin
 
  2010/7/30 Mark Doyle markjohndo...@googlemail.com:
   Firstly, I'm having some trouble finding a decent behaviour tutorial.
  If
   anybody knows of one post a link up.
  
   Now, the problem I am having is creating a behaviour that adds some JS
 to
   the head and sets an onLoad method.  The JS project instructs users to
  add:
  
   body onload=jsfunctionhere ( options, callback );
  
   but I'm not sure how Wicket supports this.
  
   Any ideas?
  
   Cheers
  
 
  -
  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




Trouble creating a behaviour that adds JS and also a Body onLoad event

2010-07-30 Thread Mark Doyle
Firstly, I'm having some trouble finding a decent behaviour tutorial.  If
anybody knows of one post a link up.

Now, the problem I am having is creating a behaviour that adds some JS to
the head and sets an onLoad method.  The JS project instructs users to add:

body onload=jsfunctionhere ( options, callback );

but I'm not sure how Wicket supports this.

Any ideas?

Cheers


Re: Best way to hide a component

2010-07-23 Thread Mark Doyle
Yeah, I do something similar.

You can override the isVisible method in your components, possibly
adding some logic that ties the visibility to a variable.  You only
have to manage the one variable then and all the components will know
when to display or not.

On Fri, Jul 23, 2010 at 9:02 AM, Nivedan Nadaraj shravann...@gmail.com wrote:
 I have done the setVisible too for hiding components. Sometimes if there
 were a group of them, placing them in a container(WebMarkupContainer)
 and setting the visibility to t/f on the container works too.

 Cheers
 Niv


 On Fri, Jul 23, 2010 at 2:36 PM, Andrea Selva selva.an...@gmail.com wrote:

 Hi,
 Instead of switching between components, i think that using the setVisible
 method of component class could be a better solution. This is the principle
 i read in the in Wicket in Action book when the want to hide a container of
 other thing.
 I hope this could help you
  Andrea

 On Thu, Jul 22, 2010 at 11:22 PM, mgoodson matt...@spidertracks.com
 wrote:

 
  Hi, this could be a stupid question but I am just wondering what the best
  way
  is to hide a component.
  Say I have a button on a form and when it renders sometimes I want it to
  show and some times not.
  I could either use 2 fragments, one with the button in it and one that's
  empty and switch between the two. Or the other option that I can think of
  is
  to turn the visibility on and off.
  Anyone got any reasons for or against with option?
  Thanks
  --
  View this message in context:
 
 http://apache-wicket.1842946.n4.nabble.com/Best-way-to-hide-a-component-tp2299412p2299412.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



Sub tabs in Tabbed Panel

2010-07-23 Thread Mark Doyle
Hi all,

Is there a component that will allows me to add a subset of panel
links to a Tabbed panel which themselves link to new panels?

Perhaps an example of the finished article would explain it better :)
http://www.webdesignerwall.com/tutorials/css3-dropdown-menu/

I guess some tab links would change the panel whilst others would need
a rollover effect that displays the sub-tab link.  The sub tab links
would then behave as normal tabs.


If there is nothing out there already I guess hacking up an extended
TabbedPanel is the only course of action!

Cheers

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



RE: Wicket and JEE6

2010-03-29 Thread Ericksen, Mark W (IS)
Thanks Olivier, Iskandar, and James!

After getting Weld integration to work with the weld-wicket jar I
realized that the integration is limited to classes that subclass from
WebPage (or Page I suppose) to work within a request cycle.  I cannot
inject a DAO into a session or a singleton into an application class for
example.  In a JSF2 project there is no limitations.  Plus the ability
to annotate scope would be nice.

This makes me wonder what the future holds for Wicket and JEE6.  Is
there work being done to fully integrate Wicket with JEE6's newly
defined set of supported JSRs?

It would be nice to see a comparison chart of JEE6 features and Wicket's
current and expected future support for such features.  I've been
searching for something like this but haven't found anything.

I'd love to see Wicket fully support JEE6 and become a drop in
replacement for JSF2.  This doesn't seem to be the case just yet.  If
I'm wrong be sure to let me know! 

-Mark



-Original Message-
From: Olivier Bourgeois [mailto:olivier.bourgeois@gmail.com] 
Sent: Monday, March 29, 2010 2:45 AM
To: users@wicket.apache.org
Subject: Re: Wicket and JEE6

Hi,

Wicket has very good support in Weld, but to make it work I had to
update
the weld-integration.jar, otherwise the sample Numberguess application
is
looking for an unexisting method in the 1.0.0 Weld API : this is your
problem.

If you don't want to do it by hand like suggested by Iskandar, you can
download one of the Glassfish nightly builds, this is what I have done.
The
latest builds are integrating Weld 1.0.1-final and the problem vanishes.

If you want, I can provide you the maven profile to make the sample work
nicely when you hit the run button in Netbeans, because there is
another
problem with the samples : the maven profile is not including the slf4j
libraries, so there is an error in Glassfish when you run the sample. I
assume this may be your next problem :)

Also, you may run into trouble with the JPA2 code generation if you are
using maven. But if you are using Eclipse annotation preprocessor to
generate the metadata, you won't have the problem.

--
Olivier

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



Wicket and JEE6

2010-03-26 Thread Ericksen, Mark W (IS)
Hi,

 

I'm building a new java project using all JEE6 technologies.  That means
I'm using JPA, CDI, and JSF2 for example. Each layer came together great
with fully annotated classes until I got to the JSF2 layer which drove
me crazy because JSF wants to mess with HTML element ids and names.   In
looking for alternative view layers I came across Wicket.  The
technology seems great in terms of its philosophy to keep presentation
code separate, except I'm not finding much information about its support
for JEE6 technologies.

 

In particular searches for support for CDI (aka WebBeans, aka Weld) only
got me to an old example in the Seam project.  I cannot find any current
references to using Weld within a Wicket project where I can use
annotations such as @Inject, @Named, @ApplicationScoped, etc.  

 

So my very first question for this list of experts is this:  Is there
currently any support for Weld in Wicket?  Downloading the Weld project
from JBoss, I included the weld-wicket.jar into my project and my
application is subclassed from WeldApplication.  No such luck.  Any
class injected using @Inject is still null.

 

I am using GlassFish v3 which has all the JEE6 goodies included.
Developing with Eclipse.

 

Any help is *greatly* appreciated!

 

-Mark

 

 



RE: Wicket and JEE6

2010-03-26 Thread Ericksen, Mark W (IS)
Weld claims support, I don't know about built-in.

When I use @Inject in a Wicket WebPage subclass the objects are null.
Like I mentioned below, I added weld-wicket.jar and subclassed the
WeldApplication and the injected objects in the Wicket WebPage subclass
are still null.

This was from following this example:
http://docs.jboss.org/weld/reference/1.0.0/en-US/html/viewlayers.html

If you track down the example code it seems that the examples from JBoss
are using older versions of Wicket and Weld/Seam so I don't know if
something has broken in either project, wicket or weld.

Injection worked like a charm in a JSF2 controller class so I don't know
what going wrong or what supporting jar is missing.

Any additional help is greatly appreciated!

-Mark


-Original Message-
From: James Carman [mailto:jcar...@carmanconsulting.com] 
Sent: Friday, March 26, 2010 10:52 AM
To: users@wicket.apache.org
Subject: Re: Wicket and JEE6

Weld has wicket support built-in I believe.

On Fri, Mar 26, 2010 at 12:52 PM, Ericksen, Mark W (IS) 
mark.erick...@ngc.com wrote:

 Hi,



 I'm building a new java project using all JEE6 technologies.  That
means
 I'm using JPA, CDI, and JSF2 for example. Each layer came together
great
 with fully annotated classes until I got to the JSF2 layer which drove
 me crazy because JSF wants to mess with HTML element ids and names.
In
 looking for alternative view layers I came across Wicket.  The
 technology seems great in terms of its philosophy to keep presentation
 code separate, except I'm not finding much information about its
support
 for JEE6 technologies.



 In particular searches for support for CDI (aka WebBeans, aka Weld)
only
 got me to an old example in the Seam project.  I cannot find any
current
 references to using Weld within a Wicket project where I can use
 annotations such as @Inject, @Named, @ApplicationScoped, etc.



 So my very first question for this list of experts is this:  Is there
 currently any support for Weld in Wicket?  Downloading the Weld
project
 from JBoss, I included the weld-wicket.jar into my project and my
 application is subclassed from WeldApplication.  No such luck.  Any
 class injected using @Inject is still null.



 I am using GlassFish v3 which has all the JEE6 goodies included.
 Developing with Eclipse.



 Any help is *greatly* appreciated!



 -Mark







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



RE: Wicket and JEE6

2010-03-26 Thread Ericksen, Mark W (IS)
Warning: Long Response with sample code to illustrate issue.

I ran the following code in Glassfish v3 with the following jars:
portlet-api_2.0_spec-1.0.jar   (someone is relying on this??)
slf4j-api-1.4.2.jar
slf4j-jdk14-1.4.2.jar
wicket-1.4.7.jar

Be sure to add an empty beans.xml to the WEB-INF folder.

After starting up Glassfish, type the following in the browser
(WicketTest is the name of my project, yours may vary):

localhost:8080/WicketTest/ 
The output it: No Util Class

localhost:8080/WicketTest/jsf.faces
The output is: Hello World!


Code follows


web.xml:

?xml version=1.0 encoding=UTF-8?
web-app xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance;
xmlns=http://java.sun.com/xml/ns/javaee;
xmlns:web=http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd;
xsi:schemaLocation=http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd; id=WebApp_ID
version=2.5
  display-nameWicketTest/display-name

  servlet
servlet-nameFaces Servlet/servlet-name
servlet-classjavax.faces.webapp.FacesServlet/servlet-class
load-on-startup1/load-on-startup
  /servlet

  servlet-mapping
servlet-nameFaces Servlet/servlet-name
url-pattern/faces/*/url-pattern
url-pattern*.faces/url-pattern
  /servlet-mapping

  filter
filter-namewicket example/filter-name
 
filter-classorg.apache.wicket.protocol.http.WicketFilter/filter-class

init-param
  param-nameapplicationClassName/param-name
  param-valuecom.example.wicket.ExampleApplication/param-value
/init-param
  /filter

  filter-mapping
filter-namewicket example/filter-name
url-pattern/*/url-pattern
  /filter-mapping

/web-app


EntityUtil.java:

package com.example.wicket;

public class EntityUtil {

public String getEntity() {
return Hello World!;
}
}


ExampleApplication.java:


package com.example.wicket;

import org.apache.wicket.Page;
import org.apache.wicket.protocol.http.WebApplication;


public class ExampleApplication extends WebApplication {


@Override
public Class? extends Page getHomePage() {
return HomePage.class;
}

}


HomePage.java:


package com.example.wicket;

import javax.inject.Inject;

import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.Model;



public class HomePage extends WebPage {

@Inject private EntityUtil util;

public HomePage() {
super();
add(new Label(hello, new ModelString(this.getHello(;
}

private String getHello() { return (null != util) ? util.getEntity()
: No Util Class; }
}


HomePage.html:


!DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN
http://www.w3.org/TR/html4/loose.dtd;
html xmlns:wicket=http://wicket.apache.org;
  head
meta http-equiv=Content-Type content=text/html;
charset=ISO-8859-1
titleInsert wicket title here/title
  /head
  body
span wicket:id=helloYo!/span
  /body
/html


jsf.xhtml (in context root):


!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd;

html xmlns=http://www.w3.org/1999/xhtml;
  xmlns:h=http://java.sun.com/jsf/html;

  h:head
  titleInsert jsf title here/title
  /h:head
  h:body
span#{controller.hello}/span
  /h:body
/html


Controller.java:


package com.example.wicket;

import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.inject.Named;


@Named  @RequestScoped
public class Controller {

@Inject private EntityUtil util;

public String getHello() { return (null != util) ? util.getEntity()
: No Util Class; }
}






-Original Message-
From: James Carman [mailto:jcar...@carmanconsulting.com] 
Sent: Friday, March 26, 2010 11:36 AM
To: users@wicket.apache.org
Subject: Re: Wicket and JEE6

I started a JSR-299 integration project a while back, but at the time
there
was no portable way (across vendors) to get to the stuff you needed to
inject into your components.  I believe that's been fixed in the latest
API,
but I haven't had a chance to dig in and verify that and then use it.
My
guess is that there's really not that much to it (my code was pretty
small).

On Fri, Mar 26, 2010 at 1:35 PM, Ericksen, Mark W (IS) 
mark.erick...@ngc.com wrote:

 Weld claims support, I don't know about built-in.

 When I use @Inject in a Wicket WebPage subclass the objects are null.
 Like I mentioned below, I added weld-wicket.jar and subclassed the
 WeldApplication and the injected objects in the Wicket WebPage
subclass
 are still null.

 This was from following this example:
 http://docs.jboss.org/weld/reference/1.0.0/en-US/html/viewlayers.html

 If you track down the example code it seems that the examples from
JBoss
 are using older versions of Wicket and Weld/Seam so I don't know if
 something has broken in either project, wicket or weld.

 Injection worked like a charm in a JSF2 controller class so I don't
know
 what going wrong

RE: Wicket and JEE6

2010-03-26 Thread Ericksen, Mark W (IS)
Thanks Josh.  

With your idea in mind I dug deeper into what Weld's support for Wicket
is/was.  
In the Weld download is a jar called weld-wicket.jar that has a
WeldApplication class for doing what you suggest.  However following the
instruction for using their integration code only got me an error when
including their jar in my project.

java.lang.NoSuchMethodError:
org.jboss.weld.Container.services()Lorg/jboss/weld/bootstrap/api/Service
Registry;

So I included the weld-wicket code in my simple project to see what was
going on.  Their integration solution provides a new RequestCycle class
called WeldRequestCycle.  In this class they attempt to preserve a long
running conversation through weld/wicket trickery.  There's a line of
code in a few places that causes a runtime exception that stops the
request cycle.

ConversationContext conversationContext =
Container.instance().services().get(ContextLifecycle.class).getConversat
ionContext();

These are Weld classes, but stepping through the debugger shows it goes
go back through the Wicket filter.  Therefore I don't know who is at
fault here.  Maybe something in Wicket changed that is causing Weld to
croak or Weld in Glassfish is the culprit.  Either way I really don't
care about long running conversation support at this point so I removed
the class and any dependency on it in my modified version of the
weld-wicket code base.

With that exception out of the way and changing my application to
subclass from WeldApplication, I have simple injection working with
Weld.  Yippee!  I'll cross my fingers there are no other side effects.

Problem is now what?  I guess I can post this with the Seam/Weld team
and hope someone updates the Weld-Wicket integration.  Or I can hope
someone from the Wicket team will take a look and see if it's something
in the latest version of Wicket that caused this to break and could do a
patch.

Anyone? :)

-Mark

-Original Message-
From: Josh Chappelle [mailto:jchappe...@4redi.com] 
Sent: Friday, March 26, 2010 2:59 PM
To: users@wicket.apache.org
Subject: RE: Wicket and JEE6

Mark,

Try taking a look at the addComponentInstantiationListener method on the
Application class. It takes one parameter of type
IComponentInstantiationListener and that interface has one method which
is
onInstantiation(Component component). Every time a component gets
instantiated it will be handed to this listener so maybe you can write
your
own dependency injection code there. I would think that is what the
WeldApplication is doing under the covers but since it isn't working for
you
then you may have more luck just writing it yourself. The other trick is
to
making this work is obtaining a reference to your weld context. I use
Spring
so I'm not familiar with what it takes with Weld.

I hope this helps.

Thanks,

Josh

-Original Message-
From: Ericksen, Mark W (IS) [mailto:mark.erick...@ngc.com] 
Sent: Friday, March 26, 2010 11:52 AM
To: users@wicket.apache.org
Subject: Wicket and JEE6

Hi,

 

I'm building a new java project using all JEE6 technologies.  That means
I'm using JPA, CDI, and JSF2 for example. Each layer came together great
with fully annotated classes until I got to the JSF2 layer which drove
me crazy because JSF wants to mess with HTML element ids and names.   In
looking for alternative view layers I came across Wicket.  The
technology seems great in terms of its philosophy to keep presentation
code separate, except I'm not finding much information about its support
for JEE6 technologies.

 

In particular searches for support for CDI (aka WebBeans, aka Weld) only
got me to an old example in the Seam project.  I cannot find any current
references to using Weld within a Wicket project where I can use
annotations such as @Inject, @Named, @ApplicationScoped, etc.  

 

So my very first question for this list of experts is this:  Is there
currently any support for Weld in Wicket?  Downloading the Weld project
from JBoss, I included the weld-wicket.jar into my project and my
application is subclassed from WeldApplication.  No such luck.  Any
class injected using @Inject is still null.

 

I am using GlassFish v3 which has all the JEE6 goodies included.
Developing with Eclipse.

 

Any help is *greatly* appreciated!

 

-Mark

 

 



-
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



Wicketstuff - YUI - Can't get Sub menus in menu bar to work

2009-10-18 Thread mark
Hi all,

I am trying to get YUI menu bar working. I have downloaded the yui-1.4.1
jar from wicketstuff's subversion repository. I have the a createMenuBar
method in my class and html template.

-Class Method Called From Page
Constructor-

   private void createMenuBar(){
menuBar = new YuiMenuBar(menuBar){
@Override
protected String getOpts()
{
Attributes attributes = new Attributes();
attributes.add(new Attributes(visible, true));
attributes.add(new Attributes(clicktohide, 
true));
attributes.add(new 
Attributes(autosubmenudisplay, true));
attributes.add(new Attributes(hidedelay, 
5000));
attributes.add(new
Attributes(effect,{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25}));
return attributes.toString();
}
};
menuBar.setOutputMarkupId(true);

YuiMenuBarItem sample = menuBar.addMenu(Sample1);
YuiMenuBarItem sampleSet = menuBar.addMenu(Sample2);
YuiMenuBarItem batch = menuBar.addMenu(Sample3);
YuiMenuBarItem instrument = menuBar.addMenu(Sample4);
YuiMenuBarItem report = menuBar.addMenu(Sample5);
YuiMenuBarItem admin = menuBar.addMenu(Sample6);

YuiMenu subMenu = sample.newSubMenu(mb_sample);
subMenu.addMenuItem(new TestAction(Sub Sample1));
subMenu.addMenuItem(new TestAction(Sub Sample2));

subMenu = sampleSet.newSubMenu(Test);
subMenu.addMenuItem(new TestAction(Sub Sample3));
subMenu.addMenuItem(new TestAction(Sub Sample4));

this.add(menuBar);

}

-HTML Template --

html
headtitle wicket:id=pageTitlePage Title/title
link rel=stylesheet type=text/css href=style.css/
/head
body
div wicket:id=menuBar[Menu Bar]/div
/body
/html


I get the first level of the menu bar but no submenu's clicking or
hovering on the main menu link just results in the menu item being
highlighted in yellow.

What am I missing?

regards

Mark



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



Cannot figure out how to download/stream a file from an AjaxFallbackLink onClick method

2009-08-24 Thread Doyle, Mark
I have a Wicket application which is required to retrieve files from the
local networks it's connected to.  The files can be located on a Windows
or Linux file system.

My strategy so far is to use JCIFS to grab the file and write it to a
temporary local (to the webserver) file which is then transferred to the
users browser.  The first part is working well and I can extend Wicket's
DownloadLink (which creates a ResourceStreamRequestTarget from a
FileResourceStream and then sets the Request target) in order to achieve
my goal.

My problem is that I now need to migrate to an AjaxFallbackLink instead
of the Link class which DownloadLink extends.  If I simply migrate the
DownloadLink OnClick() code to a new AjaxFallbackLink the file is
streamed to the Ajax response (You can see this in the AJAX WICKET
DEBUG) and nothing much happens from the users perspective.  This kind
of makes sense since I'm now dealing in Ajax requests and responses.

I've checked the archive and found some similar looking problems which
have pointed my towards things like Dynamic/shared resources or
pre-pending JavaScript to the target but I've either not understood or
not been able to implement these solutions.

Any solutions, ideas, wiki pointers would be most welcome.

Regards.

 



Please help Logica to respect the environment by not printing this email  / 
Pour contribuer comme Logica au respect de l'environnement, merci de ne pas 
imprimer ce mail /  Bitte drucken Sie diese Nachricht nicht aus und helfen Sie 
so Logica dabei, die Umwelt zu schützen. /  Por favor ajude a Logica a 
respeitar o ambiente nao imprimindo este correio electronico.



This e-mail and any attachment is for authorised use by the intended 
recipient(s) only. It may contain proprietary material, confidential 
information and/or be subject to legal privilege. It should not be copied, 
disclosed to, retained or used by, any other party. If you are not an intended 
recipient then please promptly delete this e-mail and any attachment and all 
copies and inform the sender. Thank you.



Is it possible to restart an AjaxSelfUpdatingBehaviour after it has been stopped?

2009-07-23 Thread Doyle, Mark
I have a collection of Panels that are switched via an AjaxTabbedPanel
Component.  One of the panels has an AjaxSelfUpdatingBehaviour attached
which works fine.  However, if I switch to another panel the self
updating behaviour is stopped because the component is no longer visible
(a precondition check).  This is perfectly reasonable logic.  My problem
is that when I switch back to the tab with the AjaxSelfUpdatingBehaviour
it is still stopped and never restarts ( I'm guessing it's related to
the stop flag in the behaviours class!).

 

So is it possible to restart the behaviour?  I've tried overriding the
renderHead() to try and avoid the if stopped check but it didn't work so
I guess there is something more complicated going on behind the scenes.

 

Cheers,

Mark



Please help Logica to respect the environment by not printing this email  / 
Pour contribuer comme Logica au respect de l'environnement, merci de ne pas 
imprimer ce mail /  Bitte drucken Sie diese Nachricht nicht aus und helfen Sie 
so Logica dabei, die Umwelt zu schützen /  Por favor ajude a Logica a respeitar 
o ambiente nao imprimindo este correio electronico.



This e-mail and any attachment is for authorised use by the intended 
recipient(s) only. It may contain proprietary material, confidential 
information and/or be subject to legal privilege. It should not be copied, 
disclosed to, retained or used by, any other party. If you are not an intended 
recipient then please promptly delete this e-mail and any attachment and all 
copies and inform the sender. Thank you.



Re: Any examples of a multiselect box in Wicket

2009-06-24 Thread Mark Clarke

thanks Igor,

that helped.

Igor Vaynberg wrote:

ListMultipleChoice

or Select/SelectOption

these both allow you to select multiple items from the list, examples
to both can be found in component reference.

-igor

On Tue, Jun 23, 2009 at 1:17 PM, m...@jumpingbean.co.za wrote:
  

Hi all,

Ok done some test and it looks like wicket can't handle this use case. I
have tried the extensions select class and SelectOptions but it seems to
work the same as dropdownchoice.

There appears to be no example of a multi select for wicket on the net. I
am beginning to think I should abandon the attempt to use multi-select.
Any last minute pointers?

thanks


-
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

  



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



Mutiple select DropDownChoice component

2009-06-23 Thread mark
Hi all,

I am looking for info on how to handle a multi-select dropdownchoice
component. Does the ModelObject need to be a List and will it get past a
collection of selected items?

How do I iterate over all the selected items if it is not provided in a
list format? I have a AjaxFormComponentUpdatingBehavior attached to the
control and it seems that the onchange event is fired each time the
selected items are increased or decreased but I only get one item at a
time passed through. i.e I don't get the entire collection of selected
items.

I would like to be able to detect if a single item has been selected,
which I could do with a call to size() if the model object was a
collection. I couldn't find much on google witht he words wicket mutiple
select :(

thanks


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



Any examples of a multiselect box in Wicket

2009-06-23 Thread mark
Hi all,

Ok done some test and it looks like wicket can't handle this use case. I
have tried the extensions select class and SelectOptions but it seems to
work the same as dropdownchoice.

There appears to be no example of a multi select for wicket on the net. I
am beginning to think I should abandon the attempt to use multi-select.
Any last minute pointers?

thanks


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



Re: Can't find Wicket ajax resources

2009-05-19 Thread Mark Sloan

Here is the Wicket portion of the my web.xml

filter
filter-name
ULandingWicketApp
/filter-name
filter-class
org.apache.wicket.protocol.http.WicketFilter
/filter-class

init-param
param-name
applicationClassName
/param-name
param-value
com.sri.uLanding.ULandingWicketApp
/param-value
/init-param
/filter

filter-mapping
filter-name
ULandingWicketApp
/filter-name
url-pattern
//*
/url-pattern
/filter-mapping


Mark Sloan
SRI International, San Luis Obispo Office
805-542-9330 x107
mark.sl...@sri.com



On May 18, 2009, at 6:33 PM, Jeremy Thomerson wrote:


What's your web.xml mapping?

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




On Mon, May 18, 2009 at 6:41 PM, Mark Sloan mark.sl...@sri.com  
wrote:

I am trying to do some basic Ajax in Wicket (1.4rc4)
I have the following code fragment:

TextFieldString loginField = new TextFieldString(login,
new PropertyModelString(this, login));
loginField.add(new AjaxFormComponentUpdatingBehavior(onblur) {
 private static final long serialVersionUID = 1L;
 @Override
 protected void onUpdate(AjaxRequestTarget target) {
 // doUpdate
 }
  });
   }
It produces the follwing:
[WARN] 404 - GET
/resources/org.apache.wicket.ajax.WicketAjaxReference/wicket- 
ajax.js;jsessionid=l0s7hr4i8tev

WARN] 404 - GET
/resources/org.apache.wicket.markup.html.WicketEventReference/ 
wicket-event.js;jsessionid=l0s7hr4i8tev

[WARN] 404 - GET
/resources/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/ 
wicket-ajax-debug.js;jsessionid=l0s7hr4i8tev

What am I doing wrong here?

Mark Sloan
SRI International, San Luis Obispo Office
805-542-9330 x107
mark.sl...@sri.com





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





smime.p7s
Description: S/MIME cryptographic signature


Re: Can't find Wicket ajax resources

2009-05-19 Thread Mark Sloan

Thank you.

That was the cause of my problem. I think the //* got into our url  
mapping because we had a resources dir in our project, and the  
resources in it were not being found. So to fix the problem I have  
renamed our resources dir to uLandingResources  and changed the url  
mapping from //* to /*.


It seems like it would be a good idea if Wicket could use some other  
less common name for its own resources use.


Thanks again.

Mark Sloan
SRI International, San Luis Obispo Office
805-542-9330 x107
mark.sl...@sri.com



On May 19, 2009, at 9:49 AM, Jeremy Thomerson wrote:


At a glance it looks right, with the exception that your / is
doubled up in the mapping.  I don't think this would create your
issue, but you should fix it and try again.

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




On Tue, May 19, 2009 at 11:47 AM, Mark Sloan mark.sl...@sri.com  
wrote:

Here is the Wicket portion of the my web.xml
filter
filter-name
ULandingWicketApp
/filter-name
filter-class
org.apache.wicket.protocol.http.WicketFilter
/filter-class



init-param
param-name
applicationClassName
/param-name
param-value
com.sri.uLanding.ULandingWicketApp
/param-value
/init-param
/filter



filter-mapping
filter-name
ULandingWicketApp
/filter-name
url-pattern
//*
/url-pattern
/filter-mapping

Mark Sloan
SRI International, San Luis Obispo Office
805-542-9330 x107
mark.sl...@sri.com


On May 18, 2009, at 6:33 PM, Jeremy Thomerson wrote:

What's your web.xml mapping?

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




On Mon, May 18, 2009 at 6:41 PM, Mark Sloan mark.sl...@sri.com  
wrote:


I am trying to do some basic Ajax in Wicket (1.4rc4)

I have the following code fragment:

TextFieldString loginField = new TextFieldString(login,

new PropertyModelString(this, login));

loginField.add(new AjaxFormComponentUpdatingBehavior(onblur) {

 private static final long serialVersionUID = 1L;

 @Override

 protected void onUpdate(AjaxRequestTarget target) {

 // doUpdate

 }

  });

   }

It produces the follwing:

[WARN] 404 - GET

/resources/org.apache.wicket.ajax.WicketAjaxReference/wicket- 
ajax.js;jsessionid=l0s7hr4i8tev


WARN] 404 - GET

/resources/org.apache.wicket.markup.html.WicketEventReference/ 
wicket-event.js;jsessionid=l0s7hr4i8tev


[WARN] 404 - GET

/resources/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/ 
wicket-ajax-debug.js;jsessionid=l0s7hr4i8tev


What am I doing wrong here?

Mark Sloan

SRI International, San Luis Obispo Office

805-542-9330 x107

mark.sl...@sri.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





smime.p7s
Description: S/MIME cryptographic signature


Can't find Wicket ajax resources

2009-05-18 Thread Mark Sloan

I am trying to do some basic Ajax in Wicket (1.4rc4)

I have the following code fragment:


TextFieldString loginField = new TextFieldString(login,
new PropertyModelString(this, login));

loginField.add(new AjaxFormComponentUpdatingBehavior(onblur) {

 private static final long serialVersionUID = 1L;

 @Override
 protected void onUpdate(AjaxRequestTarget target) {
 // doUpdate

 }

  });

   }

It produces the follwing:
[WARN] 404 - GET /resources/org.apache.wicket.ajax.WicketAjaxReference/ 
wicket-ajax.js;jsessionid=l0s7hr4i8tev
WARN] 404 - GET /resources/ 
org.apache.wicket.markup.html.WicketEventReference/wicket- 
event.js;jsessionid=l0s7hr4i8tev
[WARN] 404 - GET /resources/ 
org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/wicket-ajax- 
debug.js;jsessionid=l0s7hr4i8tev


What am I doing wrong here?


Mark Sloan
SRI International, San Luis Obispo Office
805-542-9330 x107
mark.sl...@sri.com





smime.p7s
Description: S/MIME cryptographic signature


Newbie question

2008-12-09 Thread Mark Daniel
Hello all,

I'm following the wicket in action book. I'm trying the cheese store in
chapter 3. I was following along the code by reading a bit and coding a bit
on my own. The code defining the ListView for the cheese cart is originally:

add(new ListView(cart, new PropertyModel(this, cart.cheeses)) { ... }

The way I ended up coding it was:

add(new ListView(cart, getCart().getCheeses())) { ... }

Which seems to be working fine, but If I click repeatedly fast on the 'add
to cart' link, the ArrayList in session gets its size changed correctly when
adding elements, but the ListView element size doesnt change accordingly.
Basically, the list size keeps growing on each click,  but the number of
items in the ListView doesnt grow anymore.

Any ideas whats wrong?

Thanks.


Re: Newbie question

2008-12-09 Thread Mark Daniel
Hi,

Basically,  getCart().getCheeses().size() != cartListView.size()


On Wed, Dec 10, 2008 at 12:31 AM, Bruno Cesar Borges 
[EMAIL PROTECTED] wrote:

 I think you are talking about the 'viewSize' property of ListView.

 This indicates how many viewable items will be displayed within a
 ListView.



 -Original Message-
 From: Mark Daniel [mailto:[EMAIL PROTECTED]
 Sent: Tuesday, December 09, 2008 6:23 PM
 To: users@wicket.apache.org
 Subject: Newbie question


 Hello all,

 I'm following the wicket in action book. I'm trying the cheese store in
 chapter 3. I was following along the code by reading a bit and coding a bit
 on my own. The code defining the ListView for the cheese cart is
 originally:

 add(new ListView(cart, new PropertyModel(this, cart.cheeses)) { ... }

 The way I ended up coding it was:

 add(new ListView(cart, getCart().getCheeses())) { ... }

 Which seems to be working fine, but If I click repeatedly fast on the 'add
 to cart' link, the ArrayList in session gets its size changed correctly
 when
 adding elements, but the ListView element size doesnt change accordingly.
 Basically, the list size keeps growing on each click,  but the number of
 items in the ListView doesnt grow anymore.

 Any ideas whats wrong?

 Thanks.

 ***
 Atenção: Esta mensagem foi enviada para uso exclusivo do(s)
 destinatários(s) acima identificado(s),
 podendo conter informações e/ou documentos confidencias/privilegiados e seu
 sigilo é protegido por
 lei. Caso você tenha recebido por engano, por favor, informe o remetente e
 apague-a de seu sistema.
 Notificamos que é proibido por lei a sua retenção, disseminação,
 distribuição, cópia ou uso sem
 expressa autorização do remetente. Opiniões pessoais do remetente não
 refletem, necessariamente,
 o ponto de vista da CETIP, o qual é divulgado somente por pessoas
 autorizadas.


 Warning: This message was sent for exclusive use of the addressees above
 identified, possibly
 containing information and or privileged/confidential documents whose
 content is protected by law.
 In case you have mistakenly received it, please notify the sender and
 delete it from your system.
 Be noticed that the law forbids the retention, dissemination, distribution,
 copy or use without
 express authorization from the sender. Personal opinions of the sender do
 not necessarily reflect
 CETIP's point of view, which is only divulged by authorized personnel.

 ***


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




Re: Newbie question

2008-12-09 Thread Mark Daniel
Hi Igor,

I just changed one line the original source (in my original post), and built
a war and deployed on tomcat, and got the behavior I mentioning. I think
they both point to the same list.

On Wed, Dec 10, 2008 at 1:12 AM, Igor Vaynberg [EMAIL PROTECTED]wrote:

 you gave listview a list instance, but its probably not the same
 instance of list you are adding items to. that is why the original
 code uses a model to give listview the list. read the models
 chapter...

 -igor

 On Tue, Dec 9, 2008 at 12:23 PM, Mark Daniel [EMAIL PROTECTED] wrote:
  Hello all,
 
  I'm following the wicket in action book. I'm trying the cheese store in
  chapter 3. I was following along the code by reading a bit and coding a
 bit
  on my own. The code defining the ListView for the cheese cart is
 originally:
 
  add(new ListView(cart, new PropertyModel(this, cart.cheeses)) { ... }
 
  The way I ended up coding it was:
 
  add(new ListView(cart, getCart().getCheeses())) { ... }
 
  Which seems to be working fine, but If I click repeatedly fast on the
 'add
  to cart' link, the ArrayList in session gets its size changed correctly
 when
  adding elements, but the ListView element size doesnt change accordingly.
  Basically, the list size keeps growing on each click,  but the number of
  items in the ListView doesnt grow anymore.
 
  Any ideas whats wrong?
 
  Thanks.
 

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




Re: Newbie question

2008-12-09 Thread Mark Daniel
By original source, I meant I just tried it on the book source code
download.

On Wed, Dec 10, 2008 at 1:20 AM, Mark Daniel [EMAIL PROTECTED] wrote:

 Hi Igor,

 I just changed one line the original source (in my original post), and
 built a war and deployed on tomcat, and got the behavior I mentioning. I
 think they both point to the same list.


 On Wed, Dec 10, 2008 at 1:12 AM, Igor Vaynberg [EMAIL PROTECTED]wrote:

 you gave listview a list instance, but its probably not the same
 instance of list you are adding items to. that is why the original
 code uses a model to give listview the list. read the models
 chapter...

 -igor

 On Tue, Dec 9, 2008 at 12:23 PM, Mark Daniel [EMAIL PROTECTED] wrote:
  Hello all,
 
  I'm following the wicket in action book. I'm trying the cheese store in
  chapter 3. I was following along the code by reading a bit and coding a
 bit
  on my own. The code defining the ListView for the cheese cart is
 originally:
 
  add(new ListView(cart, new PropertyModel(this, cart.cheeses)) { ...
 }
 
  The way I ended up coding it was:
 
  add(new ListView(cart, getCart().getCheeses())) { ... }
 
  Which seems to be working fine, but If I click repeatedly fast on the
 'add
  to cart' link, the ArrayList in session gets its size changed correctly
 when
  adding elements, but the ListView element size doesnt change
 accordingly.
  Basically, the list size keeps growing on each click,  but the number of
  items in the ListView doesnt grow anymore.
 
  Any ideas whats wrong?
 
  Thanks.
 

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





Re: Detect LoginPage redirection with swarm

2008-06-10 Thread Mark Lichtenberg

That worked perfectly. Thanks!

Mark


On [Jun 10], at 2:59 AM, Maurice Marrink wrote:


It should be fairly simple to show a message on the login page stating
the user will be redirected to whichever page they were trying to
visit.
It would be a lot more difficult i think to show a warning prior to
redirecting to the login paging. But as i understand it that is
fortunately not what you want :)

Swarm uses ISecurityChecks to solve authorization and authentication,
only a few checks should ever have to worry about redirecting to the
login page. The most prominent place this happens is during the
instantiation check in the ClassSecurityCheck By default this is used
on every page implementing ISecurePage interface. The interface is
customizable but it is also possible to override this per page.
So what you could do is extend ClassSecurityCheck to store the page in
the session you came from and then in the login page check for that
and display an appropriate message. There might be other ways but i am
not aware of them. :)

public class LoggingClasssecurityCheck extends ClassSecurityCheck
{
public boolean isActionAuthorized(WaspAction action)
{
if (getClazz() == getLoginPage())
return true;
if (isAuthenticated())
return getStrategy().isClassAuthorized(getClazz(), 
action);
//not authenticated, log and redirect
((MySession)Session.get()).logRedirect(getClazz());
throw new 
RestartResponseAtInterceptPageException(getLoginPage());
}
}

To use this check instead of the default just add a static final field
containing an instance of the check to your page. The entire class
hierarchy is searched so you could put it on your basepage to affect
every page. If multiple static final fields containing ISecurityChecks
are found in a class hierarchy all of them have to validate. Ofcourse
annotations would be much nicer for this but swarm is still using java
1.4.

Maurice

On Tue, Jun 10, 2008 at 12:08 AM, Mark Lichtenberg
[EMAIL PROTECTED] wrote:

Hi - We have a fairly straightforward app in which each page extends
SecureWebPage such that if a user attempts to directly land on a  
mounted

page, they will be redirected to our login page (as supplied in our
Application.getLoginpage() method). After logging in, the user is  
directed

to the originally requested page.

We have a requirement to alert a user that they will be redirected  
on the
login page - but I can not find a way to detect this in our Login  
page
class. I've tried getRequestCycle().isRedirect(), but this returns  
false
whether the page is loaded directly or as an intercept page. Anyone  
know how

I should approach this? Thanks.

Mark

-
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]



Detect LoginPage redirection with swarm

2008-06-09 Thread Mark Lichtenberg
Hi - We have a fairly straightforward app in which each page extends  
SecureWebPage such that if a user attempts to directly land on a  
mounted page, they will be redirected to our login page (as supplied  
in our Application.getLoginpage() method). After logging in, the user  
is directed to the originally requested page.


We have a requirement to alert a user that they will be redirected on  
the login page - but I can not find a way to detect this in our Login  
page class. I've tried getRequestCycle().isRedirect(), but this  
returns false whether the page is loaded directly or as an intercept  
page. Anyone know how I should approach this? Thanks.


Mark

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



StackOverflowError using 1.3.2

2008-04-01 Thread Mark Lichtenberg

Hi,
We've been experiencing StackOverflowErrors when our application is  
under a load of around 4 sessions, mostly clicks to load pages without  
necessarily waiting for the previous click to finish.  I saw this was  
addressed with jira issue 1365, and was part of 1.3.2, which we are  
using. For good measure, we took out all instance variables  
referencing Page objects, which was mentioned in the jira issue, but  
this did not help either. We also tried the wicket nightly today, but  
got the same results. Seems to be due to page deserialization - a  
snippet of the exception is below.


Any help would be greatly appreciated.

11:15:15,497 ERROR [[default]] Servlet.service() for servlet default  
threw exception

java.lang.StackOverflowError
	at java.io.ObjectInputStream 
$PeekInputStream.read(ObjectInputStream.java:2213)
	at java.io.ObjectInputStream 
$PeekInputStream.readFully(ObjectInputStream.java:2226)
	at java.io.ObjectInputStream 
$BlockDataInputStream.readUTFBody(ObjectInputStream.java:2963)
	at java.io.ObjectInputStream 
$BlockDataInputStream.readUTF(ObjectInputStream.java:2764)

at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1032)
at java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java:600)
	at  
java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java: 
789)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java: 
1534)

at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)
	at  
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java: 
1699)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at java.util.HashSet.readObject(HashSet.java:278)
at sun.reflect.GeneratedMethodAccessor121.invoke(Unknown Source)
	at  
sun 
.reflect 
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 
25)

at java.lang.reflect.Method.invoke(Method.java:585)
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java: 
946)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java: 
1809)
	at  
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java: 
1719)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java: 
1908)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java: 
1832)
	at  
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java: 
1719)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at java.util.HashMap.readObject(HashMap.java:1067)
at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)
	at  
sun 
.reflect 
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 
25)

at java.lang.reflect.Method.invoke(Method.java:585)
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java: 
946)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java: 
1809)
	at  
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java: 
1719)


	at  
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java: 
1719)

at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
	at org.apache.wicket.util.lang.Objects.byteArrayToObject(Objects.java: 
392)
	at  
org 
.apache 
.wicket 
.protocol 
.http 
.pagestore.AbstractPageStore.deserializePage(AbstractPageStore.java:228)
	at  
org 
.apache 
.wicket 
.protocol.http.pagestore.DiskPageStore.getPage(DiskPageStore.java:706)
	at org.apache.wicket.protocol.http.SecondLevelCacheSessionStore 
$SecondLevelCachePageMap.get(SecondLevelCacheSessionStore.java:311)

at org.apache.wicket.Session.getPage(Session.java:751)
	at org.apache.wicket.protocol.http.pagestore.AbstractPageStore 
$PageHolder.readResolve(AbstractPageStore.java:363)

at sun.reflect.GeneratedMethodAccessor136.invoke(Unknown Source)
	at  
sun 
.reflect 
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 
25)

..

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



RE: Wicket + Hibernate + Spring + Terracotta + Tomcat + Apache

2007-09-27 Thread Mark van Leeuwen
For the servlet container you can use either Tomcat or JBoss with the Apache
Portable Runtime. Performance will be similar to using Apache as a frontend,
but is simpler to setup.
http://labs.jboss.com/jbossweb/index.html

As for whether to go with Tomcat or JBoss, perhaps that will depend on
whether it is likely you will want other J2EE features, eg JMS. I've tended
to settle on JBoss because those extra libraries are there if I need them.

Mark

-Original Message-
From: beam [mailto:[EMAIL PROTECTED] 
Sent: Friday, 28 September 2007 12:24 AM
To: users@wicket.apache.org
Subject: Wicket + Hibernate + Spring + Terracotta + Tomcat + Apache


Hello everybody!
I've used wicket, spring jdbc and tomcat in my last project.
Now, we want to start a web project, some kind of social network. And we'll
go to use wicket as a web framework, hibernate for persistence and spring
for DI. So, this project must be deployed on a cluster. I've decided to use
Open Terracotta for this kind of cluster. But I don't know which app.
server(JBoss) or servlet container(Tomcat?) to use. This is a first
question. Second, as far as I know, tomcat or any app. server like JBoss
isn't a very good solution to deliver static content(e.g. images, video or
even *.css files), so I decide to use Apache Web Server or Nginx as a
Frontend, and terrcotta cluster with Tomcats(or JBoss) for dynamic backend.
But, I don't have enough experience to do this :) So, I need an advise, how
to do this, maybe one of you, java-guru, can help me?

And third, I want to use C-JDBC(Sequoia) to cluster mysql database - is it a
good solution for DB clustering, or better to use mysql 5.1 with native
cluster support?

Thank you very much for any kind of answers, and sorry for my bad english :)
-- 
View this message in context:
http://www.nabble.com/Wicket-%2B-Hibernate-%2B-Spring-%2B-Terracotta-%2B-Tom
cat-%2B-Apache-tf4528720.html#a12922367
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]