Quick response: in GWT2.0, use

History.addValueChangeHandler(ValueChangeHandler<java.lang.String>
handler)

that is not deprecated

Try use
History.newItem("page" + tabIndex,false);

to avoid firing event, this may be the cause

Hope that helps

Oscar

On Feb 7, 9:19 am, AM <[email protected]> wrote:
> Hi,
> I am running into this weird issue where the onHistoryChanged() isn't
> being called when I hit the browser's back button or even if I call
> History.back(). I am testing this in the hosted mode (even running it
> in firefox yields me the same result). The strange thing is, if I call
> History.back() thrice - looks like it calls onHistoryChanged() on the
> third request - it is quite confusing and I was hoping if someone
> could shed some light on this issue that I am running into.
>
> I am using GWT 1.5 and to demonstrate my case, I'll use the example in
> the GWT-1.5 tutorial (http://preview.tinyurl.com/6grjh2)
>
> // Excluding imports for brevity
>
> // Entry point classes define <code>onModuleLoad()</code>.
> public class BrowserHistoryExample implements EntryPoint {
>
>   TabPanel tabPanel;
>
>   public void onModuleLoad() {
>
>     tabPanel = new TabPanel();
>
>     int tabIndex = 0;
>
>     // A Ext-GWT ContentPanel
> (com.extjs.gxt.ui.client.widget.ContentPanel)
>     ContentPanel cp = new ContentPanel();
>     cp.addText("Page1");
>     tabPanel.add(cp, "Page1");
>
>     cp = new ContentPanel();
>     cp.addText("Page2");
>     tabPanel.add(cp, "Page2");
>
>     Button backButton = new Button("Back");
>     backButton.addClickListener(new ClickListener () {
>
>                 public void onClick(Widget arg0) {
>                     System.out.println("Going back now ...");
>
>                     History.back();
>
>                     // Commenting this for now ...
>                     // but on un-commenting, the third call to
> History.back() seems to invoke onHistoryChanged()
>                     // History.back();
>                     // History.back();
>                 }
>     });
>     cp = new ContentPanel();
>     cp.addText("Page3");
>     cp.add(backButton);
>     tabPanel.add(cp, "Page3");
>
>     tabPanel.addTabListener(new TabListener() {
>
>       public boolean onBeforeTabSelected(SourcesTabEvents sender, int
> tabIndex) {
>         return true;
>       }
>
>       public void onTabSelected(SourcesTabEvents sender, int tabIndex)
> {
>           // Push an item onto the history stack
>           System.out.println("Pushing tabIndex: " + tabIndex + " on the
> stack");
>           History.newItem("page" + tabIndex);
>       }
>     });
>
>     History.addHistoryListener(new HistoryListener() {
>
>       public void onHistoryChanged(String historyToken) {
>
>           System.out.println("Got token: " + historyToken);
>
>         // Parse the history token
>         try {
>           if (historyToken.substring(0, 4).equals("page")) {
>             String tabIndexToken = historyToken.substring(4, 5);
>             int tabIndex = Integer.parseInt(tabIndexToken);
>             // Select the specified tab panel
>             tabPanel.selectTab(tabIndex);
>           } else {
>             tabPanel.selectTab(0);
>           }
>
>         } catch (IndexOutOfBoundsException e) {
>           tabPanel.selectTab(0);
>         }
>       }
>     });
>
>     tabPanel.selectTab(0);
>     RootPanel.get().add(tabPanel);
>   }
>
> }
>
> So the thing is, when I navigate from Page1 tab to Page2 tab to Page3
> tab - and then when I hit the "back" button (defined above, which
> simply calls History.back()) - nothing really happens for the first 2
> times I hit the button. Only when I hit it the third time (or
> alternatively call History.back() thrice in the buttonClick event) -
> is the onHistoryChanged() method invoked.
>
> Again, it would be great if someone could help me figure out whats
> going on?
>
> Thanks!

-- 
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