Bulgarian Association of Software Developers (BASD) organizes a meeting of the Bulgarian Java User Group (BGJUG) on 25 October 2007 to discuss the JavaServer Faces (JSF) technology and new trends. Speakers will be Ivan Davidov and Nikolay Dokovski.
See the official invitation here: http://www.devbg.org/seminars/seminar-JSF-25-october-2007/.
Posted by nakov as news, java at 3:48 PM EEST
Comments Off
The Bulgarian Association of Software Developers (BASD) which I lead for the last few years launches a Bulgarian Java User Group:
The groups will perform regular meetings in Sofia once monthly and will organize technical events and discussions. It will have separate web site (http://www.java-bg.net) and independent membership regardless of the membership in the association. The first meeting will be in the end of September 2007. I will post about it.
Posted by nakov as news, java, blog at 3:22 PM EEST
Comments Off
In my current GWT project I have some data comming from the server side but is unlikely to be changed during the execution of the project. This is the the list of languages available in the system. I wanted to cache the requests to the RPC service that returns the list of available languages so that this list to be dowloaded only once.
What I done:
In the above code the LanguageDTO class is simple JavaBean that transports the data from the server to the client (see Data Transfer Object pattern). The ServiceUtils is a simple class that keeps the client proxies of the RPC services as singletons. It is used to ensure that teh service proxy for each RPC srevice is created no more than once.
Posted by nakov as java, blog at 6:48 PM EEST
Comments Off
I published a new version of my GWT Advanced Table widget - a reusable GWT table component that supports data paging, sorting and filtering in AJAX fasion:

I added row selection support that was missing in the first release. See the official Google Code project for more information and downloads: http://code.google.com/p/gwt-advanced-table/.
Posted by nakov as news, java, blog at 6:31 PM EEST
Comments Off
Today I needed to deploy an early preview version of our GWT based product to the testing server on the customer site. I didn’t mentioned early but our product is a large content repository for famous Bulgarian telecom. It took me 2 hours or maybe more to write and debug ant based build script but it didn’t work. This was the script:
I changed the original project name and class names in the above script name to keep the NDA signed for this project.
The build was successfull, the created WAR file was correct, but the application didn’t work. Why?
The reason was the library “gwt-user.jar”. It is intented to run in GWT Shell, but when deploying on Java EE server you need to replace it with “gwt-servlet.jar”. Otherwise the RPC services will not work saying “Class not found: com.google.gwt.user.client.rpc.RemoteService”. It is strange error because this class is part of “gwt-user.jar” but cannot be loaded.
I had the “gwt-user.jar” and “gwt-servlet.jar” in my “lib” directory but I included the first in the Eclipse’s build path and excluded the second. In the ant script I do the opposite. … and it now works. Chreers!
I was using Tomcat 6, Java 6, Eclipse 3.3 (ahhhh bugger). I first mapped the GWT RPC services to servlets in the WEB-INF/web.xml deployment descriptor. Initially I had an idea to write custom task for the ant script that reads the MyModule.gwt.xml file and XSL transforms it to a section in the web.xml file but this was too complex. I prefer working solutions insted of complex general (and sometime working) ones.
Posted by nakov as java, blog at 10:40 PM EEST
Comments Off
I needed for my GWT project a panel that supports showing a set of widgets in a group (GroupBox panle). I needed the exact functionality like the HTML fieldset/legend tags:

I didn’t found any ready-to-use widget so I implemented one myself. Here is the source code:
It was really easy to extend the flow panel and add <fieldset> and <legend> tags around the panel element. Hope this widget will be useful to everybody. I may wish to modify the CSS to make it look better.
Posted by nakov as java, blog at 7:13 PM EEST
Comments Off
I work on a meidum sized Java project and we use GWT (Google Web Toolkit), Hibernate and Oracle. I am a technical architect for the project and I manage small team of developers in the same time.
GWT is interesting technology for creating dynamic AJAX applications. It is like Swing: you write Java code, use containers and controls (called widgets), assign properties, handle events, like creating Java GUI application, but all this Java code is compiled to JavaScript and is executed at the client side by the Web browser. Interesting, but young technology, not rich enough. It does not support Java 5 (you need to code in Java 1.4). The available widgets are limited and not enough functional. I lose lot of time creating my own widgets.
The last widget I created was a GWT Advanced table that suports paging, sorting and filtering. It runs on the client side but takes the data displayed in the table from the server side. This is how it looks like:

I was satisfied by developing this widget. It was really nice. It was designed for reusability, so I want to share it with you. I created a project at Google Code (code.google.com) and published the source code as freeware software. You can visit its official Web site here: http://code.google.com/p/gwt-advanced-table/. I didn’t created comprehensive documentation, but the code is clean and easy modifiable. Example is also available in the SVN repository: http://gwt-advanced-table.googlecode.com/svn/trunk/.
Posted by nakov as java, blog at 3:42 AM EEST
Comments Off