[moodle] / contrib / plugins / grade / report / visual / flare_visualization / flare_visualization.as Repository:

Diff of /contrib/plugins/grade/report/visual/flare_visualization/flare_visualization.as

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4, Sat Aug 2 12:19:15 2008 WST revision 1.5, Mon Aug 18 11:58:12 2008 WST

By dservos:

CONTRIB-497 * Added flare libbary to repo as it is needed to build the flash front end. Lib is located at /grade/report/visual/flare_visualization/flare/. For more information see http://flare.prefuse.org/ * Added more visualizations. * Added settings/preferences page for the report. * Added printable version. * Added more documentation. * Added README.txt * Cleaned up code. * Fixed a bunch of small bugs.

# Line 134  Line 134 
134          private var invertTransitioner:Transitioner;          private var invertTransitioner:Transitioner;
135          private var legendItemTransitioner:Transitioner;          private var legendItemTransitioner:Transitioner;
136    
137            private var printVersion:Boolean;
138    
139          private var nodeSize:int = 1;          private var nodeSize:int = 1;
140    
# Line 141  Line 142 
142    
143          private var debug:Boolean = false;          private var debug:Boolean = false;
144    
145          private var debug_sessionid:String = "efd5b947db79fc51197b70da3b3a3c5d";          private var debug_sessionid:String = "ad896bf3c1af448c05f292e7b14433e1";
146          private var debug_sessiontest:String = "bw8XexZ32g";          private var debug_sessiontest:String = "nepQJfZ9pN";
147          private var debug_sessioncookie:String = "";          private var debug_sessioncookie:String = "";
148          private var debug_visid:String = "grades_vs_students";          private var debug_visid:String = "grades_vs_items";
149          private var debug_wwwroot:String = "http://localhost/moodle";          private var debug_wwwroot:String = "http://localhost/moodle";
150          private var debug_courseid:String = "3";          private var debug_courseid:String = "3";
151    
# Line 170  Line 171 
171                          var sessionid:String = loaderInfo.parameters['sessionid'];                          var sessionid:String = loaderInfo.parameters['sessionid'];
172                          var sessiontest:String = loaderInfo.parameters['sessiontest'];                          var sessiontest:String = loaderInfo.parameters['sessiontest'];
173                          var visid:String = loaderInfo.parameters['visid'];                          var visid:String = loaderInfo.parameters['visid'];
174                            printVersion = booleanify(loaderInfo.parameters['printerversion']);
175    
176                          if(debug) {                          if(debug) {
177                                  trace("Debug mode on.");                                  trace("Debug mode on.");
# Line 215  Line 217 
217                                          settings = XML(settingsLoader.data);                                          settings = XML(settingsLoader.data);
218                                          loadingMessage.text = "Loading Data....";                                          loadingMessage.text = "Loading Data....";
219    
220                                    if(isnull(settings) || settings.length() < 1 || isnull(settings.layout)) {
221                                            error("Loading", "Failed to load settings.");
222                                            return;
223                                    }
224    
225                                          var dataLoader:URLLoader = ds.load();                                          var dataLoader:URLLoader = ds.load();
226    
227                                          dataLoader.addEventListener(IOErrorEvent.IO_ERROR, function(evt:IOErrorEvent):void {                                          dataLoader.addEventListener(IOErrorEvent.IO_ERROR, function(evt:IOErrorEvent):void {
# Line 480  Line 487 
487                  vis.operators.remove(layout);                  vis.operators.remove(layout);
488                  layout = null;                  layout = null;
489    
490                    if(isnull(settings.layout.type)) {
491                            error("Bad Settings", "Missing layout type value.");
492                                    return;
493                    }
494    
495                  // Set up the layout                  // Set up the layout
496                          switch(int(settings.layout.type)) {                          switch(int(settings.layout.type)) {
497                                  case 1: layout = passSettings(AxisLayout, settings.layout.setting, settings.layout.xaxis.field, settings.layout.yaxis.field);                                  case 1:
498                                                    if(!isnull(settings.layout.xaxis.field) && !isnull(settings.layout.yaxis.field)) {
499                                                            layout = passSettings(AxisLayout, settings.layout.setting, settings.layout.xaxis.field, settings.layout.yaxis.field);
500                                                    } else {
501                                                            error("Bad Settings", "Missing x or y axis feild for AxisLayout");
502                                                            return;
503                                                    }
504                                                  break;                                                  break;
505                                  case 2: layout = passSettings(CircleLayout, settings.layout.setting);                                  case 2: layout = passSettings(CircleLayout, settings.layout.setting);
506                                                  break;                                                  break;
# Line 504  Line 522 
522                                                  break;                                                  break;
523                                  case 11: layout = new TreeMapLayout();                                  case 11: layout = new TreeMapLayout();
524                                                  break;                                                  break;
525                                  default: layout = passSettings(AxisLayout, settings.layout.setting, settings.layout.xaxis.field, settings.layout.yaxis.field);                                  default:
526                                                    if(!isnull(settings.layout.xaxis.field) && !isnull(settings.layout.yaxis.field)) {
527                                                            layout = passSettings(AxisLayout, settings.layout.setting, settings.layout.xaxis.field, settings.layout.yaxis.field);
528                                                    } else {
529                                                            error("Bad Settings", "Missing x or y axis feild for AxisLayout");
530                                                            return;
531                                                    }
532                                                  break;                                                  break;
533                          }                          }
534    
# Line 582  Line 606 
606    
607                                          dataName = l.dataField.substr(l.dataField.lastIndexOf('.') + 1);                                          dataName = l.dataField.substr(l.dataField.lastIndexOf('.') + 1);
608                                          for(var j:int = 0; j < l.items.numChildren; j++) {                                          for(var j:int = 0; j < l.items.numChildren; j++) {
609                                                  l.items.getChildAt(j).addEventListener(MouseEvent.CLICK, legendClick);                                                  LegendItem(l.items.getChildAt(j)).addEventListener(MouseEvent.CLICK, legendClick);
610                                                    //LegendItem(l.items.getChildAt(j)).label.textMode = TextSprite.DEVICE;
611                                                    //LegendItem(l.items.getChildAt(j)).label.textField.y -= 8;
612    
613                                                  legendNodes[LegendItem(l.items.getChildAt(j))] = new Array();                                                  legendNodes[LegendItem(l.items.getChildAt(j))] = new Array();
614                                                  legendEdges[LegendItem(l.items.getChildAt(j))] = new Array();                                                  legendEdges[LegendItem(l.items.getChildAt(j))] = new Array();
# Line 605  Line 631 
631                                          }                                          }
632                                  }                                  }
633    
   
634                                  removeLegenedItemsNodes();                                  removeLegenedItemsNodes();
635                          }                          }
636          }          }
# Line 690  Line 715 
715                          vis.xyAxes.xAxis.labelAngle = Math.PI / 2;                          vis.xyAxes.xAxis.labelAngle = Math.PI / 2;
716                          vis.xyAxes.xAxis.fixLabelOverlap = false;                          vis.xyAxes.xAxis.fixLabelOverlap = false;
717                          vis.xyAxes.yAxis.fixLabelOverlap = false;                          vis.xyAxes.yAxis.fixLabelOverlap = false;
718                            //vis.xyAxes.yAxis.labelTextMode = TextSprite.DEVICE;
719    
720    
721                          // Update the visualization so the widths and other values are correct.                          // Update the visualization so the widths and other values are correct.
# Line 908  Line 934 
934                                          vis.xyAxes.xAxis.labelOffsetY = vis.xyAxes.yAxis.labelOffsetX * -1;                                          vis.xyAxes.xAxis.labelOffsetY = vis.xyAxes.yAxis.labelOffsetX * -1;
935                                          vis.xyAxes.yAxis.labelOffsetX = tempLabelOffsetY * -1;                                          vis.xyAxes.yAxis.labelOffsetX = tempLabelOffsetY * -1;
936    
   
937                                          xLabelsHeight = yLabelsWidth;                                          xLabelsHeight = yLabelsWidth;
938                                          yLabelsWidth = tempLabels;                                          yLabelsWidth = tempLabels;
939    
# Line 1026  Line 1051 
1051                          controls.addChild(bHideAxis);                          controls.addChild(bHideAxis);
1052                          controls.addChild(bHideXLabel);                          controls.addChild(bHideXLabel);
1053                          controls.addChild(bHideYLabel);                          controls.addChild(bHideYLabel);
1054    
1055                            if(!printVersion){
1056                          sideBar.addChild(controls);                          sideBar.addChild(controls);
1057                            }
1058    
1059                          // Set the marks on the chart to the higest deepth.                          // Set the marks on the chart to the higest deepth.
1060              vis.setChildIndex(vis.marks, vis.numChildren - 1);              vis.setChildIndex(vis.marks, vis.numChildren - 1);
# Line 1098  Line 1126 
1126          * that are realted to the legend item and incrases there size by 1 unit.          * that are realted to the legend item and incrases there size by 1 unit.
1127          * @param ob the LegendItem being rolled over.          * @param ob the LegendItem being rolled over.
1128          */          */
1129          private function legendRollOver(ob:LegendItem):void {          private function legendRollOver(ob:Object):void {
1130                  var legend:Legend = Legend(ob.parent.parent);                  var item:LegendItem;
1131    
1132                    if(ob is LegendItem) {
1133                            item = LegendItem(ob);
1134                    } else if(ob is TextField) {
1135                            ob.filters = [new GlowFilter(0xFFFF55, 0.8, 6, 6, 10)];
1136                            item = LegendItem(TextField(ob).parent.parent);
1137                    } else {
1138                            return;
1139                    }
1140    
1141                    var legend:Legend = Legend(item.parent.parent);
1142    
1143                  if(legend) {                  if(legend) {
1144                          var dataName:String = legend.dataField.substr(legend.dataField.lastIndexOf('.') + 1);                          var dataName:String = legend.dataField.substr(legend.dataField.lastIndexOf('.') + 1);
1145    
1146                          ob.filters = [new GlowFilter(0xFFFF55, 0.8, 6, 6, 10)];                          item.filters = [new GlowFilter(0xFFFF55, 0.8, 6, 6, 10)];
1147    
1148                          vis.data.visit(function(d:DataSprite):void {                          vis.data.visit(function(d:DataSprite):void {
1149                                          if(d.data.hasOwnProperty(dataName) && ob.value == d.data[dataName]) {                                          if(d.data.hasOwnProperty(dataName) && item.value == d.data[dataName]) {
1150                                                  d.filters = [new GlowFilter(0xFFFF55, 0.8, 6, 6, 10)];                                                  d.filters = [new GlowFilter(0xFFFF55, 0.8, 6, 6, 10)];
1151                                                  d.size = nodeSize + 1;                                                  d.size = nodeSize + 1;
1152                                          }                                          }
# Line 1121  Line 1160 
1160          * that are realted to the legend item and decrases there size by 1 unit.          * that are realted to the legend item and decrases there size by 1 unit.
1161          * @param ob the LegendItem being rolled out of.          * @param ob the LegendItem being rolled out of.
1162          */          */
1163          private function legendRollOut(ob:LegendItem):void {          private function legendRollOut(ob:Object):void {
1164                  var legend:Legend = Legend(ob.parent.parent);                  var item:LegendItem;
1165    
1166                    if(ob is LegendItem) {
1167                            item = LegendItem(ob);
1168                    } else if(ob is TextField) {
1169                            ob.filters = null;
1170                            item = LegendItem(TextField(ob).parent.parent);
1171                    } else {
1172                            return;
1173                    }
1174    
1175                    var legend:Legend = Legend(item.parent.parent);
1176    
1177                  if(legend) {                  if(legend) {
1178                          var dataName:String = legend.dataField.substr(legend.dataField.lastIndexOf('.') + 1);                          var dataName:String = legend.dataField.substr(legend.dataField.lastIndexOf('.') + 1);
1179    
1180                          ob.filters = null;                          item.filters = null;
1181    
1182                          vis.data.visit(function(d:DataSprite):void {                          vis.data.visit(function(d:DataSprite):void {
1183                                          if(d.data.hasOwnProperty(dataName) && ob.value == d.data[dataName]) {                                          if(d.data.hasOwnProperty(dataName) && item.value == d.data[dataName]) {
1184                                                  d.filters = null;                                                  d.filters = null;
1185                                                  d.size = nodeSize;                                                  d.size = nodeSize;
1186                                          }                                          }
# Line 1292  Line 1342 
1342          * @param evt the mouse event.          * @param evt the mouse event.
1343          */          */
1344          private function legendClick(evt:MouseEvent):void {          private function legendClick(evt:MouseEvent):void {
1345                  var item:LegendItem = LegendItem(evt.target);                  var ob:Object = evt.target;
1346                    var item:LegendItem;
1347    
1348                    if(ob is LegendItem) {
1349                            item = LegendItem(ob);
1350                    } else if(ob is TextField) {
1351                            item = LegendItem(TextField(ob).parent.parent);
1352                    } else {
1353                            return;
1354                    }
1355    
1356                  if(item != null && !invertTransitioner.running && !legendItemTransitioner.running) {                  if(item != null && !invertTransitioner.running && !legendItemTransitioner.running) {
1357                          legendItemTransitioner.reset();                          legendItemTransitioner.reset();

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

Moodle CVS Admin
ViewVC Help
Powered by ViewVC 1.0.7