Re: Wicket Panel tag

2010-05-21 Thread Richard Wilkinson
Hi,

1)
To get wicket to output a dom id you must call
mycomponent.setOutputMarkupId(true).  This will output a generated dom
id, which you can access in your java code by calling
mycomponent.getMarkupId().
Wicket will overrwrite any dom id in your code, if that element is
used for a wicket component (ie has wicket:id=myid)

2)
Wicket tags like wicket:panel are removed if the application is
running in deployment mode, but are rendered if the application is
running in development.  You can control this explicitly by calling
getMarkupSettings().setStripWicketTags(true); in your application init
code, or by using
Application.get().getMarkupSettings().setStripWicketTags(true); in any
wicket code.


-- 
Regards - Richard Wilkinson
Developer,
jWeekend: OO  Java Technologies - Development and Training
http://jWeekend.com


On 21 May 2010 17:51, Brian Mulholland blmulholl...@gmail.com wrote:
 Our app will be using ExtJS tab controls.  So to make that easier I
 wrapped the ExtJS code up into a Wicket Panel to hide the complexity
 of working with ExtJS.  The idea is that I would tell my class what
 the wicket:id of the span/div was to draw the thing to, as well as
 naming the N subtab id's (these are the HTML ids) so that the class
 could write out the javascript code to render the tabs from the markup
 already in the page.  So the HTML would look like:

 div wicket:id='drawTabsHere'
  div id=tab1Tab One!/div
  div id=tab2Tab Two!/div
 /div

 And the java code would look like:

 add(new MyTabPanel(drawTabsHere, tab1, tab2));

 The premise is REALLY close to working.  Here's my problems:

 1) The wicket:id= attribute on the div won't copy the id into the
 markup.  I must repeat it in the template div
 wicket:id='drawTabsHere' id='drawTabsHere'.  I tried adding the id
 via an Attribute Modifier like so:

 add(new AttributeModifier(id, new Model(renderToID)));

 But it ignores me.  I'd rather not force my developers to repeat the
 id.  How can I accomplish that?

 2) More importantly, the rendering of the tabs is malfunctioning.  I
 believe that it is because the panel actually DRAWS the wicket:panel
 tag around the subtab div's and thus screws up ExtJS.  I didn't
 realize that panels wrote the wicket tags out to the browser until i
 hit this.  I'd always assumed that wicket: tags were for the
 server's use, and were not rendered.  How can I suppress this so that
 the DOM hierarchy is right for my use?

 I do have a hidden input tag in the wicket:panel in order to preserve
 the selected tab so that we preserve it between submits.  I tried
 removing it and it did not help, but cannot remove the wicket:panel
 without Wicket throwing an exception.


 --
 Brian Mulholland

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



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



Re: Wicket Panel tag

2010-05-21 Thread Brian Mulholland
Cool, those both helped alot.  Unfortunately, they have lead me to
realize another major flaw in my plan.  Of course the wicket panel is
destroying the content in the template.  In most cases that is a
feature, but in this case the point is for the control to act as a
wrapper around other content (both static AND wicket replaced).  But
of course, the panel is replacing that content.

So is there a way to preserve the child content?  To illustrate the
plan, I want my markup in the HTMl template to look something like:

div wicket:id='drawTabsHere'
  div id=tab1Tab One! input type=text wicket:id=myTag/div
  div id=tab2Tab Two!/div
 /div

but the rendered HTML would add a hidden input, and some javascript,
but would otherwise preserve the rest of it's content, including any
wicket:id marked tags.  It would go to the browser as something like:

div id='drawTabsHere'
  input type=hidden name=activeTab value=0
  div id=tab1Tab One! input type=text name=myTag value=whatever/div
  div id=tab2Tab Two!/div
 /div
script/* some javascript not worth repeating here *//script

I suppose I *might* be able to have the drawTabsHere div NOT
encapsulate the tab1 and tab2 div's.  That is the direction I will
start moving, but is there a way to achieve the above ideal?  Since
tab1 and 2 are children of the drawTabsHere node, it would be better
if the markup reflected that.

On 5/21/10, Richard Wilkinson richardjohnwilkin...@googlemail.com wrote:
 Hi,

 1)
 To get wicket to output a dom id you must call
 mycomponent.setOutputMarkupId(true).  This will output a generated dom
 id, which you can access in your java code by calling
 mycomponent.getMarkupId().
 Wicket will overrwrite any dom id in your code, if that element is
 used for a wicket component (ie has wicket:id=myid)

 2)
 Wicket tags like wicket:panel are removed if the application is
 running in deployment mode, but are rendered if the application is
 running in development.  You can control this explicitly by calling
 getMarkupSettings().setStripWicketTags(true); in your application init
 code, or by using
 Application.get().getMarkupSettings().setStripWicketTags(true); in any
 wicket code.


 --
 Regards - Richard Wilkinson
 Developer,
 jWeekend: OO  Java Technologies - Development and Training
 http://jWeekend.com


 On 21 May 2010 17:51, Brian Mulholland blmulholl...@gmail.com wrote:
 Our app will be using ExtJS tab controls.  So to make that easier I
 wrapped the ExtJS code up into a Wicket Panel to hide the complexity
 of working with ExtJS.  The idea is that I would tell my class what
 the wicket:id of the span/div was to draw the thing to, as well as
 naming the N subtab id's (these are the HTML ids) so that the class
 could write out the javascript code to render the tabs from the markup
 already in the page.  So the HTML would look like:

 div wicket:id='drawTabsHere'
  div id=tab1Tab One!/div
  div id=tab2Tab Two!/div
 /div

 And the java code would look like:

 add(new MyTabPanel(drawTabsHere, tab1, tab2));

 The premise is REALLY close to working.  Here's my problems:

 1) The wicket:id= attribute on the div won't copy the id into the
 markup.  I must repeat it in the template div
 wicket:id='drawTabsHere' id='drawTabsHere'.  I tried adding the id
 via an Attribute Modifier like so:

 add(new AttributeModifier(id, new Model(renderToID)));

 But it ignores me.  I'd rather not force my developers to repeat the
 id.  How can I accomplish that?

 2) More importantly, the rendering of the tabs is malfunctioning.  I
 believe that it is because the panel actually DRAWS the wicket:panel
 tag around the subtab div's and thus screws up ExtJS.  I didn't
 realize that panels wrote the wicket tags out to the browser until i
 hit this.  I'd always assumed that wicket: tags were for the
 server's use, and were not rendered.  How can I suppress this so that
 the DOM hierarchy is right for my use?

 I do have a hidden input tag in the wicket:panel in order to preserve
 the selected tab so that we preserve it between submits.  I tried
 removing it and it did not help, but cannot remove the wicket:panel
 without Wicket throwing an exception.


 --
 Brian Mulholland

 -
 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




-- 
Brian Mulholland

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



Re: Wicket Panel tag

2010-05-21 Thread Igor Vaynberg
use a border instead of a panel, thats what borders are for...

-igor

On Fri, May 21, 2010 at 11:10 AM, Brian Mulholland
blmulholl...@gmail.com wrote:
 Cool, those both helped alot.  Unfortunately, they have lead me to
 realize another major flaw in my plan.  Of course the wicket panel is
 destroying the content in the template.  In most cases that is a
 feature, but in this case the point is for the control to act as a
 wrapper around other content (both static AND wicket replaced).  But
 of course, the panel is replacing that content.

 So is there a way to preserve the child content?  To illustrate the
 plan, I want my markup in the HTMl template to look something like:

 div wicket:id='drawTabsHere'
  div id=tab1Tab One! input type=text wicket:id=myTag/div
  div id=tab2Tab Two!/div
  /div

 but the rendered HTML would add a hidden input, and some javascript,
 but would otherwise preserve the rest of it's content, including any
 wicket:id marked tags.  It would go to the browser as something like:

 div id='drawTabsHere'
  input type=hidden name=activeTab value=0
  div id=tab1Tab One! input type=text name=myTag value=whatever/div
  div id=tab2Tab Two!/div
  /div
 script/* some javascript not worth repeating here *//script

 I suppose I *might* be able to have the drawTabsHere div NOT
 encapsulate the tab1 and tab2 div's.  That is the direction I will
 start moving, but is there a way to achieve the above ideal?  Since
 tab1 and 2 are children of the drawTabsHere node, it would be better
 if the markup reflected that.

 On 5/21/10, Richard Wilkinson richardjohnwilkin...@googlemail.com wrote:
 Hi,

 1)
 To get wicket to output a dom id you must call
 mycomponent.setOutputMarkupId(true).  This will output a generated dom
 id, which you can access in your java code by calling
 mycomponent.getMarkupId().
 Wicket will overrwrite any dom id in your code, if that element is
 used for a wicket component (ie has wicket:id=myid)

 2)
 Wicket tags like wicket:panel are removed if the application is
 running in deployment mode, but are rendered if the application is
 running in development.  You can control this explicitly by calling
 getMarkupSettings().setStripWicketTags(true); in your application init
 code, or by using
 Application.get().getMarkupSettings().setStripWicketTags(true); in any
 wicket code.


 --
 Regards - Richard Wilkinson
 Developer,
 jWeekend: OO  Java Technologies - Development and Training
 http://jWeekend.com


 On 21 May 2010 17:51, Brian Mulholland blmulholl...@gmail.com wrote:
 Our app will be using ExtJS tab controls.  So to make that easier I
 wrapped the ExtJS code up into a Wicket Panel to hide the complexity
 of working with ExtJS.  The idea is that I would tell my class what
 the wicket:id of the span/div was to draw the thing to, as well as
 naming the N subtab id's (these are the HTML ids) so that the class
 could write out the javascript code to render the tabs from the markup
 already in the page.  So the HTML would look like:

 div wicket:id='drawTabsHere'
  div id=tab1Tab One!/div
  div id=tab2Tab Two!/div
 /div

 And the java code would look like:

 add(new MyTabPanel(drawTabsHere, tab1, tab2));

 The premise is REALLY close to working.  Here's my problems:

 1) The wicket:id= attribute on the div won't copy the id into the
 markup.  I must repeat it in the template div
 wicket:id='drawTabsHere' id='drawTabsHere'.  I tried adding the id
 via an Attribute Modifier like so:

 add(new AttributeModifier(id, new Model(renderToID)));

 But it ignores me.  I'd rather not force my developers to repeat the
 id.  How can I accomplish that?

 2) More importantly, the rendering of the tabs is malfunctioning.  I
 believe that it is because the panel actually DRAWS the wicket:panel
 tag around the subtab div's and thus screws up ExtJS.  I didn't
 realize that panels wrote the wicket tags out to the browser until i
 hit this.  I'd always assumed that wicket: tags were for the
 server's use, and were not rendered.  How can I suppress this so that
 the DOM hierarchy is right for my use?

 I do have a hidden input tag in the wicket:panel in order to preserve
 the selected tab so that we preserve it between submits.  I tried
 removing it and it did not help, but cannot remove the wicket:panel
 without Wicket throwing an exception.


 --
 Brian Mulholland

 -
 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




 --
 Brian Mulholland

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