Solved

Java client GUI suggestions for grid / scheduling application

Posted on 2011-03-08
9
683 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 50 total points
ID: 35074314
there are lots around eg. http://www.sencha.com/products/extgwt/
0
How our DevOps Teams Maximize Uptime

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us. Read the use case whitepaper.

 
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

MIM Survival Guide for Service Desk Managers

Major incidents can send mastered service desk processes into disorder. Systems and tools produce the data needed to resolve these incidents, but your challenge is getting that information to the right people fast. Check out the Survival Guide and begin bringing order to chaos.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
print map entry 34 72
check java version using powershell 13 171
Delete Android all or certain applications data programmatically 9 71
mysql jsp example issue 32 48
Introduction Java can be integrated with native programs using an interface called JNI(Java Native Interface). Native programs are programs which can directly run on the processor. JNI is simply a naming and calling convention so that the JVM (Java…
Introduction This article is the second of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers the basic installation and configuration of the test automation tools used by…
Viewers will learn about arithmetic and Boolean expressions in Java and the logical operators used to create Boolean expressions. We will cover the symbols used for arithmetic expressions and define each logical operator and how to use them in Boole…
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:

856 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