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