<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5079809</id><updated>2011-12-18T15:01:00.291Z</updated><category term='Web Development'/><category term='Development'/><category term='GWT'/><category term='googlecode'/><category term='Java'/><category term='Eclipse'/><title type='text'>David Maddison</title><subtitle type='html'>Development stuff</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://davidmaddison.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://davidmaddison.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5079809.post-2959332392319115805</id><published>2010-03-03T16:23:00.000Z</published><updated>2010-03-03T16:28:28.089Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><title type='text'>Building a GWT Declarative Interface</title><summary type='text'>Introduction
GWT 2 has introduced the concept of declarative interfaces, that is, the interface can be described via an XML document, rather than built using code.  The idea isn't new, it's seen in many new technologies such as Macromedia Flex, ASP.Net and JavaFX, however to the GWT developer it means the end of writing reams of boiler plate code.

In this post I show you how to create a simple </summary><link rel='replies' type='application/atom+xml' href='http://davidmaddison.blogspot.com/feeds/2959332392319115805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5079809&amp;postID=2959332392319115805&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/2959332392319115805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/2959332392319115805'/><link rel='alternate' type='text/html' href='http://davidmaddison.blogspot.com/2010/03/building-gwt-declarative-interface.html' title='Building a GWT Declarative Interface'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5079809.post-618046022732957883</id><published>2010-02-24T11:55:00.012Z</published><updated>2010-02-26T10:19:57.477Z</updated><title type='text'>Using GWT 2 Custom Events</title><summary type='text'>Introduction

In a previous post I showed how to create a custom GWT component based on GWT 1.7.  In this post I'll show you how to perform the same thing using GWT 2's new event system.  In order to make clear how custom GWT events are built, I'll be doing things slightly differently in that we'll be building it in a Model-Binder-View style.

The Model
The model is where we're going to </summary><link rel='replies' type='application/atom+xml' href='http://davidmaddison.blogspot.com/feeds/618046022732957883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5079809&amp;postID=618046022732957883&amp;isPopup=true' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/618046022732957883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/618046022732957883'/><link rel='alternate' type='text/html' href='http://davidmaddison.blogspot.com/2010/02/using-gwt-2-custom-events.html' title='Using GWT 2 Custom Events'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5079809.post-8828717128820501599</id><published>2009-09-21T21:52:00.006Z</published><updated>2009-09-21T22:05:02.422Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='googlecode'/><title type='text'>Building Opera Unite  Services in Java</title><summary type='text'>For the last few weeks I've been experimenting with Opera Unite, due to be release in the next version of the Opera browser.  Opera Unite services are built in JavaScript, however this felt like a limitation as building anything big in JavaScript alone can get a little hairy.
With this in mind I started on a few experiments to see if I could use GWT as a framework to build these services, thus </summary><link rel='replies' type='application/atom+xml' href='http://davidmaddison.blogspot.com/feeds/8828717128820501599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5079809&amp;postID=8828717128820501599&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/8828717128820501599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/8828717128820501599'/><link rel='alternate' type='text/html' href='http://davidmaddison.blogspot.com/2009/09/building-opera-unite-services-in-java.html' title='Building Opera Unite  Services in Java'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5079809.post-8233916847884761044</id><published>2009-07-04T20:23:00.001Z</published><updated>2009-07-04T20:28:12.506Z</updated><title type='text'>GWT Logging and JSNI</title><summary type='text'>Logging is an essential component of any traditional Java environment, without it, tracking down issues would be time consuming.  Unfortunately, on the browser, there's no standard place in which to output log messages.  Sure, one solution could be to display a dialog box when something goes wrong, but normally you want to dsplay such things as debug messages which just won't work in a dialog </summary><link rel='replies' type='application/atom+xml' href='http://davidmaddison.blogspot.com/feeds/8233916847884761044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5079809&amp;postID=8233916847884761044&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/8233916847884761044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/8233916847884761044'/><link rel='alternate' type='text/html' href='http://davidmaddison.blogspot.com/2009/07/gwt-logging-and-jsni.html' title='GWT Logging and JSNI'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5079809.post-5867665138696621768</id><published>2009-06-19T07:49:00.008Z</published><updated>2009-06-19T08:37:26.416Z</updated><title type='text'>GWT and Google Visualization API - Tip</title><summary type='text'>Google Visualization is an excellent API for adding graphing capabilities to any web application.  Recently a GWT wrapper has been released which makes it easy to embed this API into GWT applications.  The GWT module is really a wrapper around the standard Visualization JavaScript libraries and in order for everything to work the documentation says the following line is required in your GWT </summary><link rel='replies' type='application/atom+xml' href='http://davidmaddison.blogspot.com/feeds/5867665138696621768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5079809&amp;postID=5867665138696621768&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/5867665138696621768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/5867665138696621768'/><link rel='alternate' type='text/html' href='http://davidmaddison.blogspot.com/2009/06/gwt-and-google-visualization-api-tip.html' title='GWT and Google Visualization API - Tip'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5079809.post-4024890626734243736</id><published>2009-01-30T13:05:00.006Z</published><updated>2009-01-30T13:10:33.170Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><title type='text'>GWT, Internet Explorer and XMLHttpRequest Caching</title><summary type='text'>This morning I spent over an hour tracking down and solving a client/server communication issue which I'm going to document here, for all weary travellers who come this way.  The application in question uses the GWT RequestBuilder in order to make an HTTP GET request to the server.  When running in GWT Hosted mode I have a relay servlet that acts as a proxy allowing me to test the application </summary><link rel='replies' type='application/atom+xml' href='http://davidmaddison.blogspot.com/feeds/4024890626734243736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5079809&amp;postID=4024890626734243736&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/4024890626734243736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/4024890626734243736'/><link rel='alternate' type='text/html' href='http://davidmaddison.blogspot.com/2009/01/gwt-internet-explorer-and.html' title='GWT, Internet Explorer and XMLHttpRequest Caching'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5079809.post-8292592634891878378</id><published>2009-01-24T10:15:00.011Z</published><updated>2009-01-26T11:03:01.244Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Quick Tip : Getting Eclipse to help spot common errors</title><summary type='text'>Since Java is a statically typed language, the compiler is pretty good at spotting errors, but sometimes we do things that are syntactically correct, but which are semantically wrong;  take for example the following code sample.


public class TestError {
  String personName;

  public TestError(String personName) {
       personName = persionName;
  }

  public int getNameSize() {
       return </summary><link rel='replies' type='application/atom+xml' href='http://davidmaddison.blogspot.com/feeds/8292592634891878378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5079809&amp;postID=8292592634891878378&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/8292592634891878378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/8292592634891878378'/><link rel='alternate' type='text/html' href='http://davidmaddison.blogspot.com/2009/01/quick-tip-getting-eclipse-to-help-spot.html' title='Quick Tip : Getting Eclipse to help spot common errors'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5079809.post-1079782007423534247</id><published>2009-01-20T13:13:00.020Z</published><updated>2009-06-19T08:50:22.517Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>Creating a GWT component</title><summary type='text'>GWT widgets are the visible elements of a GWT application and so it's quite important to understand how they work.  In a previous post I explained the rendering process but here we get a little less abstract by actually creating a simple GWT component.  On the way we'll also look at using Java 1.5 Enums to great effect in order to reduce the amount of runtime errors our browser app may have.
I've</summary><link rel='replies' type='application/atom+xml' href='http://davidmaddison.blogspot.com/feeds/1079782007423534247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5079809&amp;postID=1079782007423534247&amp;isPopup=true' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/1079782007423534247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/1079782007423534247'/><link rel='alternate' type='text/html' href='http://davidmaddison.blogspot.com/2009/01/creating-gwt-component.html' title='Creating a GWT component'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5079809.post-9064397389349941164</id><published>2009-01-17T14:35:00.008Z</published><updated>2009-01-17T15:17:45.733Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>London Underground Realtime Status Yahoo Pipe</title><summary type='text'>Yahoo Pipes is something I've been meaning to get to grips with for quite a while but just never had the right application for it.  However before heading home last night I did my quick check of the tube status page for any usual problems and it suddenly hit me, wouldn't it be great if this information was machine readable! 
I raced home and checked around to see if something similar had already </summary><link rel='replies' type='application/atom+xml' href='http://davidmaddison.blogspot.com/feeds/9064397389349941164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5079809&amp;postID=9064397389349941164&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/9064397389349941164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/9064397389349941164'/><link rel='alternate' type='text/html' href='http://davidmaddison.blogspot.com/2009/01/london-underground-realtime-status.html' title='London Underground Realtime Status Yahoo Pipe'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5079809.post-6776719996594964227</id><published>2009-01-12T14:52:00.023Z</published><updated>2009-01-13T21:30:56.997Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>Browsers and the HTML specification</title><summary type='text'>We're all told that browsers differ in their interpretation and rendering of HTML but sometimes it's hard to find a simple concrete example.  Recently I decided to remind myself of everything HTML has to offer and re-read the HTML 4 specification. The HTML 4 specification was published in 1999 so you'd think that all current modern browsers would support it fully, but you would be very wrong.The </summary><link rel='replies' type='application/atom+xml' href='http://davidmaddison.blogspot.com/feeds/6776719996594964227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5079809&amp;postID=6776719996594964227&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/6776719996594964227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/6776719996594964227'/><link rel='alternate' type='text/html' href='http://davidmaddison.blogspot.com/2009/01/browsers-and-html-specification.html' title='Browsers and the HTML specification'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5079809.post-5747987124743826892</id><published>2009-01-08T13:11:00.010Z</published><updated>2009-01-08T14:42:44.319Z</updated><title type='text'>Finding Duplicate Files</title><summary type='text'>I take quite a few photos, admittedly not as many as I'd like, but that's another story.  All these photos need to be stored somewhere which leads to an escalating amount of disk/backup space being used.  Over the years there has been the inevitable copy made of a photo, along with re-importing the same photos again from an SD card that wasn't cleaned down.  All these leads to quite a bit of disk</summary><link rel='replies' type='application/atom+xml' href='http://davidmaddison.blogspot.com/feeds/5747987124743826892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5079809&amp;postID=5747987124743826892&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/5747987124743826892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/5747987124743826892'/><link rel='alternate' type='text/html' href='http://davidmaddison.blogspot.com/2009/01/finding-duplicate-files.html' title='Finding Duplicate Files'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5079809.post-3078289989535193419</id><published>2009-01-02T14:38:00.020Z</published><updated>2009-01-05T11:41:07.130Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><title type='text'>Using Eclipse Debugger With GWT</title><summary type='text'>GWT uses CSS styling in order to format rendered widgets, but since your abstracted away from the underlying DOM, it can sometimes be hard to create the exact CSS rule.  I recently created a composite GXT component and as a result couldn't quite get the CSS rule correct, (as it turns out, it was a rogue DIV element messing things up).  The following shows how to use some advanced features of the </summary><link rel='replies' type='application/atom+xml' href='http://davidmaddison.blogspot.com/feeds/3078289989535193419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5079809&amp;postID=3078289989535193419&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/3078289989535193419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/3078289989535193419'/><link rel='alternate' type='text/html' href='http://davidmaddison.blogspot.com/2009/01/using-eclipse-debugger-with-gwt.html' title='Using Eclipse Debugger With GWT'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5079809.post-5502983937954515820</id><published>2008-12-27T22:42:00.036Z</published><updated>2009-01-02T22:08:41.273Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><title type='text'>The GWT rendering process</title><summary type='text'>The project I'm currently working on uses GWT and GXT and so I decided to dig into the frameworks to figure out how the both perform their magic of turning Java components into HTML elements.  Since I've done the work, I thought I may as well share it incase anybody else is curious!GWT RenderingIn order for GWT to render any component it MUST be added to the RootPanel, which is just a standard </summary><link rel='replies' type='application/atom+xml' href='http://davidmaddison.blogspot.com/feeds/5502983937954515820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5079809&amp;postID=5502983937954515820&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/5502983937954515820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5079809/posts/default/5502983937954515820'/><link rel='alternate' type='text/html' href='http://davidmaddison.blogspot.com/2008/12/gwt-rendering-process.html' title='The GWT rendering process'/><author><name>David</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_5l_F1IuJbtw/SVnTNtTEQbI/AAAAAAAAACU/qBmoup3dwsU/s72-c/RootPanelHierarchy.png' height='72' width='72'/><thr:total>2</thr:total></entry></feed>
