views:

391

answers:

11

Hi,

I would like to write a somewhat complex web gui application. It will be used to edit certain content by displaying panels and allowing the user to drag items to edit the content.

The explanation is somewhat abstract, but the point is that i'm looking for a modern gui writing technology, the more standard it is the better odds of me finding information and samples to using it.

I've been using JavaFaces to write some simple web pages and have taken a look at RichFaces for purposes of writing the app described above. I would love to hear recommendation of similar technologies (For example - What was used to write this website?)

Thank you!!!

Update: Thanks for the answers so far, Since I was asked for more clarification I'll try to explain the use of the app: It will be used to edit a complex script. There will be one panel with the actions of the scripts (The phases) and the other panel will show the content of the currently selected action. To each action type there will be a different set of attributes to modify. You will be able to reorder actions by dragging them to a new location (Kinda like powerpoint slides organizer or flickr photo organizer) and also copy them that way. The content of the action attribute panel will be able to display various types of content such as html text and buttons and all kinds of stuff.

Hope that helps. Thanks Again!

Update2: After reading this StackOverflow Thread I'm leaning towards RichFaces for it's vast support and standardization.

+1  A: 

ASP.NET MVC was used to write this site.

To your question: you should use the technology you like. If you've used to Java, you may wish to explore various MVC frameworks for that. Or you can try out new unfamiliar to you (yet) technologies.

Developer Art
This answer is irrelevant in the java-context of the question
Bozho
The answer is precisely to the question (its last line). I suggest you read the question completely before voting down people.
Developer Art
after the edit it makes more sense. But SO doesn't count it as edit, so I can't undo the downvote. I still insist the your initial answer was eligible for a downvote.
Bozho
A: 

ICEfaces is one possibility. Demos here.

JRL
I've found icefaces to be fairly buggy. However, it's open source, so you can have a crack at fixing it yourself (i've had to on a few occasions)
Andrew Dyster
The same here...
Janusz
ICEfaces was originally selected to create the display framework for NASA's Constellation program, then dropped due to scaling issues (not bugs though).
JRL
A: 

I used richfaces including drag and drop functionality, realy nice to offer good usability.

stacker
+1  A: 

Take a look to GWT and SmartGWT. Together are quite a powerful combination to write RIA webapps.

Carlos Tasada
+1  A: 

An interesting framework that I would be glad if I had the time to look deeper into is Cappuccino. Look at 280Slides for an example.

bertolami
Thanks. Looks Awesome! Cappuccino work with Objective-J though...
Ben
Yes, but the result is plain Java Script isn't it? You can still use a Java backend.
bertolami
A: 

If you like the Java Web Technologies take a look at zk. It promises the same things as ICEFaces. I don't know if it can live up to that promises but IceFaces coul certainly not for me. ZK should enable you to build your web app like a common swing app.

Janusz
+4  A: 

It seems you need a RIA. The Java worlds offers the following options:

  • Google Web Toolkit - a powerful RIA technology, which will require you to go through a steep learning curve. Nice component frameworks are SmartGWT, gwt-ext and ExtGWT. In my opinion all of them have some drawbacks, but in your case you might not observe them.

  • RichFaces - quite powerful as well, and since you have JSF experience, I'd recommend this.

  • ZK - never used it and I don't like some aspects of it (at least a while ago when I last checked it), but it's still an option.

  • Echo3 - similar to GWT in the way of development, but very different in the actual result. I'm not sure, however, whether it's still in development

  • JavaFX - if you are adventurous, and your application won't be used by the open public, try it.

Bozho
A: 

I'd suggest that you do not invest into technologies/frameworks which are based on integration of browser side ajax capabilities with server side frameworks if you'll need advanced functionality in the browser. What is advanced and what is not is a completely different topic of course, but just to give you a heads up, as you start facing more and more complex UI requirements, you'll discover that the connectivity to back end framework (like JSF) will become more of a problem than a capability. Especially with things like JSF lifecycle, and most of the server side frameworks being based on the idea of an HTTP post (for client-server communication), you'll have issues. An example: you'll be requested to develop a very specific UI widget that has drag and drop capability. If the Ajax-jsf integration framework of your choice does not contain this widget, your problem is born at this point. You'll start looking for ways of injecting data into existing channels, and it will get messy. To avoid further speculation, let me just repeat that if you are sure that your chosen technology setup will give you 90%+ of the capabilities you'll need, that is ok. If you end up developing too much custom stuff, then consider an integration between a powerful client side (javascript or flex or silverlight) layer and a simpler server side layer (resteasy etc) Initial development may not be as fast as the other options, but if you'll need flexibility, this will end up being a much cleaner setup. I'd suggest you take a look at DOJO, and ExtGWT .

Cheers Seref

A: 

It looks like XHTML + JavaScript could be enough for the dragging & dropping functionality you describe. This means you can use just about any web framework of your choice. If you need frequent asynchronous server calls (AJAX) then GWT is the most standard Java framework I think, although it has its peculiarities. Personally I like Wicket because it does not use XML configurations, relies heavily on code and has a nice community around it. Wicket also offers good AJAX support btw.

Adriaan Koster
A: 

Flex is also nice open source option to create Rich Internet Applications.
If you would like to stick to the JavaScript then you can use JQuery, YUI etc

Anil Namde
+1  A: 

There is also one very interesting thing called Vaadin check it http://demo.vaadin.com/sampler/