Wednesday, April 25, 2007

RightToLeft in DevExpress Controls (DXperience)

I found a post in DevExpress blog announcing they WON'T be adding RTL feature in near future! Now, that's a shame! With all the oil dollars being spent in middle east DevExpress team says they're not going to add RTL feature because it simply wouldn't worth their while! For more info on this check this link out :

http://community.devexpress.com/blogs/ctodx/archive/2006/12/13/554.aspx

A while a go, I was trying to add Right-To-Left feature to this suite, which is the only feature - In my idea - that is not provided. I've progressed a lot considering the work to be done and being single-handed! Although each and every control is not revised, (I don't need some of their controls for now), Editors and Utils project are working fully in RTL now (except for Tab control in Utils project).

Take a look at the screenshots below. Note that all the built-in devexpress captions (e.g. Ok, Cancel, internal ToolTips, Tab header captions, Calculator buttons, etc.) are localizable too.


Main View



List Editors



ImageComboBoxEdit



CalcEdit



ColorEdit




LookupEdit





Submit this story to DotNetKicks Shout it

9 comments:

Anonymous said...

DevExpress is not alone in this case. Some components of ComponentOne have the same problem. I used ComponentOne for several years. Report Component is the best around the world but RTL is not supported in both windows and web version.

Hadi Eskandari said...

Actually, I have worked with C1 report. Although it has some shortcomings with RTL, I managed to make it work with some workarounds, in an enterprise Web application using ASP.NET, and also some WinForm applications. With all the problems of C1 with RTL, IMHO it is still the best there is to be used in RTL oriented applications.

Anonymous said...

Hi, How did you do it ??

شهرام said...

Dear Hadi,
Did you change the source code of DevExpress to make some components support RTL?

Thanks

Hadi Eskandari said...

Hi,

I've changed the DevExpress sources in order to do so. That's the only (decent) way to do it. The only problem is that you need to do it all over again when they release a new version.

Chris said...

Hi Hadi

Interesting stuff!

We have been using DevExpress controls now for a couple of years and now have an opportunity to sell into the middle east market and so really need RTL support. However, a recent email to DevExpress has once again confirmed that there is little chance of RTL support being included in the near/mid future.

I can see that you managed to change the DevExpress code to support RTL for some controls, and whilst having to change their code is not something we really want to do, I'd be interested to know how easy you found it and the sort of timescales involved

Hadi Eskandari said...

Chris,

In a matter of 3-4 weeks I could manage to fix RTL issues in all controls resided in Utils and Editors projects. By doing this, other projects such as Grid partially supported RTL because they inherently reused existing corrected functionality. Working on Grid control can get much hairy as it is more complex.

With their latest release and rearcitechture, I think there MIGHT be ways to do this without touching their code (by subclassing the controls and replacing the drawing parts).

Hope this helps

Chris said...

Hadi, thanks for the feedback.

I was wondering whether you have an email address I can contact you on. I would like to explore in more detail what you have done and perhaps how you might help is if that's OK?

Hadi Eskandari said...

Sure...send your email at h dot eskandari at gmail.