Solved

Java client GUI suggestions for grid / scheduling application

Posted on 2011-03-08
9
674 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
Comment Utility
sounds like you might want to have a look at GWT
0
 

Author Comment

by:waeberd
Comment Utility
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
Comment Utility
there are lots around eg. http://www.sencha.com/products/extgwt/
0
 
LVL 17

Assisted Solution

by:Dejan Pažin
Dejan Pažin earned 450 total points
Comment Utility

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
Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

 

Author Comment

by:waeberd
Comment Utility
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
Comment Utility

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
Comment Utility
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
Comment Utility

>> 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
Comment Utility
Thanks folks!
0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

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…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Viewers learn about the “while” loop and how to utilize it correctly in Java. Additionally, viewers begin exploring how to include conditional statements within a while loop and avoid an endless loop. Define While Loop: Basic Example: Explanatio…
Viewers learn how to read error messages and identify possible mistakes that could cause hours of frustration. Coding is as much about debugging your code as it is about writing it. Define Error Message: Line Numbers: Type of Error: Break Down…

763 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

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now