开发者

How do I load test data into my GWT Widget?

开发者 https://www.devze.com 2023-03-28 18:36 出处:网络
I am using eclipse with the Google Toolkit and I have created a widget with a listbox, vertical split panel and a couple of buttons. What I am trying to do is have a list of files in a local directory

I am using eclipse with the Google Toolkit and I have created a widget with a listbox, vertical split panel and a couple of buttons. What I am trying to do is have a list of files in a local directory listed in the listbox and I want to be able to click on a file and have it displayed in the top part of the split panel. I found out the hard way about browsers and file IO and not being able to use java.io.File.

What are my options? Can I put the data files inside a jar or something and have the widget read it in that way? I need to do this as a test run, to implement an new feature with working with the data. I开发者_开发技巧t's not going to be any kind of final server hosted application, I am not concerned about how the actual files will be loaded in the future.

Any suggestions would be greatly appreciated.

Respectfully, DemiSheep


If you just need a hard-coded list of values to visually test your widget, you can simply put these values in a String array and load it from there. Or you can http GET the strings from a server using RequestBuilder. You can keep a simple file (CSV, XML, JSON etc.) in your war directory and load this file using Request builder.

Example code from GWT developer guide:

import com.google.gwt.http.client.*;
...

String url = "http://www.myserver.com/getData?type=3";
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url));

try {
  Request request = builder.sendRequest(null, new RequestCallback() {
    public void onError(Request request, Throwable exception) {
       // Couldn't connect to server (could be timeout, SOP violation, etc.)
    }

    public void onResponseReceived(Request request, Response response) {
      if (200 == response.getStatusCode()) {
          // Process the response in response.getText()
      } else {
        // Handle the error.  Can get the status text from response.getStatusText()
      }
    }
  });
} catch (RequestException e) {
  // Couldn't connect to server
}

Make sure you inherit HTTP module:

<inherits name="com.google.gwt.http.HTTP" />


Create testcases with JUnit!

This is the official Google site describing Testing with JUnit and varios test methods: Google Web Toolkit: Testing. You definitly find a solution here^^


As it comes to GWT, there is no such thing sent to a browser as a .jar-file.

The easiest thing to fetch the file would be to

  1. put the files on a server
  2. fetch them via a http-call

Remember the same-origin-policy that applies to GWT as it is underlying all javascript-Restrictions

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号