?
Solved

Java client GUI suggestions for grid / scheduling application

Posted on 2011-03-08
9
Medium Priority
?
692 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
  • 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 200 total points
ID: 35074314
there are lots around eg. http://www.sencha.com/products/extgwt/
0
Industry Leaders: 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 1800 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 1800 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 1800 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

[Webinar] Cloud and Mobile-First Strategy

Maybe you’ve fully adopted the cloud since the beginning. Or maybe you started with on-prem resources but are pursuing a “cloud and mobile first” strategy. Getting to that end state has its challenges. Discover how to build out a 100% cloud and mobile IT strategy in this webinar.

Question has a verified solution.

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

By the end of 1980s, object oriented programming using languages like C++, Simula69 and ObjectPascal gained momentum. It looked like programmers finally found the perfect language. C++ successfully combined the object oriented principles of Simula w…
Java functions are among the best things for programmers to work with as Java sites can be very easy to read and prepare. Java especially simplifies many processes in the coding industry as it helps integrate many forms of technology and different d…
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:
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.
Suggested Courses
Course of the Month13 days, 19 hours left to enroll

807 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