Solved

Java client GUI suggestions for grid / scheduling application

Posted on 2011-03-08
9
684 Views
Last Modified: 2012-05-11
Hello experts,

I am planing a redesign of a (Delphi) client-server application to java ee 6. I would like to use Spring 3 / Hibernate as a middle tier. The middle tier should serve several clients (rich, browser, mobile devices).

Actually the main surface in the Delphi world are feature packed grid controls to display monthly / daily schedules. We use devexpress vcl. (QuantumGrid / ExpressScheduler).

My question:

how can I have similar GUI functionality using java?
I am very unsure if I should use Swing, SWT, Flex, etc...

I have found decent controls in http://www.jidesoft.com which are Swing based.

Do you have other suggestions?

Eclipse RCP seems to be too restrictive on the layout.

Open source or licenseware is fine, I would have good options to create nice, feature packed client GUIs...

Any suggestions?

Thanks a lot!

Regards, Daniel
0
Comment
Question by:waeberd
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
  • 2
9 Comments
 
LVL 92

Expert Comment

by:objects
ID: 35074120
sounds like you might want to have a look at GWT
0
 

Author Comment

by:waeberd
ID: 35074222
Hi objects,

what grid controls / scheduling controls do you suggest using GWT?

Thanks, Daniel
0
 
LVL 92

Assisted Solution

by:objects
objects earned 50 total points
ID: 35074314
there are lots around eg. http://www.sencha.com/products/extgwt/
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 17

Assisted Solution

by:Dejan Pažin
Dejan Pažin earned 450 total points
ID: 35080593

Hmm... There seems to be some confusion here. You are talking about desktop application (Delphi) and objects is talking about web (GWT).

waeberd,

what do you want your application to be - a  web application or a desktop application? That is the first choice you have to make.

Both web and desktop can communicate with the middle tier. Since you used to have Delphi before, I suggest to go for desktop application. Although web applications have evolved a lot, it is still a pain to mimic a desktop application on the web. A lot of hard work.

If you go for desktop, I would choose Swing - the Jide controls you found are exactly what you need. There are also many free libraries and look and feels available:

http://www.jgoodies.com/
http://www.miglayout.com/
http://www.javootoo.com/
0
 

Author Comment

by:waeberd
ID: 35081190
The main application usage is rich featured planning, so the first priority is  to get a desktop application for planning users that is communicating with a middle tier.

The middle tier can be used for web representations but I think I will have to code different presentations for web and desktop.

So: first priority on desktop applications, but not losing the potential to (re)use the middle tier for web applications / mobile applications.

If Swing, any suggestions of how a Swing client (using the rich controls mentioned) can communicate efficiently with the middle tier?

Thanks folks!
0
 
LVL 17

Accepted Solution

by:
Dejan Pažin earned 450 total points
ID: 35081490

If desktop is priority then GWT is not an option.

I have the same structure as you do: Hibernate and EJBs on the server side, and the business logic is used by both web and Swing clients.

Swing client simply calls the server side EJBs and we use Hibernate annotated POJOs for data structure. The one thing you have to be aware of here, is that the Hibernate  objects may be lazy loaded and when you get them to the client side you have to watch out for any non loaded attributes.

This turned out to be an efficient way for the Swing to server communication. But you have to plan your Hibernate objects carefully - especially lazy loading.

I implemented a simple client side cache for data objects, where I was able to use that - that improved performance drastically of course, but implementing such a thing on your own is too havy, so I only had a very simple cache.


The business logic on the server is reused by the web application - this turned out to be good solution, although we had some issues with lazy loading again, but we fixed that.
0
 

Author Comment

by:waeberd
ID: 35082628
Great input folks!

So dejanpazin would do a plain Swing <-> EJB communication.
No particular framework here? (Spring MVC for example)?

Thanks!
0
 
LVL 17

Assisted Solution

by:Dejan Pažin
Dejan Pažin earned 450 total points
ID: 35082654

>> No particular framework here? (Spring MVC for example)?

That depends on your needs, I have the structure: Swing <--> EJB (Stateles session beans) <--> Hibernate <--> Database

I try to keep frameworks included at the minimum and only integrate what I really need. So far i had no need for anything else in my desktop application.
0
 

Author Closing Comment

by:waeberd
ID: 35082865
Thanks folks!
0

Featured Post

Space-Age Communications Transitions to DevOps

ViaSat, a global provider of satellite and wireless communications, securely connects businesses, governments, and organizations to the Internet. Learn how ViaSat’s Network Solutions Engineer, drove the transition from a traditional network support to a DevOps-centric model.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

For beginner Java programmers or at least those new to the Eclipse IDE, the following tutorial will show some (four) ways in which you can import your Java projects to your Eclipse workbench. Introduction While learning Java can be done with…
Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. Java Flight Recorder is a profiling and event collectio…
Viewers learn about the “for” loop and how it works in Java. By comparing it to the while loop learned before, viewers can make the transition easily. You will learn about the formatting of the for loop as we write a program that prints even numbers…
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:

749 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question