@@ -65,7 +65,9 @@ ClassTree.prototype.packageSelected = function (element, packageName) {
65
65
ClassTree . prototype . updateTree = function ( treeObject ) {
66
66
67
67
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
69
71
70
72
var packageClick = function ( e ) {
71
73
@@ -87,24 +89,32 @@ ClassTree.prototype.updateTree = function (treeObject) {
87
89
88
90
} ;
89
91
90
- var append = function ( rootElement , elementName , isPackage , path ) {
92
+ var append = function ( rootElement , elementName , isPackage , path , level ) {
91
93
92
- var el1 = div ( ) ,
94
+ var sel = selectedClassElement . length
95
+ && sce === level && selectedClassElement [ sce ] === elementName ? ++ sce : null ,
96
+ el1 = div ( ) ,
93
97
el2 , el3 , el4 ;
94
98
95
99
if ( isPackage ) {
96
100
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
+ }
98
107
( el3 = div ( ) ) . className = "tv-package-content" ;
99
108
el1 . appendChild ( el2 ) ; el1 . appendChild ( el3 ) ;
100
109
el2 . addEventListener ( "click" , packageClick ) ;
101
110
el2 . appendChild ( el4 = div ( ) ) ;
102
111
el4 . className = "tv-rightListIcon icon list" ;
103
112
el4 . addEventListener ( "click" , function ( ) {
104
- self . packageSelected ( el1 , ( path ? path + "." : path ) + elementName ) ;
113
+ self . packageSelected ( el2 , ( path ? path + "." : path ) + elementName ) ;
105
114
} ) ;
106
115
} else {
107
- el1 . className = "tv-class-name" ;
116
+ if ( sel ) self . SELECTED_ELEMENT = el1 ;
117
+ el1 . className = "tv-class-name" + ( sel ? " selected" : "" ) ;
108
118
el1 . textContent = elementName ;
109
119
el1 . addEventListener ( "click" , classClick ) ;
110
120
el1 . CLASS_NAME = path + ( path ? "." : "" ) + elementName ;
@@ -116,7 +126,7 @@ ClassTree.prototype.updateTree = function (treeObject) {
116
126
117
127
} ;
118
128
119
- var build = function ( rootElement , object , path ) {
129
+ var build = function ( rootElement , object , path , level ) {
120
130
121
131
var i , element , rec ,
122
132
arr = [ ] ;
@@ -136,15 +146,16 @@ ClassTree.prototype.updateTree = function (treeObject) {
136
146
rootElement ,
137
147
element . name ,
138
148
typeof element . val === "object" ,
139
- path . join ( "." )
149
+ path . join ( "." ) ,
150
+ level
140
151
) ) {
141
- build ( rec , element . val , path . concat ( [ element . name ] ) ) ;
152
+ build ( rec , element . val , path . concat ( [ element . name ] ) , level + 1 ) ;
142
153
}
143
154
}
144
155
145
156
} ;
146
157
147
- build ( this . container , treeObject , [ ] ) ;
158
+ build ( this . container , treeObject , [ ] , 0 ) ;
148
159
149
160
this . removeLoader ( ) ;
150
161
0 commit comments