it seems taht this kind of construction is used to make workaround of
the bug. Is'n it?

First, what bug? I don't know that this is a bug? I thought we are
discussing a feature here. Secondly, this is not a workaround, but
creating client side code based on a API contract: setVisible(false)
removes the component markup completely, including its tags, from the
final markup.

It is based on the assumption that some element is *NOT* present at
all. Your change will invert that behavior, and in such a way that it
is only detectable by debugging your javascript. Not something I
enjoy, nor 95% of the development community.

You must understand that this is a major api break, not something
minor. This is not detectable by a compiler. You *will* break existing
scripts, pages and applications in a non-obvious way. Silent failures
are something we try to avoid at all cost.

Martijn

On 3/19/07, Vincent Demay <[EMAIL PROTECTED]> wrote:
Martijn Dashorst a écrit :
> Currently everybody assumes (correctly) that the element is completely
> removed (Ajax and non-Ajax)
Yes of course, but it is the same for all workarounds ;)
When to change servlet to filter, users have to change their web xml.
Each time you change something users have to adapt their code
> i.e. not present in the final markup.
> This means that scripts that iterate through the dom, or check for the
> document.getElementById() == null will fail if we implement this.
>
it seems taht this kind of construction is used to make workaround of
the bug. Is'n it?
> I *strongly* discourage changing this behavior.
>
> Martijn
>
> On 3/19/07, Matej Knopp <[EMAIL PROTECTED]> wrote:
>> Will it? This seems to be actually quite a smart workaround. How
>> exactly will this break existing clients? Only thing i'm concerned
>> about is the validity of output markup. but imho when we preserve the
>> original tag names, e.g. td will render as td, it should be all right.
>>
>> -Matej
>>
>> On 3/19/07, Martijn Dashorst <[EMAIL PROTECTED]> wrote:
>> > So you mean:
>> >
>> >     Label l = Label("foo", "hello");
>> > renders:
>> >     <span wicket:id="foo">hello</span>
>> >
>> > ... some ajax stuff, or a normal page render:
>> >
>> >     l.setVisible(false);
>> > renders:
>> >     <span wicket:id="foo" style="display:none"></span>
>> > ?
>> >
>> > This can and will break existing clients in a very nasty manner,
>> > because the markup id is still present in the final markup.
>> >
>> > Martijn
>> >
>> > On 3/19/07, Vincent Demay <[EMAIL PROTECTED]> wrote:
>> > > Johan Compagner a écrit :
>> > > >> > Also always just rendering the component but use the style
>> to make in
>> > > >> > invisible
>> > > >> > could be a security problem. So that can't be the default.
>> > > >>
>> > > >> What do you mean by security problem?
>> > > >
>> > > >
>> > > >
>> > > > If the the component that is  set to none visible is none visible
>> > > > because of
>> > > > security
>> > > > So it has data that never should be send to the browser because
>> the
>> > > > user is
>> > > > not allowed
>> > > > to see it.
>> > >
>> > > But data is never send to the user because a none visible
>> component will
>> > > be render as an empty tag, so without data
>> > >
>> > >
>> >
>> >
>> > --
>> > Learn Wicket at ApacheCon Europe: http://apachecon.com
>> > Join the wicket community at irc.freenode.net: ##wicket
>> > Wicket 1.2.5 will keep your server alive. Download Wicket now!
>> > http://wicketframework.org
>> >
>>
>
>




--
Learn Wicket at ApacheCon Europe: http://apachecon.com
Join the wicket community at irc.freenode.net: ##wicket
Wicket 1.2.5 will keep your server alive. Download Wicket now!
http://wicketframework.org

Reply via email to