Time fires and there is about 13 days left for the deadline of FYP, I am behind schedule because as long as you design and implement the desired part out, more un-expected issue and ideas come out. Let say what I am implementing these days is the Private Messaging feature(PM), I had already design a very basic one, without friend list consideration, I predict I can finish it within 1 day and have bug fix and improvement for 1 day, but turn out that it needs 3 days, just only wish to make my application more user friendly…
What I did:
An InBox and OutBox, a message with title and rich text Body using DataGrid
What I didn’t think in detail:
Should it be multi-page, or just 1 datagrid?
Should it be multi-selectable?
How about bulk deletion?
Read/ Non-Read Flag?
And the most important is: The sorting of the messages. How to let users feel good to use.
People will say that, it’s just easy: sort the messages order by date in decending order and use it as the dataprovider of the datagrid. Okay, everything think that the data is displayed pretty good in the datagrid, but what if user click the column header? Flex will use its default sorting mechanism and disturb the original messages order. For example, if I press the header “readflag”, the messages are really sorted with “readflag” column but Flex will also sort other columns in the datagrid in ascending order. Making some very old message rise and new read/un-read message sink. So What do I do as soon as I get this point? I have to immediate draft a solution for this, like how should I handle the sorting, how to implement that sorting mechanism?
Initial sorted view:

After user’s manual ReadFlag sorting (click the column with some circles), the data is already a mess: the read/un-read messages are sorted but their date are not sorted as well

The same situation, with color indicated, occured, the ReadFlag column is sorted while the messages are not sorted by datetime, resulted that in such situation, the oldest message which is read already will be shown at the first row.

Things always go bad, yet, it still gets some way to go well. So then I learn the powerful feature of Flex DataGrid with reference to the following website the coding mentioned:
Programmatic multi-column sorting on DataGrid or AdvancedDataGrid
http://raghuonflex.wordpress.com/2008/01/25/programmatic-multi-column-sorting-on-datagrid-or-advanceddatagrid/
For sure it is not the only part that make the implementation more difficult than I expect. From the previous of some social platform experience, some statistic table should be maintained so as to facilitates the running of the platform. And careful updation of those statistic is important otherwise either making those statistic not real/incorrect or lowering the performance of the application/platform due to mass updation occuring in the database.
The point I want to point out is: Never think programming a software an easy stuff. And don’t think oversimple for a programmer who have heart to make good application stuffs.
And I wish my advisors and people who are going to be invited to test my application will not think my application is a mess stuff~^^