@@ -65,7 +65,9 @@ ClassTree.prototype.packageSelected = function (element, packageName) {
6565ClassTree . prototype . updateTree = function ( treeObject ) {
6666
6767 var self = this ,
68- div = function ( ) { return document . createElement ( "div" ) ; } ;
68+ div = function ( ) { return document . createElement ( "div" ) ; } ,
69+ selectedClassElement = this . SELECTED_CLASS_NAME ? this . SELECTED_CLASS_NAME . split ( "." ) : [ ] ,
70+ sce = 0 ; // selectedClassElement level index
6971
7072 var packageClick = function ( e ) {
7173
@@ -87,24 +89,32 @@ ClassTree.prototype.updateTree = function (treeObject) {
8789
8890 } ;
8991
90- var append = function ( rootElement , elementName , isPackage , path ) {
92+ var append = function ( rootElement , elementName , isPackage , path , level ) {
9193
92- var el1 = div ( ) ,
94+ var sel = selectedClassElement . length
95+ && sce === level && selectedClassElement [ sce ] === elementName ? ++ sce : null ,
96+ el1 = div ( ) ,
9397 el2 , el3 , el4 ;
9498
9599 if ( isPackage ) {
96100 el1 . className = "tv-package" ;
97- ( el2 = div ( ) ) . className = "tv-package-name minimized" ; el2 . textContent = elementName ;
101+ ( el2 = div ( ) ) . className = "tv-package-name" + ( sel ? "" : " minimized" ) ;
102+ el2 . textContent = elementName ;
103+ if ( sel && sce === selectedClassElement . length ) {
104+ el2 . className += " selected" ;
105+ self . SELECTED_ELEMENT = el2 ;
106+ }
98107 ( el3 = div ( ) ) . className = "tv-package-content" ;
99108 el1 . appendChild ( el2 ) ; el1 . appendChild ( el3 ) ;
100109 el2 . addEventListener ( "click" , packageClick ) ;
101110 el2 . appendChild ( el4 = div ( ) ) ;
102111 el4 . className = "tv-rightListIcon icon list" ;
103112 el4 . addEventListener ( "click" , function ( ) {
104- self . packageSelected ( el1 , ( path ? path + "." : path ) + elementName ) ;
113+ self . packageSelected ( el2 , ( path ? path + "." : path ) + elementName ) ;
105114 } ) ;
106115 } else {
107- el1 . className = "tv-class-name" ;
116+ if ( sel ) self . SELECTED_ELEMENT = el1 ;
117+ el1 . className = "tv-class-name" + ( sel ? " selected" : "" ) ;
108118 el1 . textContent = elementName ;
109119 el1 . addEventListener ( "click" , classClick ) ;
110120 el1 . CLASS_NAME = path + ( path ? "." : "" ) + elementName ;
@@ -116,7 +126,7 @@ ClassTree.prototype.updateTree = function (treeObject) {
116126
117127 } ;
118128
119- var build = function ( rootElement , object , path ) {
129+ var build = function ( rootElement , object , path , level ) {
120130
121131 var i , element , rec ,
122132 arr = [ ] ;
@@ -136,15 +146,16 @@ ClassTree.prototype.updateTree = function (treeObject) {
136146 rootElement ,
137147 element . name ,
138148 typeof element . val === "object" ,
139- path . join ( "." )
149+ path . join ( "." ) ,
150+ level
140151 ) ) {
141- build ( rec , element . val , path . concat ( [ element . name ] ) ) ;
152+ build ( rec , element . val , path . concat ( [ element . name ] ) , level + 1 ) ;
142153 }
143154 }
144155
145156 } ;
146157
147- build ( this . container , treeObject , [ ] ) ;
158+ build ( this . container , treeObject , [ ] , 0 ) ;
148159
149160 this . removeLoader ( ) ;
150161
0 commit comments