Hi, I'm wondering if someone can help me. I'm new to GWT, I'm very well versed in Java, but less so in dealing with browsers/DOM/js. I expect this is a common problem.
What I'm trying to do is incorporate GWT into an existing app. (Don't stop reading yet) I'll make this abstract: I have a TabPanel, with HTML widgets added on (the tabs). The HTML has links in it, some of which send the user off the site (external links), and some internal. For the internal links (which I know by matching the href to my domain), instead of the browser following the link, and replacing the entire page as it did pre-GWT, I'd like to replace the internal links (read: add click listeners, and cancel the event bubbling so the browser doesn't follow the link) with asynchronous calls to get another HTML page, and replace the contents of the *current tab* with the response. Essentially, I have HTML pages with pagination links at the bottom. When a user goes to page 2, I want to replace the tab ajax-ily. I'd rather not change server- side code to help, as I want to have the option of not being tied to GWT. So, how? I've tried this, and its not working, and I'm stuck - onBrowserEvent() doesn't seem to be getting called. <code> private void replaceLinks(final Element e) { NodeList<Element> anchors = e.getElementsByTagName("a"); for(int i = 0; i < anchors.getLength(); i++){ final AnchorElement ae = AnchorElement.as(anchors.getItem(i)); if(ae.getHref().startsWith("http://localhost:8080/myapp")){ final String newHref = ae.getHref(); Window.alert("attempting to *replace* link of href: "+ae.getHref ()); final Anchor a = new Anchor(ae){ @Override public void onBrowserEvent(Event event) { Window.alert("1 got click, sending request for: "+ae.getHref()); super.onBrowserEvent(event); event.cancelBubble(true); switch (DOM.eventGetType(event)) { case Event.ONCLICK: Window.alert("got click, sending request for: "+ae.getHref ()); RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, newHref); //TODO localize URL rb.setCallback(new RequestCallback(){ public void onError(Request request, Throwable exception) { e.setPropertyString("currentURL", newHref); e.setInnerHTML("problem encountered -"+exception.getMessage ()); } public void onResponseReceived( Request request, Response response) { e.setPropertyString("currentURL", newHref); e.setInnerHTML(response.getText()); } }); } } }; a.sinkEvents(Event.MOUSEEVENTS); //what does sink event mean? } } } </code> --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to Google-Web-Toolkit@googlegroups.com To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/Google-Web-Toolkit?hl=en -~----------~----~----~----~------~----~------~--~---