Sunday, June 24, 2007

Finished my cursors

Today I have finished my first mouse cursor set. I had a little bit more time, so I made version for windows (posted it here) and for X11 and the other systems (posted it here).

So I suppose, that next few days I will look at these sites, whether the users will like it or no. I have tested some preliminary version of these cursors for a few weeks on my notebook and they seems (for me) quite usable. Hour ago I noticed, that they look a bit worse on my CRT (then on my both TFTs), I'll give it a day and see, whether it's a problem or not.

While designing this cursor set I have stated some rules for me. Feel free to comment them on.

1. No colors in cursors - only black, white and shades of gray. I think, that users have on their desktops many various themes, and are using computers for many purposes (incl. computer graphics), so the cursors should be color-neutral (not to change the color feeling of the image).

2. 3D effect (and quite high contrast) will be fine, because it will look like not being a part of the UI (user interface) and the user can notice the cursors position sooner.

3. Minimum of animation - animation can lower users vigilance, so I used animation only when I wanted to attract the user's attention - for "busy" cursors and for "action running in background" cursor.

4. You can be original, but the users should immediately recognize the meaning of the current cursor.

5. Try to test the cursors for a quite long time. Some shapes sooner or later can start to bore you in an unbelievable way.

Project website can be found here.

Thursday, June 21, 2007

ASP.NET GridView Locale Issues

Last month we had strange problems using ASP.NET GridView component (accompanied with ObjectDataSource). String fields were O.K., but when creating or updating double field, exceptions arised.

The problem was, that GridView in this configuration (didn't tried with different type of DataSource), ignored locale settings, so typing numeric values with comma (or dash if you want) instead of period (point) produced exception. Using period caused this problem (when editing stored values, which where in business automatically converted to commas) also.

One quick solution was to switch the whole thread to the US locale, but that later caused some interferences with different parts of the code.

Luckily, I have somewhere (sorry, couldn't remember where) found the way to customize the conversion of data in GridView. It goes as follows (in VB.NET):

Simply create an ItemInserting event handler for the GridView and for all problematic values make the conversion as you need.


Protected Sub GridView_ItemInserting
(ByVal sender As Object,
ByVal e As System.Web.UI.WebControls.DetailsViewInsertEventArgs
)
Dim myconverter As System.ComponentModel.TypeConverter =
System.ComponentModel.TypeDescriptor.GetConverter(
GetType(Double))

e.Values("FieldName") =
myconverter.ConvertFromString(
CType(e.Values("FieldName"), String))
End Sub


That's all folks.