kueda (owner)

Fork Of

gist: 6846 by anonymous

Forks

Revisions

gist: 8229 Download_button fork
public
Public Clone URL: git://gist.github.com/8229.git
Embed All Files: show embed
ActionScript #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package {
  import flare.scale.ScaleType;
  import flare.util.Shapes;
  import flare.vis.Visualization;
  import flare.vis.data.Data;
  import flare.vis.data.DataSprite;
  import flare.vis.operator.OperatorList;
  import flare.vis.operator.encoder.ColorEncoder;
  import flare.vis.operator.encoder.PropertyEncoder;
  import flare.vis.operator.layout.AxisLayout;
  
  import flash.display.Sprite;
  import flash.geom.Rectangle;
 
  [SWF(width="1000", height="600", backgroundColor="#ffffff", frameRate="30")]
  public class FlareTimeline extends Sprite {
    private var vis:Visualization;
    private var bounds:Rectangle;
    
    public function FlareTimeline() {
      bounds = new Rectangle(0,0,800,400);
      // set up timeline operators
      var timeline:OperatorList = new OperatorList(
        new AxisLayout("data.dateRead", "data.series"),
        new ColorEncoder("data.series", Data.NODES,
          "fillColor", ScaleType.CATEGORIES),
        new PropertyEncoder({
          lineAlpha: 0, alpha: 0.5, buttonMode: false,
          shape: Shapes.HORIZONTAL_BAR
        }),
new WidthEncoder("data.duration", Data.NODES)
      );
      timeline[0].xScale.preferredMin = new Date(2008,1,1);
      timeline[0].xScale.preferredMax = new Date(2008,10,1);
      
      // get the data
      var data:Data = getData();
      
      // create the vis
      vis = new Visualization(data);
      vis.operators.add(timeline);
      vis.bounds = bounds.clone();
      vis.update();
      vis.x = 10;
      vis.y = 10;
      addChild(vis);
    }
    
    private function getData():Data {
      var data:Data = Data.fromArray([
        {series: 'a', dateAdded: new Date(2008,8,1),
          dateRead: new Date(2008,8,25)},
        {series: 'j', dateAdded: new Date(2008,7,1),
          dateRead: new Date(2008,7,11)}
      ]);
      data.nodes.visit(function(n:DataSprite):void {
        n.data.duration = n.data.dateRead - n.data.dateAdded;
      });
 
      return data;
    }
  }
}