Bruno Borges wrote:
    But why? Of course setVisible works on listview, why wouldn't it? The
    problem is that you are adding the list view to target. You should
    add a
    component that contains the listview.


Matej, ListView is a component conceptually equal to Label, TextField or whatever. The code I sent doesn't work. And yes I'm adding it to a target, the same way I do for a Label which works fine without adding it to a parent component.
ListView is an repeater. It works differently than label or TextField.

Btw. if you hide the label like this (you'll add the label to the target directly), you won't be able to show it untill you refresh the page. So you have to put it in a webmarkupcontainer anyway. (Wicket uses outerHtml to replace the component and if you want to show hidden label document.getElementById('labelId') will just return 'undefined').

-Matej


On 5/18/06, *Matej Knopp* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    Bruno Borges wrote:
     > One thing at a time:
     >
     > 1) setVisible works, when not doing through Ajax components like
    AjaxLink;
     >
     > 2) ListView outputs one different id for each repeated line.
     >
     > 3) when calling ListView.setVisible(false) from some
     > onClick(AjaxRequestTarget), it does not works.
     >
     > So pay attention to 3': setVisible can be called from anywhere that
     > ListView does not have to know about. And this problem I'm talking
     > about, it's been called from an Ajax component. This let me conclude
     > that this code should work:
     >
     > ...
     > final ListView listView = new ListView("list", items) { ... };
     > listView.setOutputMarkupId(true);
     > add(listView);
     > final Label label = new Label("foo", new Model("Foo"));
     >
     > AjaxFallbackLink link = new AjaxFallbackLink("ajaxLink") {
     >     public void onClick(AjaxRequestTarget target) {
     >         listView.setVisible(false);
     >         label.setVisible (false);
     >
     >         target.addComponent(label); // this one works
     >         target.addComponent(list); // this does NOT works
     >     }
     > };
     > add(link);
     > ...
     >
     > The way setVisible(false) is been called should not be important
    on how
     > the component must behave. If it should, so in the javadoc would be
     > needed to have some comment warning the user about that. " Do not
    call
     > setVisible(false) from Ajax components."
    But why? Of course setVisible works on listview, why wouldn't it? The
    problem is that you are adding the list view to target. You should
    add a
    component that contains the listview.

    -Matej
     >
     > That's what I think.
     >
     > On 5/18/06, *Alvar Lumberg* <[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
     > <mailto: [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>> wrote:
     >
     >     yea, my bad. I was thinking about ajax side of things, sorry.
     >
     >     On 5/18/06, Johan Compagner < [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
     >     <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>>
    wrote:
     >      > setVisible doesn't work?
     >      > It should work fine listview will not get rendered when
    you set
     >     it to none
     >      > visible.
     >      >
     >      > And yes (talking to igor) i think it is a bit stupid that
    we do
     >     generate the
     >      > items when the listview is not visible..
     >      >
     >      > johan
     >      >
     >      >
     >      >
     >      > On 5/18/06, Alvar Lumberg < [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
     >     <mailto: [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>> wrote:
     >      > >
     >      >  Bruno, your problem is more of an issue with code beauty and
     >     design? I
     >      > agree that it's a bit misleading to have an setVisible
    method that
     >      > does nothing... As adding a fairly synthetic AjaxComponent
     >     subclass to
     >      > Component for using as a parent for every ajax-enabled
    component
     >      > doesn't seem justified, what if ListView (and other possible
     >      > repeaters) would throw UnsupportedOperationException or
    something
     >     like
     >      > that?
     >      >
     >      > Of course, that would mean making Component.setVisible not
    final...
     >      >
     >      > Alvar
     >      >
     >      > On 5/18/06, Igor Vaynberg < [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
     >     <mailto: [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>> wrote:
     >      > > i disagree,
     >      > > wicket's primary usecase is not ajax, but regular rendering.
     >     ajax is a
     >      > very
     >      > > nice bonus and does not always work as smoothly as we
    would like.
     >      > >
     >      > > now the ajax solution for the listview is quiet easy,
    put it into a
     >      > > webmarkupcontainer and update that container instead of the
     >     listview via
     >      > > ajax
     >      > >
     >      > > WebMarkupContainer listviewcontainer=new
     >      > > WebMarkupContainer("listviewcontainer");
     >      > > ListView listview=new ListView("listview", .....
     >      > >
     >      > > listviewContainer.add (listview);
     >      > >
     >      > > <span wicket:id="listviewcontainer"><ul><li
     >      > > wicket:id="listview">blah</li></ul></span>
     >      > >
     >      > > ... target.addComponent(listviewcontainer);
     >      > >
     >      > > this has the added advantage of hiding the listview's
     >     container, be that a
     >      > > ul or a table
     >      > >
     >      > > -Igor
     >      > >
     >      > >
     >      > >
     >      > > On 5/17/06, Bruno Borges < [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
     >     <mailto:[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>> wrote:
     >      > > >
     >      > > >
     >      > > > > one thing we might try is to add an isvisible check to
     >      > > internalOnAttach() so that lsitview does not create
    children if
     >     it is not
     >      >  > visible. johan what do you think?
     >      > > > >
     >      > > >
     >      > > >
     >      > > > Igor, the problem is that we need to make possible the
    call for
     >      > > setVisible(false), just like any other component...
    _after_ the
     >     component
     >      > > was printed out (for example, hidding a list view within an
     >     AjaxLink).
     >      > > >
     >      > > > If this can't be done, ListView must be of other type
    except
     >     Component.
     >      > > >
     >      > > >
     >      > > >
     >      > > >
     >      > > >
     >      > > >
     >      > > >
     >      > > > On 5/17/06, Igor Vaynberg <[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
     >     <mailto:[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>> wrote:
     >      > > > >
     >      > > > >
     >      > > > >
     >      > > > >
     >      > > > > >
     >      > > > > > Sure, I know about that, but the way we code for
    other
     >     things like
     >      > > Label or TextField, it works, right? So, for ListView it
    should
     >     work too.
     >      > > It's a component just like other.
     >      > > > >
     >      > > > >
     >      > > > >
     >      > > > > listview is very much different from ordinary components
     >     like label
     >      > and
     >      > > textfield. listview is a repeater. repeaters have no
    markup of
     >     their own
     >      > and
     >      > > they produce no markup.
     >      > > > >
     >      > > > > the markup you assign to the listview using
    wicket:id the
     >     listview
     >      > > delegates to its children. the markup you see in the output
     >     generated by
     >      > > listview does not come from the listview itself, but
    from its
     >     children
     >      > that
     >      > > render themselves.
     >      > > > >
     >      > > > > one thing we might try is to add an isvisible check to
     >      > > internalOnAttach() so that lsitview does not create
    children if
     >     it is not
     >      > > visible. johan what do you think?
     >      > > > >
     >      > > > > -Igor
     >      > > > >
     >      > > > >
     >      > > >
     >      > > >
     >      > > >
     >      > > >
     >      > > > --
     >      > > > Bruno Borges
     >      > > > Summa Technologies
     >      > >
     >      > >
     >      >
     >      >
     >      > -------------------------------------------------------
     >      > Using Tomcat but need to do more? Need to support web
    services,
     >     security?
     >      > Get stuff done quickly with pre-integrated technology to make
     >     your job
     >      > easier
     >      > Download IBM WebSphere Application Server v.1.0.1 based on
    Apache
     >     Geronimo
     >      >
> http://sel.as-us.falkag.net/sel?cmdlnk&kid0709&bid&3057&dat1642 <http://sel.as-us.falkag.net/sel?cmdlnk&kid0709&bid&3057&dat1642>
    <http://sel.as-us.falkag.net/sel?cmdlnk&kid0709&bid&3057&dat1642 
<http://sel.as-us.falkag.net/sel?cmdlnk&kid0709&bid&3057&dat1642>>
     >      >
     >      > _______________________________________________
     >      > Wicket-user mailing list
     >      > Wicket-user@lists.sourceforge.net
    <mailto:Wicket-user@lists.sourceforge.net>
     >     <mailto: Wicket-user@lists.sourceforge.net
    <mailto:Wicket-user@lists.sourceforge.net>>
     >      >   https://lists.sourceforge.net/lists/listinfo/wicket-user
     >      >
     >      >
     >
     >
     >     -------------------------------------------------------
     >     Using Tomcat but need to do more? Need to support web services,
     >     security?
     >     Get stuff done quickly with pre-integrated technology to make
    your
     >     job easier
     >     Download IBM WebSphere Application Server v.1.0.1 based on Apache
     >     Geronimo
> http://sel.as-us.falkag.net/sel?cmdlnk&kid0709&bid&3057&dat1642 <http://sel.as-us.falkag.net/sel?cmdlnk&kid0709&bid&3057&dat1642>
    <http://sel.as-us.falkag.net/sel?cmdlnk&kid0709&bid&3057&dat1642 
<http://sel.as-us.falkag.net/sel?cmdlnk&kid0709&bid&3057&dat1642>>
     >     _______________________________________________
     >     Wicket-user mailing list
     >     Wicket-user@lists.sourceforge.net
    <mailto:Wicket-user@lists.sourceforge.net>
     >     <mailto: Wicket-user@lists.sourceforge.net
    <mailto:Wicket-user@lists.sourceforge.net>>
     >     https://lists.sourceforge.net/lists/listinfo/wicket-user
    <https://lists.sourceforge.net/lists/listinfo/wicket-user>
     >
     >
     >
     >
     > --
     > Bruno Borges
     > Summa Technologies



    -------------------------------------------------------
    Using Tomcat but need to do more? Need to support web services,
    security?
    Get stuff done quickly with pre-integrated technology to make your
    job easier
    Download IBM WebSphere Application Server v.1.0.1 based on Apache
    Geronimo
    http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
    <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642>
    _______________________________________________
    Wicket-user mailing list
    Wicket-user@lists.sourceforge.net
    <mailto:Wicket-user@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/wicket-user




--
Bruno Borges
Summa Technologies



-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to