First of all apologies to the list...
I've been so busy lately that i haven't had time to help and reply to
many past emails...

I'll eventually try your code, but till that happens here's some thoughts...

-) i'd try your suggestion about removing the node completely from the
dom. Something like:
myDialogNode.parentNode.removeChild(myDialogNode)

-) we need to fix Dialog's usage of ids... it currently has the exact
problem you described...
Can you log a report at http://tacoscomponents.jot.com/BugReporter ?

BTW, from 4.0.1 and on, you can use
updateComponents="dialogEditItem" or
updateComponents="literal:dialogEditItem" instead of
updateComponents="ognl:{'dialogEditItem'}"

That is a comma-separated string of components to update


Stephanos Piperoglou wrote:
>
> I've been wrestling with the Dialog component all day with no useful
> results yet...
>
> I have a For component iterating over some beans and I want an "Edit"
> button that pops up a dialog to edit the properties of that bean and
> then save and close the dialog. All the examples of Dialog I've seen
> on the site show the dialog initially visible, while I want it hidden,
> then shown and updated only when I click the "Edit" button.
>
> The page loads fine with the dialog invisible, and when I first click
> on an edit link the dialog is displayed and the bean data loaded.
> Clicking the AjaxSubmit button in the dialog saves the data and hides
> the dialog; so far so good. However, if I now click on another edit
> button in the For loop I get the same dialog as I got before instead
> of getting a dialog with the new bean data in the fields.
>
> More worryingly, bringing up a @DebugConsole shows me that the edit
> link DOES return the dialog with the second bean loaded, but I still
> get shown the initial dialog. I used Firefox's Web Developer
> Extension's "View Generated Source" feature and saw that the new
> dialog just gets appended to the document tree instead of replacing
> the previous one; it seems I get two elements with the same id now and
> dojo/tacos is showing the first one it finds, i.e. the initial one.
>
> Is this a bug? Is there some way around it? When I submit a dialog,
> how can I get rid of it completely from the document tree? Am I going
> about this the right way?
>
> My code, in a pinch:
>
> <tr jwcid="@For" source="ognl:items"
>         value="ognl:thisItem" index="ognl:thisItemIndex" element="tr">
>         ...
>         <span jwcid="@tacos:AjaxDirectLink"
>                 listener="listener:doEditItem"
>                 parameters="ognl:thisItemIndex"
>                 updateComponents="ognl:{'dialogEditItem'}">
>                 <img src="images/edit.gif"/>
>         </span>
>         ...
> </tr>
>
> and further down:
>
> <div jwcid="[EMAIL PROTECTED]:Dialog"
> hidden="ognl:dialogEditItemHidden">
> <div jwcid="@If" condition="ognl:editItemIndex != -1">
> <form jwcid="@tacos:AjaxForm" listener="listener:doSaveItem"
> updateComponents="ognl:{'dialogEditItem'}" >
> <input jwcid="@TextField"
> value="ognl:items[editItemIndex].instrumentId" />
> <input jwcid="@tacos:AjaxSubmit" value="Save Changes" />
> </form>
> </div>
> </div>
>
> In my page class:
>
>         @Persist
>         @InitialValue("ognl:-1")
>         *public* *abstract* *int* getEditItemIndex();
>         *public* *abstract* *void* setEditItemIndex(*int* index);
>        
>         @Persist
>         @InitialValue("ognl:true")
>         *public* *abstract* *boolean* getDialogEditItemHidden();
>         *public* *abstract* *void* setDialogEditItemHidden(*boolean*
> hidden);
>
>         *public* *void* doEditItem(*int* index) {
>                 setEditItemIndex(index);
>                 ((Dialog)getComponent("dialogEditItem")).show();
>         }
>
>         *public* *void* doSaveItem() {
>                 setEditItemIndex(-1);
>                 ((Dialog)getComponent("dialogEditItem")).hide();
>         }
>
> ---
>
> This e-mail may contain confidential and/or privileged information. If
> you
> are not the intended recipient (or have received this e-mail in error)
> please notify the sender immediately and destroy this e-mail. Any
> unauthorized copying, disclosure or distribution of the material in this
> e-mail is strictly forbidden.
> ------------------------------------------------------------------------
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> ------------------------------------------------------------------------
>
> _______________________________________________
> Tacos-devel mailing list
> Tacos-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/tacos-devel
>   


-- 
Andreas Andreou - [EMAIL PROTECTED] - http://andyhot.di.uoa.gr
Tapestry / Tacos developer
Open Source / J2EE Consulting 


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Tacos-devel mailing list
Tacos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tacos-devel

Reply via email to