My solution is to create a new content screen each time, by checking the
class at runtime and calling a factory method.

It's a workaround...but I would still like to know what was going on under
there!

Thanks for your help.

On Thu, Feb 5, 2009 at 8:20 AM, Giles Baxter <[email protected]> wrote:

> If I comment out the add() call, no content is added at all, so I never get
> a link that I can use to navigate to the next page.
>
>
> On Thu, Feb 5, 2009 at 12:18 AM, Damien Picard <[email protected]>wrote:
>
>> And if you only try to remove the currScreen ; is it removed ?
>>
>>
>> 2009/2/5 Giles Baxter <[email protected]>
>>
>>> I realized I didn't need the two elements that came after the content.
>>>
>>> So I tried add instead of insert as you suggested, but I still get the
>>> same behavior.
>>>
>>>
>>> On Wed, Feb 4, 2009 at 11:49 PM, Giles Baxter <[email protected]>wrote:
>>>
>>>> Seems to be consistent.
>>>>
>>>> Here are the screenshots - don't know if that'll help.
>>>> http://www.engr.uvic.ca/~gbaxter/tests.html<http://www.engr.uvic.ca/%7Egbaxter/tests.html>
>>>>
>>>> Only problem with the code you suggested is that I want to insert the
>>>> content at a specific point in mainInnerPanel.  If I use add, content will
>>>> be at the end...
>>>>
>>>>
>>>> On Wed, Feb 4, 2009 at 11:44 PM, Damien Picard <[email protected]
>>>> > wrote:
>>>>
>>>>> Your mainInnerPanel is a FlowPanel, right ?
>>>>>
>>>>> try something like that :
>>>>>
>>>>>     public void setCurrScreen(Widget content) {
>>>>>          mainInnerPanel.remove(currScreen);
>>>>>         mainInnerPanel.add(content);
>>>>>         currScreen = content;
>>>>>     }
>>>>>
>>>>> does the problem always appears ?
>>>>>
>>>>>
>>>>>
>>>>> 2009/2/5 Giles Baxter <[email protected]>
>>>>>
>>>>> Sure.  I used the Showcase sample as a template.  They have a tree
>>>>>> where the tree items map to different content widgets.
>>>>>>
>>>>>> I've created two Maps: one for history tokens and one for link texts.
>>>>>> Here are the two listeners that use them to figure out what screen to
>>>>>> display:
>>>>>>
>>>>>>     final HistoryListener historyListener = new HistoryListener() {
>>>>>>       public void onHistoryChanged(String historyToken) {
>>>>>>         Composite screen = exchangerTokens.get(historyToken);
>>>>>>         app.setCurrScreen(screen);
>>>>>>       }
>>>>>>     };
>>>>>>
>>>>>>     History.addHistoryListener(historyListener);
>>>>>>
>>>>>>     app.setListener(new ApplicationListener() {
>>>>>>         public void onHyperlinkClicked(Hyperlink link) {
>>>>>>           Composite content =
>>>>>> exchangerScreenLinks.get(link.getText());
>>>>>>           if (content != null && !content.equals(app.getCurrScreen()))
>>>>>> {
>>>>>>             History.newItem(getCurrScreenToken(content));
>>>>>>           }
>>>>>>         }
>>>>>>       });
>>>>>>
>>>>>> And here's the setCurrScreen method that calls insert();
>>>>>>
>>>>>>     public void setCurrScreen(Widget content) {
>>>>>>         int currScreenIndex =
>>>>>> mainInnerPanel.getWidgetIndex(currScreen);
>>>>>>         if (currScreenIndex > -1) {
>>>>>>             // the screen widget referenced by currScreen was found in
>>>>>> the container
>>>>>>             mainInnerPanel.remove(currScreenIndex);
>>>>>>             mainInnerPanel.insert(content, currScreenIndex);
>>>>>>         }
>>>>>>         else {
>>>>>>             // the container had not yet been populated
>>>>>>             mainInnerPanel.insert(content, 1);
>>>>>>         }
>>>>>>         currScreen = content;
>>>>>>
>>>>>>     }
>>>>>>
>>>>>> On Wed, Feb 4, 2009 at 11:15 PM, Damien Picard <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> Could you copy past your code ? I think that it is probably an error
>>>>>>> in your algorithm.
>>>>>>>
>>>>>>> Regards,
>>>>>>> Damien
>>>>>>>
>>>>>>> 2009/2/5 Giles <[email protected]>
>>>>>>>
>>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I'm trying to give the impression of navigating through a site by
>>>>>>>> updating a component contained in a FlowPanel.
>>>>>>>>
>>>>>>>> Each time I call myPanel.insert(myComponent, index), the contents of
>>>>>>>> myComponent are repeated.  I have some screenshots from running the
>>>>>>>> debugger in Eclipse if anyone thinks they can help.
>>>>>>>>
>>>>>>>> In this case, myComponent wraps another FlowPanel.  After inserting
>>>>>>>> into myPanel, the id of myComponent, the FlowPanel it wraps, and the
>>>>>>>> WidgetCollection inside the FlowPanel are the same.  But the id of
>>>>>>>> the
>>>>>>>> Widget array inside the WidgetCollection changes, and now contains
>>>>>>>> the
>>>>>>>> duplicated contents.
>>>>>>>>
>>>>>>>> I don't understand how the object being passed to insert() could be
>>>>>>>> modified like this.
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>> Giles
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>>
>>
>> >>
>>
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to