I am not sure if this is documented or I cannot find, but the 'as' keyword can actually work in Actionscript 3.0. I try it as I want to type cast an object from getChildByName from a Container object and cast it into a Canvas. Something like this:
import mx.core.*;
import mx.containers.*;
var mainCanvas:Canvas =
main_app.getChildByName(main_app.CANVAS) as Canvas;
I tot of trying it out since I always do that in C#. Pardon me if this is already well known as I am pretty new to AS3.0. If you know where to find the documentation for AS3.0 (Except live docs), do drop a comment!
I was trying for a few hours trying to round border to the stickies.
I did manage to have a round border for the sticky in the end but I realize they look real ugly with round border (especially when collapse, looks like a capsule..haha) and the codes I trying is still buggy, which makes the stickies 'swim' down the screen when they are collapsed, so I decide to remove it away first since they sort of make the stickies look weird =(
Also, solved some bugs for the current implementation and also added the notification codes so that alerts can be set. I am not sure if there is a better way, but it seems that all the example I found sort of uses the 'brute force' way of setting up notifications - A timer with an interval of 1000 and on each tick event, loop through the array for any alarm they have. I try another way instead, althought I believe there should be a much better way..haha.. for me, I keep track of the next incoming alert and set the timer Interval equivalent to it. Whenever a notification event occurs, or a notification event is added, I loop the stickies and find the next nearest incoming notification again, and reset the timer Interval. It works fine so far, maybe i try to run it on VM and change the system time on it to see if anything crops up tomoro.
Anyway this is the screen shots of the current implementation:

Manage to add in color picker

Changed the icons (I know it looks familiar) Anyone can volunteer to make icons ? ha..

I know it look weird, removed
Resizing is now smoother too, thanks to serena for supplying her goo-codes..haha.. will touch more on that tomoro..time to ZzzZ
Hopefully will have time tomoro to do up all the little little bugs.
Went for mayday concert today at S'pore expo today! I was at the mrt at ard 7 pm plus when I realize everyone is wearing red...haha.. Hmm..most of the person in the group I went with are wearing red too..but not me..haha..And also, my friend is pretty resourceful as she managed to get the tickets (12 in total) signed by mayday.

The entire concert last from 8.30 to near 12am. The performance is great, but the seatings is not. Note at it is held at max pavilion (expo) and not indoor stadium and the chair are on the SAME LEVEL (except those far behind ones). Yes, same level, that means if you are unlucky to get a tall guy in floor of you, you can pretty just sit down and listen, since the screen at max pavilion is very small and located very low too. I saw a lot of poor audience who cannot see anything at all, resort to stand on the chair, and then get asked to come down by the personnel there (ok, i am one of those, haha). But, really, nobody wants to spend near to hundred bucks just listening to a pop concert? Maybe can take note, if next time you are attending a concert at max pavilion, either buy the last row, or the first row, haha. Other than the seats, the concert is 5 star. If they come again (and hopefully at indoor stadium pls), I will go again (hope I am not too old)
I come up with an idea of how group management in could be more UI based, so in the main options, I added a listView whereby the user can click and drag the stickies into their relevant groups, as well as create new groups using the listView.
Note: The icon below are not the finalize icons

Folders and the Stickies can be managed in the listView

User can create new group within the listView

Renaming of group name / stickies in the list view
Other functions include the dragging of the group folder to the scrap! icon to delete the entire group folder (thanks to serena for giving this idea)
Any new ideas are welcome, just comment!
Window blinds 5 is finally out as of tuesday. I think I am among the first to grab an enhanced copy of it...haha.
Window blinds is a program which allow you to skin your window with skins like Mac skin, Vista skin, etc. I have been using it since version 4.0 and I stick to it since then. The reason is because first of all, it has great performance compare to other skinning program (little impact to start up time and no memory leak). I have applied Windows Vista skin applied to it now. Yes, it support transparency effects too =)
Heres some screen shots:

Those who are unwilling to pay $20 for the enhanced get can download the free version too =)
I experiment with the login control today and find that it is pretty easy and intuitive to use. However, if I am already using paladin for the data tier, then perhaps it will be good to combine this two to let them work together. This can be easily achieve by creating a custom class which inherits from System.Web.Security.MembershipProvider.
In my database, my schema contained a table named customer. The table contains a field named name and a field named password, which will be used to be authenticate against.

Using Paladin's BEWizard, I generate the entity classes and compiled it into a dll which will be referenced by my asp.net 2.0 application.
After which, I add a new class and named it
cutixProvider. This provider need to inherits from System.Web.Security.MembershipProvider, and to validate the user, implements the
ValidateUser method
Inside the
ValidateUser method, I called the
bc_validate method from the
usermanagement class, a custom class which inherits from Paladin.Core.BusinessComponent. The
usermanagement class will use 2 entity class generated by BEWizard, the
cutix_customerList which is a collection of the customer object, and
cutix_customer, which is the customer object itself. I implement the method as follows
//Inside usermanagment class, which inherits Paladin.Core.BusinessComponent
public bool bc_validate(string username, string password)
{
cutix_customerList cusList = new cutix_customerList();
this.Populate(cusList, new FilterList(
new Filter("name", Comparison.Equals, username)));
return (cusList.Count > 0 &&
cusList[0].password.Equals(password));
}
In this case,
username is not the primary key of my database. If username is the primary key of your database, I believe the code can be simplify to:
public bool bc_validate(string username, string password)
{
cutix_customer cus = new cutix_customer(username);
this.Populate(cusList);
return cus.password.Equals(password);
}
In the cutixProvider itself, I implement the
ValidateUser method as follows
public override bool ValidateUser(string username, string password)
{
usermanagement usermanager = new usermanagement();
return usermanager.bc_validate(username, password);
}
Now what is left is to edit the web config to for the login controls to use cutixProvider:
<!--config for paladin -->
<configSections>
<sectionGroup name="Paladin">
<sectionGroup name="data">
<section name="database" type="Paladin.Configuration.DatabaseSectionHandler,Paladin.Core"/>
</sectionGroup>
</sectionGroup>
</configSections>
<Paladin>
<data>
<database>
<connection name="default" engine="mssql" encrypted="false" connectionString="Server=<your server>;Database=<your database>;User Id=<userid>;Password=<password>;pooling=true"/>
</database>
</data>
</Paladin>
<!--end config for paladin-->
<system.web>
<customErrors mode="Off"/>
<trust level="Full" originUrl="" />
<authorization>
<allow users="*" />
</authorization>
<authentication mode="Forms">
<forms name=".ASPXAUTH" loginUrl="~/admin/default.aspx" protection="Validation" timeout="20"/>
</authentication>
<membership defaultProvider="cutixProvider" userIsOnlineTimeWindow="15">
<providers>
<clear/>
<add name="cutixProvider"
type="cutixProvider"
enablePasswordRetrieval="true"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
applicationName="/"
requiresUniqueEmail="true"
passwordFormat="Clear"
description="Stores and retrieves membership data from Paladin"
/>
</providers>
</membership>
</system.web>
Once this is done, simple drag in a login control and it will work =)