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.
