Customizing the current date in the Flex DateField control

by Peter deHaan on December 19, 2007

in DateField

In an earlier example, “Changing the current date’s background color in the Flex DateField control”, we saw how you can customize the background color of the current date, assuming that the showToday property is true. In the following example, we see how you can change the font color, style, and weight of the current date by setting the todayStyleName style in the Flex DateField control’s nested DateChooser control.

Full code after the jump.

View MXML

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2007/12/19/customizing-the-current-date-in-the-flex-datefield-control/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="top"
        backgroundColor="white">

    <mx:Style>
        DateField {
            todayColor: haloOrange;
            dateChooserStyleName: myCustomDateChooser;
        }

        .myCustomDateChooser {
            todayStyleName: myCustomTodayStyleName;
        }

        .myCustomTodayStyleName {
            color: black;
            fontStyle: italic;
            fontWeight: bold;
        }
    </mx:Style>

    <mx:ApplicationControlBar dock="true">
        <mx:Form styleName="plain">
            <mx:FormItem label="showToday:">
                <mx:CheckBox id="checkBox"
                        selected="true"
                        change="dateField.open();" />
            </mx:FormItem>
        </mx:Form>
    </mx:ApplicationControlBar>

    <mx:DateField id="dateField"
            showToday="{checkBox.selected}"
            creationComplete="dateField.open();" />

</mx:Application>

View source is enabled in the following example.

{ 7 comments… read them below or add one }

1 Avery April 28, 2008 at 7:46 pm

Hello Peter.

        DateField {
            todayColor: haloOrange;
            dateChooserStyleName: myCustomDateChooser;
        }

        .myCustomDateChooser {
            todayStyleName: myCustomTodayStyleName;
        }

        .myCustomTodayStyleName {
            color: black;
            fontStyle: italic;
            fontWeight: bold;
        }

Can you leave a demo here? Can I change whatever the color I want?

Reply

2 peterd April 28, 2008 at 8:54 pm

Avery

Yes.

Peter

Reply

3 tkong May 15, 2008 at 1:59 am

Hi Peter,

How about when the calendar is showing any month other than this month;
then when the showToday is checked the month will redraw the current month, with today highlighted, of course.

Thanks in advance.

tkong

Reply

4 peterd May 15, 2008 at 8:28 am

tkong,

Something like this?

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white">

    <mx:Script>
        <![CDATA[
            private function init():void {
                var theFuture:Date = new Date();
                theFuture.month += 2;
                dateChooser.displayedYear = theFuture.fullYear;
                dateChooser.displayedMonth = theFuture.month;
            }
        ]]>
    </mx:Script>

    <mx:ApplicationControlBar dock="true">
        <mx:Button label="Current date"
                click="dateChooser.selectedDate = new Date();" />
    </mx:ApplicationControlBar>

    <mx:DateChooser id="dateChooser"
            initialize="init();" />

</mx:Application>

Peter

Reply

5 Nathan April 9, 2009 at 12:12 am

Hey is there a way to change the color of the day any day I want based on a variable.
Like if the string on a database is this then the color of the specific day on the datechooser will be labeled in purple or green.

Reply

6 Raju September 11, 2009 at 5:16 am

Hi,
Is it possible to change the color of the day depending on some xml data put in data provider of an DateChooser?
like I hav the following:

 
 
 
        DateChooser {
            dateChooserStyleName: myDateChooser;
        }
 
        .myDateChooser {
            background-color:red;           
            font-size:12;
 
        }
 
        .myToday {
 
            fontWeight: bold;
            font-size:14;
            font-thickness:4;
            background-color:yellow;
 
        }
 
 
 
		 0)
        {
         for (var i:uint=0; i &lt; mycal.numChildren; i++)
         {
          var calendarObj:Object=mycal.getChildAt(i);
          if (calendarObj.hasOwnProperty(&quot;className&quot;))
          {
            if (calendarObj.className == &quot;CalendarLayout&quot;)
            {
              var cal:CalendarLayout=CalendarLayout(calendarObj);
 
              for (var j:uint=0; j  0)
                  {
                    for (var k:uint=0; k &lt; eventArray.length; k++)
                    {
                      dayHTML+=&quot;<a HREF='Event:" + eventArray[k].data + "' rel="nofollow">" + eventArray[k].label + "</A>";
 
                    }
 
                    day.htmlText=dayHTML;
                    day.styleName="myToday";
                    mycal.validateDisplayList();
                   //Alert.show("inside last Loop  "+dayHTML);
                   // day.opaqueBackground=true;
 
                  }
                }
              }
            }
          }
         }
       }
      }
 
      private function linkHandler(event:TextEvent):void
      {
        Alert.show("Event: " + event.text);
      }
 
      private function dateHelper(renderedDate:String):Array
      {
        var result:Array=new Array();
        for (var i:uint=0; i 
 
 
 
 
 
 
 
 
 
 
 
And the data1.xml as :
 
 
 
 
8/22/2009
This is  a test 1
Stephens Test 1
 
 
8/23/2009
This is  a test 2
Stephens Test 2

I want to highlight only the days have some event in thedata1. xml.

Reply

7 Anonymous November 14, 2009 at 8:33 am

I tried this code but i am not able to get the desired color in the date field

Reply

Leave a Comment

Sorry, this blog is terrible at eating HTML comments.
If you're pasting any HTML/XML/MXML code, you need to convert your < characters to &lt; and your > characters to &gt; .

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Anti-Spam Protection by WP-SpamFree

Previous post:

Next post: