Show
Ignore:
Timestamp:
08/09/10 10:51:45 (22 months ago)
Author:
mszopinski
Message:

calendar, simple display

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • ssme/trunk/flex/Calendar/src/com/kh/ssme/components/DayCanvas.as

    r4031 r4037  
    2929 
    3030import mx.containers.Canvas; 
     31import mx.controls.Label; 
    3132import mx.controls.TextArea; 
    3233 
     
    3738        } 
    3839 
    39         [ArrayElementType("com.kh.ssme.entity.TimeFrameEntity")] 
    40         private var dataProvider_:Array;  
    41         public function set dataProvider(value:Array):void{ 
    42             dataProvider_ = value; 
    43             removeAllChildren(); 
    44             createEvents(); 
    45             validateNow();             
    46         } 
    47         public function get dataProvider():Array{ 
    48             return dataProvider_; 
     40//        public var showHourLabels:Boolean = false; 
     41// 
     42//        private var hourLabels:HashArray = new HashArray(); 
     43// 
     44//        override protected function createChildren():void{ 
     45//            super.createChildren(); 
     46// 
     47//            if(showHourLabels){ 
     48//                var score:int; 
     49//                var el:Label; 
     50//                for(var i:int=0; i<=24; i++){ 
     51//                    el = new Label(); 
     52//                    el.id = el.text = ((i<10)?("0"+i):(i))+":00"; 
     53// 
     54//                    if( !hourLabels.containsKey(el.id) ){ 
     55// 
     56//                        this.addChild( el ); 
     57// 
     58//                        el.setStyle("textAlign","right"); 
     59//                        el.setStyle("color", 0x000000); 
     60//                        el.setStyle("fontSize", 11); 
     61//                        el.visible = el.includeInLayout = false;//((i%24) == 0); 
     62//                        score = 0x20; 
     63//                        if(i%24 == 0)    score |= 0x01; 
     64//                        if(i%12 == 0)    score |= 0x02; 
     65//                        if(i%6 == 0)     score |= 0x04; 
     66//                        if(i%3 == 0)     score |= 0x08; 
     67//                        if(i%2 == 0)     score |= 0x10; 
     68// 
     69//                        hourLabels.put( el.id, { score:score, element:el } ); 
     70// 
     71//                    } 
     72//                } 
     73//            } 
     74// 
     75//        } 
     76 
     77        override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ 
     78 
     79            // call first in order to get grid drawn correctly 
     80            super.updateDisplayList(unscaledWidth, unscaledHeight); 
     81 
     82            // do not erase old drawings! 
     83            //graphics.clear();    
     84             
     85//            if(showHourLabels && hourLabels.size>0){ // added 
     86// 
     87//                var textHeight:int = (hourLabels.getValueAt(0).element as Label).textHeight;    // label text height 
     88//                var count:int = Math.floor( unscaledHeight / (textHeight*1.5) );    // determine number of labels 
     89//                var mark:int = 0x01; 
     90//                if(count <= 3)              mark = 0x02; 
     91//                else if (count <= 5)        mark = 0x04; 
     92//                else if (count <= 9)        mark = 0x08; 
     93//                else if (count <= 12)       mark = 0x10; 
     94//                else /*if (count <= 24)*/   mark = 0x20; 
     95// 
     96//                var item:Object; 
     97//                var inBorderThicknesses:Array = getStyle_("innerBorderThicknesses", [ 1 ]); 
     98//                var ystep:Number = (unscaledHeight - (2*outerBorderThickness_+2*verticalMargin_) - (23*inBorderThicknesses[0])) / 24; 
     99//                var y:Number = outerBorderThickness_+verticalMargin_; 
     100//                //graphics.lineStyle(1, 0x0000ff, 0.7, true);   // debug 
     101//                for (var row:int = 0; row <=24; row++ ){ 
     102//                    //graphics.drawRoundRect(0, y - (textHeight*0.66), leftHorizontalMargin_, Math.min( Math.floor( ystep ), textHeight), 0, 0);// debug 
     103// 
     104//                    item = hourLabels.getValueAt(row); 
     105//                    item.element.visible = item.element.includeInLayout = true;//(item.score & mark) > 0; 
     106//                    item.element.x = 0; 
     107//                    item.element.y = Math.floor( y - (textHeight*0.66) ); 
     108//                    item.element.width = leftHorizontalMargin_; 
     109//                    item.element.height = Math.min( Math.floor( ystep ), textHeight); 
     110// 
     111//                    y += (ystep + inBorderThicknesses[0]); 
     112//                } 
     113// 
     114//            } 
     115 
    49116        } 
    50117 
    51         private var eventsMap:Object = new Object(); 
     118        [ArrayElementType("com.kh.ssme.entity.TimeFrameEntity")] 
     119        private var dataProvider_:HashArray; 
     120        public function set dataProvider(value:HashArray):void{ 
     121            dataProvider_ = value; 
     122 
     123            for(var i:int = 0; i<eventsMap.size; i++){ 
     124                this.removeChild( eventsMap.getValueAt(i) ); 
     125            } 
     126            createEvents(); 
     127            validateNow(); 
     128        } 
     129        public function get dataProvider():HashArray{ 
     130            return dataProvider_; 
     131        }     
     132 
     133        private var eventsMap:HashArray = new HashArray(); 
    52134        public function createEvents():void{ 
    53135 
     
    57139            // create events 
    58140            var ev:EventField; 
     141            var i:int = 0; 
    59142            for each(var json:TimeFrameEntity in dataProvider_){                 
    60143                ev = new EventField(); 
    61                 eventsMap[json.UUID] = ev; 
     144                eventsMap.put(json.UUID, ev); 
    62145                //ev.setStyle("backgroundColor", 0xffff00); 
    63146                ev.setStyle("borderThickness", 5); 
     
    69152 
    70153                addChild( ev ); 
    71                 sizeEvent( ev ); 
     154                sizeEvent( ev, i ); 
     155                i += 100; 
    72156 
    73                 var c:Canvas = new Canvas(); 
    74                 c.width = 100; 
    75                 c.height = ev.height; 
    76                 c.x = 300; 
    77                 c.y = ev.y; 
    78                 c.setStyle("backgroundColor", 0xff0000); 
    79                 addChild( c ); 
     157//                var c:Canvas = new Canvas(); 
     158//                c.width = 100; 
     159//                c.height = ev.height; 
     160//                c.x = 300; 
     161//                c.y = ev.y; 
     162//                c.setStyle("backgroundColor", 0xff0000); 
     163//                addChild( c ); 
    80164 
    81165            } 
     
    83167        } 
    84168 
    85         private function sizeEvent(ev:EventField):void{ 
     169        private function sizeEvent(ev:EventField, i:int):void{ 
    86170            var data:TimeFrameEntity = ev.eventInfo.eventData; 
    87171            if(data){ 
     
    96180                ev.height = stepY * timeWidth; 
    97181                ev.width = 200;//XXX 
    98                 ev.x = 50;//XXX 
     182                ev.x = 50+i;//XXX 
    99183                ev.y = (data.from.getHours()*4 + timeBegin)*stepY + outerBorderThickness_; 
    100184                ev.invalidateSize();