Posts Tagged ‘JSF’

Recession or Credit Crunch time imposes heavy restrictions on a company’s spending. Generally where a company can hire 10 developers, they are forced to reduce this to 5 or less developers.

Not just that, each individual is required to pick up the work of 2 or more individuals and also, wear multiple hats such as analysis, development, mentoring, project management, deployment, testing and user training. This means that a smaller development team is required to develop the same size and quality of a project as a larger team did before.

A lot of time in the project is taken up for design. However, once the database design is in place, a team is required to develop a series of screens that allow the end users to quickly get a feel for the project and be able to do Create, Retrieve, Update and Delete operations on the underlying database.

Add to this, requirements such as search, filtration, pagination, etc. The requirements and expectations don’t stop there. You will have the higher management asking for Rich Internet Experience and Google-like search.

In the recent past, I have been involved in many projects where the requirements have been similar to what I have described above for some small to medium sized business clients.

So what tools and frameworks really work in such situations you may ask. I have been using the following:

  • Java / J2EE
  • JSF
  • RichFaces
  • JBoss Seam
  • Java Persistence API (JPA) driven by Hibernate
  • PostgreSQL database
  • JBoss Application Server
  • Linux

The above stack is not only fantastic for developer productivity, it also provides fantastic TCO (Total Cost of Ownership). Depending upon the kind of support requirements, the stack can cost anything from Free to GBP 100,000 a year apart from the hardware costs. As the above stack offers a high developer productivity, the cost of development goes down significantly as well. And so does the time. Of course, these two depend largely upon the complexity of the project.

Interesting isn’t it? Especially when you consider that many organizations spend a few Hundred Thousand Pounds on just keeping their applications running!!! Of course, for larger organisations and banks, this cost alone can run into Millions of Pounds.

This week, CSS layouts kept me awake into the wee hours almost every single day. I think a bit of background is in order before I go any further here.

My company is busy developing the next generation shopping cart application. We are looking to break our usual mould and use some new technologies – well, some are old and established and some are new – such as CSS (so that we can optimise the shopping card for Search Engines), XHTML, Java EE, JBoss Seam, JSF, EJB3 and JPA.

In the past, I have used frames and tables to a very large extent for layouts. However, this has quite a few problems:

  • Search Engines cannot work with Frames particularly well
  • Screen readers cannot read Frames and Tables based websites properly
  • Coding Login and Logout using Frames requires JavaScript hacks
  • and many more…

So I decided to look for a way to use CSS for layouts. Initially I managed to get hold of a layout that got us off the ground. However, we quickly realised that if we were serious about our product, we needed a better layout…something that made better utilisation of the Screen real estate.

Most CSS layouts out there are lame, to say the least. They simply use a width of 800 pixels. Come on designers, most people have a monitor with 1024 pixels width these days…and even more so on wide screen laptops such as mine. So why waste this space?

So I set out to search for a layout that had a header, a top menu, 2 to 3 columns with one column having fluid width and a footer that stuck to the bottom of the screen/content. Easier said than done. It so happens that what I was looking for was the “Holy Grail of CSS”. And the search proved to be just as difficult and frustrating as the search for the real “Holy Grail”.

I searched on Google. I asked the question on LinkedIn Answers. And I tried many a times in vain to create a layout of my own.

Well, I must say, I had quite a few sleepless nights…and a lot of frustration. However, I kept at it. And finally, I have managed to come up with a set of my own layouts.

I have uploaded all my layouts in a single zip file here.

These layouts are as follow:

  • 1colsbottomfooter – 1 column with footer sticking to the bottom of the screen/content
  • 1colsleftnavslickbottomfooter – 1 column with footer sticking to the bottom of the screen/content and extra CSS for navigation
  • 1colstickyfooter – 1 column with footer sticking to the bottom of the content
  • 2colsleftnavbottomfooter – 2 columns with left nav and footer sticking to the bottom of the screen/content
  • 2colsleftnavslickbottomfooter – 2 columns with left nav and footer sticking to the bottom of the screen/content and extra CSS for navigation
  • 2colsleftnavstickyfooter – 2 columns with left nav and footer sticking to the bottom of the content
  • 2colsrightnavbottomfooter – 2 columns with right nav and footer sticking to the bottom of the screen/content
  • 2colsrightnavslickbottomfooter – 2 columns with right nav and footer sticking to the bottom of the screen/content and extra CSS for navigation
  • 2colsrightnavstickyfooter – 2 columns with right nav and footer sticking to the bottom of the content
  • 3colsbottomfooter – 3 columns – holy grail css – with foter sticking to the bottom of the screen/content
  • 3colsslickbottomfooter – 3 columns – holy grail css – with foter sticking to the bottom of the screen/content and extra CSS for navigation
  • 3colstickyfooter – 3 columns – holy grail css – with foter sticking to the bottom of the content

Quite a few of them…I didn’t realise until I actually started to write about them.

The following resources were useful in creating the above layouts:

These layouts are free to use. And if they help you sleep any better, feel free to link back to me or drop me an email :-) .

For those of you looking to get any modifications done, I am happy to do so at a reasonable charge. Feel free to contact me.

I hope you have found the true Holy Grail of CSS here.

RichFaces 3.2.1 GA has been released. Following is a small list of new features and bug-fixes:

New Features Introduced
 

  • Plug’n'Skin feature introduced
  • Demo laguna skin created using plug’n'skin
  • Suggestion Box improved (JS API for calling suggestion and accessing selected Objects added)
  • Sorting futher improvements (Sorting objects not strings)
  • Filtering further improvements (default input corrected and styled)
  • DataScroller? improved (multiple instances behaviour and page binding corrected)
  • componentControl and contextMenu attachement improved

 
Bug Fixes
 

  • dataTable and sorting, filtering features (corrections on decode)
  • scrollableDataTable fixes (Scrolling and loading data problems, cross-browser support fixes)
  • ComboBox? fixes (according to customers feedback)
  • File Upload improvements and fixes (according to community feedback and internal tests)
  • Character encoding problems(according to customers feedback)
  • Memory leaks and perfomance fixes (according to customers feedback)
  • MyFaces specific fixes
  • Opera browser support fixes