1( function( $ ) { 2 3 /* 4 * Class DruGIS - DgsEventRegistry 5 */ 6 7 DruGIS.DgsEventRegistry = DruGIS.Class( Object, { 8 9 initialize: function( ) { 10 11 var self = this; 12 self._lastCounts = []; 13 }, 14 15 instance: function() { 16 var self = this; 17 if ( self._instance == undefined ) { 18 self._instance = new DruGIS.DgsEventRegistry( self, arguments ); 19 } 20 return self._instance; 21 }, 22 23 watch: function( opt_count ) { 24 var self = this; 25 var events = Object.keys( self ).sort(); 26 var sum = 0; 27 var total = 0; 28 var counts = []; 29 var changedCounts = []; 30 for ( var i=0; i<events.length; i++ ) { 31 if ( events[ i ] == "_lastCounts" ) { 32 continue; 33 } 34 counts[ events[ i ] ] = Object.keys( self[ events[ i ] ] ).length; 35 total = total + counts[ events[ i ] ]; 36 if ( !!opt_count && opt_count > counts[ events[ i ] ] ) { 37 delete( self._lastCounts[ events[ i ] ] ); 38 continue; 39 } 40 sum = sum + counts[ events[ i ] ]; 41 //console.log( events[ i ] + ": " + counts[ events[ i ] ] + " connects.", self[ events[ i ] ] ); 42 if ( !!Object.keys( self._lastCounts ).length ) { 43 if ( counts[ events[ i ] ] != self._lastCounts[ events[ i ] ] ) { 44 changedCounts[ events[ i ] ] = counts[ events[ i ] ] - ( self._lastCounts[ events[ i ] ] != undefined ? self._lastCounts[ events[ i ] ] : 0 ); 45 } 46 delete( self._lastCounts[ events[ i ] ] ); 47 } 48 } 49 //console.log( "Overall: " + sum + "/" + total + " connects." ); 50 51 var changedEvents = Object.keys( changedCounts ).sort(); 52 for ( var i=0; i<changedEvents.length; i++ ) { 53 //console.log("Changed: " + changedEvents[ i ] + " differs by " + changedCounts[ changedEvents[ i ] ], self[ changedEvents[ i ] ] ); 54 } 55 var changedEvents = Object.keys( self._lastCounts ).sort(); 56 for ( var i=0; i<changedEvents.length; i++ ) { 57 //console.log("Changed: " + changedEvents[ i ] + " differs by -" + self._lastCounts[ changedEvents[ i ] ] + ". Removed form registry." ); 58 } 59 self._lastCounts = counts; 60 }, 61 62 _parentclass: function( parent ) { 63 var self = this; 64 return !!parent && parent.classname != undefined ? parent.classname() : ""; 65 }, 66 _parent: function( child ) { 67 var self = this; 68 var parent = false; 69 if ( !!child && !!child.parent ) { 70 parent = child.parent(); 71 } 72 return parent; 73 }, 74 75 details: function( event ) { 76 var self = this; 77 var connects = !!self[ event ] ? Object.keys( self[event] ) : []; 78 var counts = []; 79 for ( var i=0; i<connects.length; i++ ) { 80 var parentclass = ""; 81 var that = self[ event ][ connects[ i ] ][ 'self' ]; 82 var parent = self._parent( that ); 83 while ( !!parent && (( pc = self._parentclass( parent ) ) != "" ) ) { 84 var parentclass = pc + ":" + parentclass; 85 parent = self._parent( parent ); 86 } 87 var index = parentclass + that.classname(); 88 index = index.length > 255 ? "..." + index.substr(index.length-255, index.length) : index ; 89 counts[ index ] = counts[ index ] != undefined ? counts[ index ] + 1 : 1; 90 } 91 //console.log( counts ); 92 //console.log( "total connects: ", connects.length ); 93 }, 94 95 CLASS_NAME: "DruGIS.DgsEventRegistry" 96 } ); 97 98} ) (jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.