Skip to main content

Home/ GWT - Samples/ Group items tagged java

Rss Feed Group items tagged

Esfand S

JSNI Components « Technology I/O - 0 views

  • JSNI lets you interface between Java and JavaScript in a type-safe way; you can use JavaScript objects in the Java code and rely on Java’s strong typing to protect you against various programming errors. But again, the more functionality you include in a single JSNI block, the less you can rely on Java’s strong typing to minimize errors. JSNI also provides a seamless way of moving between Java and JavaScript, allowing you to pass objects and exceptions across the boundary in both directions. Through JSNI, you manage JavaScript objects from Java, and you can call back to the Java code from the JavaScript code you write. One use is to wrap a third-party JavaScript library, where you create JavaScript objects from the library and pass them around the GWT Java code before perhaps sending them back to the JavaScript library.
  • A guiding principle of JSNI coding is to spend as little time as possible in “the dark side”; each JSNI method should be at an atomic level (perform one clear function) so that you isolate issues and keep as much control as possible in the strongly-types Java realm.
  • Here’s a simple JSNI method call: public static native void method_name(ObjectTyp someData) /*-{ someData.@org.gwtbook.client.Data::data1 == "GWT In Action" }-*/; We hope that doesn’t look too scary, even with the @ and :: symbols sprinkled in.
  • ...7 more annotations...
  • To help any syntax checkers know that they should avoid parsing the JavaScript code, you wrap it as a comment by using a modified standard comment, which starts with the characters /*- (a forward slash, an asterisk, and a dash) and ends with -*/ (a dash, an asterisk, and a forward slash) (2). It’s also important not to forget the trailing semicolon at the end of the definition; otherwise your code won’t compile!
  • Crossing the boundary from Java to JavaScript can come in two forms: writing JavaScript code in the Java application that performs some dedicated functionality, or writing JavaScript in the Java application that calls functionality in a Java- Script library already loaded into the web browser.
  • If you provide a return type, rather than just a void, then the JavaScript must return an object of the correct type. (Be aware that JSNI code can’t create new Java objects; it can manipulate ones passed in or create new JavaScript objects, but not new Java objects.) REMEMBER It isn’t possible to create new Java objects in a JSNI code block. Return types must either be primitive types, manipulated Java objects that have been passed in as input parameters, or references to newly created Java- Script objects (a JavaScriptObject type). It’s important to understand how the objects you provide as parameters are handled across the Java-to-JavaScript boundary
  • ensure that a clearly defined and repeatable mapping exists between Java typed objects and JavaScript untyped objects, which is what GWT provides.
  • Primitive Java numeric types, such as byte, short, char, int, long, float, or double, become simple objects in JavaScript whose value is that of the original object. For example, if you have a Java char, char keyPress = ‘a’, then it will become the JavaScript variable var k = ‘a’. Similarly, the Java int, int val = 10, becomes the JavaScript variable var v = 10. A Java String is translated across into JavaScript as a simple variable to which the original text is assigned. Therefore the Java object String name = “GWT In Action” becomes the JavaScript variable var s = “GWT In Action”. Finally the simple Java boolean, becomes another simple JavaScript variable; the Java boolean b = true becomes the JavaScript variable var b = true.
  • Moving on to more complicated Java objects that can be passed across the boundary, you have the Java array, a Java object, and a new object to GWT called the JavaScriptObject. We’ll discuss the last object more in the next section; for now, you should think of it as just a reference to a JavaScript object created somewhere else that can be passed around the Java code and on to other JavaScript methods—but you can’t look into its contents from the GWT Java code. This may sound strange, but we’ll explain in more detail later in the section on this object. Passing an array across the Java-to-JavaScript boundary is treated in a similar opaque way; you know you have an array object, but you can’t look into its contents. This means that if the JavaScript code needs to use values in the array, then you should move them out of the array before you cross the boundary: either into separate parameters or into another type of user-defined Java object. You can manage Java objects in JavaScript through the JSNI interface, as we’ll discuss next. You can also pass your own defined Java objects across the Java-to-JavaScript  boundary; GWT provides a special syntax allowing you to access the fields and methods of that Java object. This will take a little bit of explaining, so please, stick with us.
  • Event
Esfand S

GWT UiBinder "helloworld" with HTML « Iqbalyusuf's Blog - 0 views

  • 11public class MyHTMLBinder extends UIObject {12 13    interface MyHTMLBinderUiBinder extends UiBinder<Element, MyHTMLBinder> {}14    private static MyHTMLBinderUiBinder uiBinder = GWT.create(MyHTMLBinderUiBinder.class);15 16    @UiField SpanElement nameSpan;17    @UiField SpanElement greetingSpan;18    @UiField DivElement divElement;19 20    public MyHTMLBinder(String firstName) {21        setElement(uiBinder.createAndBindUi(this));22 23        greetingSpan.setInnerText("Hello there ");24        nameSpan.setInnerText(firstName);25        divElement.setInnerHTML("<p> Hope you had a good time </p>");26 27    }28 29}
Esfand S

Maven and GWT - a never ending story? - 0 views

  • One of the cool things on GWT is, that you cannot just use Java as a programming language, you can also use all your cool and great tools, like Eclipse, JUnit, or build tools like Ant, Gradle or Maven. Sure you can, but this Maven thing seems not to be so easy. So lets take a look on how to solve it.
  • keep the structure clean by separating client (GWT) and server (maybe Java or even any other language) code in a strict way. This means, that your GWT code will not be in the same project as your Java EE web descriptor (web.xml).
  • If you have done the import, our photo-album-server module will be a Dynamic Web Project in Eclipse and you can add it to your Tomcat, JBoss or whatever server runtime. You can start it and run it as you like.
  • ...2 more annotations...
  • the GWT compiler configuration is done in the web application project. This is the best place, since you can just change the dependency and the GWT module and the compiler will compile a completly different GWT client. With other words, the web application pulls the right JAR out from the Maven space and uses it. This is much better than letting another project compile some JavaScript and than copy the JavaScript to your web application, or whatever solution you might find. So just add the GWT Maven plugin configuration and dependency below to the photo-album-server module’s POM.
  • our project is just a simple Java project.
Esfand S

Google Web Toolkit (GWT 2.0) with Eclipse - Tutorial - 0 views

  • The standard approach in Java is to have separated projects for separate purposes. For example the domain model of the application is usually defined in its own project.
  • This chapter describes how you can make these projects available to the GWT compiler as modules.
  • GWT need to have access to the source files to compile them into Javascript code. If you add the project or the jar file to your GWT classpath then the Java compiler will not complain if you use the classes from the included project / jar but the GWT compiler will not be able to compile them. To make the Java files available to the GWT compiler you need to Create a gwt.xml file in the Java project / jar file which you want to use - This will instruct the GWT compiler to use the listed classes. Use the included library via the inherit definition If you are using a jar file you also need to include the source files in the jar
Esfand S

GWT JSNI | GWT Tutorials - 0 views

  • JSNI gives you the freedom to pick and choose which GWT capabilities you want to use.
  • JSNI is base on Java JNI which allows you to declare a Java method, but implement the definition in another language.
  • entire JavaScript libraries have been implemented into GWT with the use of JSNI.
Esfand S

GWT fu, Part 1: Going places with Google Web Toolkit - 0 views

  • Summary:  Google Web Toolkit (GWT) lets you use the Java™ language to implement rich client user interfaces that run in a browser. In this two-part article, David Geary brings you up to speed on the latest version of GWT and shows you how to implement a desktop-like Web application.
  •  
    GWT is best suited for creating desktop-like applications that are replete with amenities such as drag-and-drop, windows and dialogs, and interactive widgets such as viewports. Although it's a simple application, the places application illustrates the potential for building such an application with GWT. So far I've shown you some fundamentals of GWT, including RPCs and database access, implementing composite widgets, event handling, and Ajax testing. In Part 2, you'll learn about some advanced GWT features, including sinking events, implementing GWT modules, and using event previews.
1 - 20 of 25 Next ›
Showing 20 items per page