Skip to content

Commit 4c5b4b7

Browse files
opening class tree and focusing on displayed class item when page opens
1 parent 8406965 commit 4c5b4b7

File tree

3 files changed

+24
-11
lines changed

3 files changed

+24
-11
lines changed

web/css/treeView.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
display: none;
1212
}
1313

14-
.tv-class-name.selected {
14+
.tv-class-name.selected, .tv-package-name.selected {
1515
box-shadow: inset 0 0 2px 2px #ffcc1b;
1616
}
1717

web/js/ClassTree.js

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,9 @@ ClassTree.prototype.packageSelected = function (element, packageName) {
6565
ClassTree.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

web/js/ClassView.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ ClassView.prototype.loadClass = function (className) {
214214

215215
var self = this;
216216

217+
this.cacheUMLExplorer.classTree.SELECTED_CLASS_NAME = className;
217218
this.showLoader();
218219
this.cacheUMLExplorer.source.getClassView(className, function (err, data) {
219220
//console.log(data);
@@ -235,6 +236,7 @@ ClassView.prototype.loadPackage = function (packageName) {
235236

236237
var self = this;
237238

239+
this.cacheUMLExplorer.classTree.SELECTED_CLASS_NAME = packageName;
238240
this.showLoader();
239241
this.cacheUMLExplorer.source.getPackageView(packageName, function (err, data) {
240242
//console.log(data);

0 commit comments

Comments
 (0)