Author: tomithy
Date: 2010-07-10 10:14:23 -0700 (Sat, 10 Jul 2010)
New Revision: 20890

Modified:
   cytoscapeweb/branches/gsoc2010/demos/src/GBEB/DataDisplay.as
Log:


Modified: cytoscapeweb/branches/gsoc2010/demos/src/GBEB/DataDisplay.as
===================================================================
--- cytoscapeweb/branches/gsoc2010/demos/src/GBEB/DataDisplay.as        
2010-07-10 13:25:53 UTC (rev 20889)
+++ cytoscapeweb/branches/gsoc2010/demos/src/GBEB/DataDisplay.as        
2010-07-10 17:14:23 UTC (rev 20890)
@@ -1,6 +1,8 @@
 package GBEB
 {
        import flare.vis.data.EdgeSprite;
+       import flare.vis.operator.encoder.PropertyEncoder;
+       import flare.vis.operator.label.Labeler;
        
        import flash.display.Sprite;
        import flash.events.Event;
@@ -11,33 +13,42 @@
        import flash.text.TextField;
        import flash.text.TextFormat;
        import flash.utils.Timer;
+       
 
 
-
        //Helper class to Data
        public class DataDisplay extends Sprite
        {
                private var _bounds:Rectangle;
+               private var _data:Data;
                private var _visBoundary:Sprite = new Sprite();
                private var _textFieldMouseTracker:TextField = new TextField();
                private var _mesh:Mesh; 
                private var _currentShape:Shape;
-               private var _timer:Timer = new Timer(1000);
+               //private var _timer:Timer = new Timer(1000);
                private var _counter:int = 0;
                
                private var _displayContainer:Sprite = new Sprite();
                private var _meshContainer:Sprite = new Sprite();
                private var _highlightShapeContainer:Sprite = new Sprite();
+               private var _visCentroid:Sprite = new Sprite();
+               private var _visEdgesContainer:Sprite = new Sprite();
                
-               public function DataDisplay()
+               private var user:Object = {
+                       nodes: {shape: Shapes.WEDGE, lineColor: 0xffffffff},
+                       edges: {lineWidth:2}
+               }
+               
+               public function DataDisplay(d:Data):void
                {
+                       _data = d;
                        addChild(_visBoundary);
                        
                        
                        _textFieldMouseTracker.selectable = false;
                        addChild(_textFieldMouseTracker);
                        //addChild(_textFieldGridTracker);
-                       addEventListener(MouseEvent.MOUSE_MOVE, 
mouseTracker,true);
+                       addEventListener(MouseEvent.MOUSE_MOVE, mouseTracker, 
false, 0, true);
                        
                        /*_timer.start();
                        _timer.addEventListener(TimerEvent.TIMER, function 
tick(e:TimerEvent):void 
@@ -51,6 +62,13 @@
                        trace("DataDisplay added");
                } 
                
+               public function cleanup():void
+               {
+                       removeChild(_textFieldMouseTracker);
+                       removeChild(_displayContainer);
+                       removeEventListener(MouseEvent.MOUSE_MOVE, 
mouseTracker);
+               }
+               
                private function redraw():void
                {
                        
@@ -88,6 +106,16 @@
                        public function updateMesh(mesh:Mesh):void
                        {
                                _mesh = mesh;
+                               for each (var p:Point in 
_mesh.nonRedundantShapeIndexArray)
+                               {
+                                       var s:Shape = 
_mesh.returnShapeFromIndex(p);
+                                       //trace("DataDisplay: Tracing Edge ", 
s.meshEdge.name + ": " + s.meshEdge.source.x, s.meshEdge.source.y, 
s.meshEdge.target.x, s.meshEdge.target.y);
+                               } 
+                               
+                               //displayGrids();
+                               //redrawMesh();
+                               
+                               trace("DataDisplay: Mesh is updated!");
                        }
                        
                        private function displayMeshData(mouseX:int, 
mouseY:int):String
@@ -96,7 +124,9 @@
                                
                                //variables used to adjust amount of info in 
grid display
                                var highlightShape:Boolean = true;
+                               var displayCentroid:Boolean = true;
                                var displayDirection:Boolean = true;
+                               var displayMeshEdges:Boolean = true;
                                var displayEdgeSourceTarget:Boolean = true;
                                
                                var shapeInfo:String;   
@@ -113,12 +143,21 @@
                                                
highlightShapeFxn(_currentShape);
                                        }
                                        
+                                       if(displayCentroid)
+                                       {
+                                               
displayCentroidFxn(_currentShape);
+                                       }
+                                       
                                        if(displayDirection)
                                        {
                                                shapeInfo += "\nShape Direction 
= " + _currentShape.direction;
                                        }
                                        
-                               
+                                       if(displayMeshEdges)
+                                       {
+                                               shapeInfo += 
drawMeshEdges(_currentShape);
+                                       }
+                                       
                                        if(displayEdgeSourceTarget)
                                        {
                                                for each (var edge:EdgeSprite 
in _currentShape.storedDataEdges)
@@ -126,22 +165,21 @@
                                                        shapeInfo += "\n" + 
edge.source.data["name"] + " to " + edge.target.data["name"];
                                                        
                                                }
-                                       }
-               
+                                       }                                       
                
                                }
-                               
+                                               
                                return shapeInfo;
                                
                        }
-                       public function displayMesh():void
+                       
+                       public function displayGrids():void
                        {
                                if(_mesh == null) return;
                                
-                               var grid:Array = _mesh._grid;
+                               var grid:Array = _mesh.grid;
                                
                                for each (var shape:Shape in grid)
-                               {
-                               
+                               {                                       
                                        for each ( var g:Rectangle in 
shape.storedGrids)
                                        {
                                                var visGrid:Sprite = new 
Sprite();
@@ -170,10 +208,12 @@
                        private function highlightShapeFxn(shape:Shape):void
                        {
                        
-                               while(_highlightShapeContainer.numChildren != 
0)        
+                               //trace("DD :XX: "+ 
_highlightShapeContainer.numChildren);
+                               
+                               while(_highlightShapeContainer.numChildren > 0) 
        
                                {       
                                        
_highlightShapeContainer.removeChildAt(0);
-                               }
+                               } 
                                        
                                for each ( var p:Point in shape.gridIndex)
                                {
@@ -192,6 +232,104 @@
                                
                                
_displayContainer.addChild(_highlightShapeContainer);
                        }
+                       
+                       private function displayCentroidFxn(s:Shape):void
+                       {       
+                               if(s.centroid == null) return;
+
+                               if(_displayContainer.contains(_visCentroid)) 
_displayContainer.removeChild(_visCentroid);
+                       
+                               _visCentroid = new Sprite();
+                       
+                               _visCentroid.graphics.beginFill( 0x121212);
+                               _visCentroid.graphics.drawCircle(s.centroid.x, 
s.centroid.y, 2);
+                               _visCentroid.graphics.endFill();
+                               
+                               _displayContainer.addChild(_visCentroid);
+                       }
+                       
+                       private function drawMeshEdges(s:Shape):String
+                       {
+                               var e:EdgeSprite = s.meshEdge;
+                                                               
+                               if( e == null) return "";
+                               
+                               while(_visEdgesContainer.numChildren > 0)
+                               {
+                                       _visEdgesContainer.removeChildAt(0);
+                               }                               
+                               //trace("DataDisplay: " + e.name + " :: " + 
s.meshEdge.x1, s.meshEdge.x2, s.meshEdge.y1); //  .x1, e.y1, " | ", e.x2, e.y2, 
e.target.x);
+
+                               var visEdge:Sprite = new Sprite();
+                               visEdge.graphics.beginFill(0x42C0FB, 0);
+                               visEdge.graphics.lineStyle(3, 0xFF6347);
+                               visEdge.graphics.moveTo(e.source.x, e.source.y);
+                               visEdge.graphics.lineTo(e.target.x, e.target.y);
+                               visEdge.graphics.endFill();
+                               
+                               _visEdgesContainer.addChild(visEdge);
+                               
+                               _displayContainer.addChild(_visEdgesContainer); 
        
+                               //trace("DataDisplay: 
_displayContainer.numChild: " + _displayContainer.numChildren);
+                               
+                               return "\nMeshEdge no: " + e.name;
+                       }
+                       
+                       private function redrawMesh():void
+                       {
+                               var visEdgeContainer:Sprite = new Sprite();
+                               var visEdge:Sprite = new Sprite();
+                               for each (var edge:EdgeSprite in 
_mesh._mesh.edges)
+                               {
+                                       
+                                       visEdge.graphics.lineStyle(2, 0x42C0FB);
+                                       visEdge.graphics.moveTo(edge.source.x, 
edge.source.y);
+                                       visEdge.graphics.lineTo(edge.target.x, 
edge.target.y);
+                                       
+                                       visEdge.graphics.beginFill(0x42426F,0);
+                                       visEdge.graphics.lineStyle(2, 0x42C0FB);
+                                       
visEdge.graphics.drawCircle(edge.source.x, edge.source.y, 2);
+                                       
visEdge.graphics.drawCircle(edge.target.x, edge.target.y, 2);
+                                       visEdge.graphics.endFill();
+                                       
+                                       visEdgeContainer.addChild(visEdge);
+                               }
+                       
+                               _displayContainer.addChild(visEdgeContainer);
+                       
+                               displayControlPoints();
+                       }
+                       
+                       private function displayControlPoints():void
+                       {
+                               var visControlPoints:Sprite = new Sprite();
+                               var visCP:Sprite = new Sprite();
+                               var cpArray:Array;
+
+                               
+                               
+                               for each (var dataEdge:EdgeSprite in 
_data.edges)
+                               {
+                                       cpArray = 
dataEdge.props.GBEBProperty.controlPointsArray;
+                                       
+                                       if(cpArray == null || cpArray.length <= 
0) continue;
+                                       
+                                       for each ( var cp:Point in cpArray)
+                                       {
+                                               if (cp == null) continue;
+                                               
+                                               
visCP.graphics.beginFill(0xFFFFFF,1);
+                                               visCP.graphics.drawCircle(cp.x, 
cp.y, 3);
+                                               visCP.graphics.endFill();
+                                               
+                                               
visControlPoints.addChild(visCP);
+                                       }
+                               }
+                               
+                               _displayContainer.addChild(visControlPoints);
+                               
+                       }
+                       
        
        }// end of class
 }
\ No newline at end of file

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to