views:

244

answers:

2

We have a Java server application using a message based communication passing around strongly typed complex POJO messages. Our regular client is a rich-client Flex application that has a very heavy art and UI development process that doesn't lend itself to rapid prototyping.

We are planning on building a Java UI to test server functionality, currently we have been testing our backend Java server using a console based client using basic commands. The reason we need it in Java is because the messages we are passing around are strongly typed complex Java objects (integrating in any other language requires parsing custom JSON which we are building a code generator for Actionscript to ease this pain).

The issue with using the basic console client, is we're developing a new application where state is being tracked across multiple messages, and simple text console output doesn't make sense we need a more complex UI to show results.

What tools are there for rapidly building a rich client Java UI for use by developers to quickly add new UI's to test a Java backend?

Coding Swing and UIs by hand sucks.

I've looked at Eclipse Rich Client Platform and it looks promising but I'm concerned that the learning curve, and the ease of adding a new UI to test server functionality is not going to be easy. Is there like a light-weight Eclipse RCP, I wouldn't be against having a small subset of developers working on the core Eclipse RCP application while day to day work can be done in a simple rapid-prototyping environment that will easily integrate.

Some Java UI technologies I've been looking into (has anyone had experience rapidly prototyping UI's with a low learning curve for server developers).

A: 

If you prefer Flex;

  1. Try spring with blazeds
  2. Test it with flexunit

or JSF;

  1. simple jsf design connect to managed bean (mix with spring) and managed bean connect to your service layer ....n
  2. Test it with jsfunit.
  3. You can test it selenium also.

or Swing;

Design with Swixml or Thinlet ((these are remind mxml)


P.S: Don't waste your time to design nice ui. You can do it later. Functionality is important than good looking. Later CSS do it for you. I repeat this, by myself :)

javaloper
A: 

Really, if you are going to use Swing, your developers are going to face a learning curve. Groovy SwingBuilder and similar libraries are just DSLs that cut out a lot of boilerplate and repetitive code. SwingBuilder certainly saves time (and is more elegant than pure java), but really the complex part of using Swing is dealing with the underlying framework.

The NetBeans Swing UI builder (Matisse) is really nice if you want drag-and-drop Swing development, but you still have to be pretty familiar with Swing if you want to understand how to hook everything together.

Ken Liu