Skip to content

Commit 7b78b46

Browse files
full description to classes on hover
1 parent 6c935a5 commit 7b78b46

File tree

4 files changed

+81
-18
lines changed

4 files changed

+81
-18
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "CacheUMLExplorer",
3-
"version": "1.6.1",
3+
"version": "1.7.0",
44
"description": "An UML Class explorer for InterSystems Caché",
55
"directories": {
66
"test": "test"

web/css/extras.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,4 +319,8 @@
319319

320320
.clickable {
321321
cursor: pointer;
322+
}
323+
324+
.nowrap {
325+
white-space: nowrap;
322326
}

web/js/ClassView.js

Lines changed: 73 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ ClassView.prototype.renderInfoGraphic = function () {
112112
basePackageName: "Welcome to Caché UML explorer!",
113113
classes: {
114114
"Shared object": {
115-
super: "Super object",
115+
Super: "Super object",
116116
classType: "Serial",
117117
parameters: {
118118
"Also inherit Super object": {}
@@ -121,7 +121,7 @@ ClassView.prototype.renderInfoGraphic = function () {
121121
properties: {}
122122
},
123123
"Class name": {
124-
super: "Super object",
124+
Super: "Super object",
125125
ABSTRACT: 1,
126126
FINAL: 1,
127127
HIDDEN: 1,
@@ -281,7 +281,7 @@ ClassView.prototype.filterInherits = function (data) {
281281

282282
var f = function (p) {
283283
return filter.hasOwnProperty(p) || (data.classes[p] || {})["isDataType"] ||
284-
lib.obj(((data.classes[p] || {}).super || "").split(",")).hasOwnProperty("%DataType");
284+
lib.obj(((data.classes[p] || {}).Super || "").split(",")).hasOwnProperty("%DataType");
285285
};
286286

287287
if (this.cacheUMLExplorer.settings.showDataTypesOnDiagram)
@@ -302,7 +302,7 @@ ClassView.prototype.filterInherits = function (data) {
302302
};
303303

304304
/**
305-
* Returns array of signs to render or empry array.
305+
* Returns array of signs to render or empty array.
306306
*
307307
* @param classMetaData
308308
*/
@@ -319,25 +319,25 @@ ClassView.prototype.getClassSigns = function (classMetaData) {
319319
});
320320
}
321321
}
322-
if (classMetaData["ABSTRACT"]) signs.push({
322+
if (classMetaData["Abstract"]) signs.push({
323323
icon: lib.image.crystalBall,
324324
text: "Abstract",
325325
textStyle: "fill:rgb(130,0,255)"
326326
});
327-
if (classMetaData["FINAL"]) signs.push({
327+
if (classMetaData["Final"]) signs.push({
328328
icon: lib.image.blueFlag,
329329
text: "Final",
330330
textStyle: "fill:rgb(130,0,255)"
331331
});
332-
if (classMetaData["SYSTEM"]) signs.push({
332+
if (classMetaData["System"]) signs.push({
333333
icon: lib.image.chip,
334-
text: "System/" + classMetaData["SYSTEM"]
334+
text: "System/" + classMetaData["System"]
335335
});
336-
if (classMetaData["PROCEDUREBLOCK"] === 0) signs.push({
336+
if (classMetaData["ProcedureBlock"] === 0) signs.push({
337337
icon: lib.image.moleculeCubeCross,
338338
text: "NotProcBlock"
339339
});
340-
if (classMetaData["HIDDEN"]) signs.push({
340+
if (classMetaData["Hidden"]) signs.push({
341341
icon: lib.image.ghost,
342342
text: "Hidden"
343343
});
@@ -445,9 +445,67 @@ ClassView.prototype.getPropertyHoverText = function (prop, type) {
445445
// -- parameters
446446
"Encoded": 1,
447447
// -- queries
448-
"SqlView": 1
448+
"SqlView": 1,
449+
// -- class
450+
"ClientDataType": function (data, p) {
451+
return !p["isDataType"] ? ""
452+
: "<span class=\"syntax-keyword\">ClientDataType</span>="
453+
+ "<span class=\"syntax-string\">" + data + "</span>";
454+
},
455+
"DdlAllowed": 1,
456+
"Deployed": 1,
457+
"Dynamic": 1,
458+
"Inheritance": function (data) {
459+
return data === "left" ? ""
460+
: "<span class=\"syntax-keyword\">Inheritance</span>="
461+
+ "<span class=\"syntax-string\">" + data + "</span>";
462+
},
463+
"Language": function (data) {
464+
return data === "cache" ? ""
465+
: "<span class=\"syntax-keyword\">Language</span>="
466+
+ "<span class=\"syntax-string\">" + data + "</span>";
467+
},
468+
"LegacyInstanceContext": 1,
469+
// ModificationLevel ?
470+
"NoExtent": 1,
471+
"OdbcType": function (data, p) {
472+
return !p["isOdbcType"] ? ""
473+
: "<span class=\"syntax-keyword\">OdbcType</span>="
474+
+ "<span class=\"syntax-string\">" + data + "</span>";
475+
},
476+
"ProcedureBlock": function (data) {
477+
return data ? "" : "<span class=\"syntax-keyword\">Not ProcedureBlock</span>";
478+
},
479+
"SoapBindingStyle": function (data, p) {
480+
return !p["isSoapBindingStyle"] ? ""
481+
: "<span class=\"syntax-keyword\">SoapBindingStyle</span>="
482+
+ "<span class=\"syntax-string\">" + data + "</span>";
483+
},
484+
"SoapBodyUse": function (data, p) {
485+
return !p["isSoapBodyUse"] ? ""
486+
: "<span class=\"syntax-keyword\">SoapBodyUse</span>="
487+
+ "<span class=\"syntax-string\">" + data + "</span>";
488+
},
489+
"SqlCategory": function (data, p) {
490+
return !p["isSqlCategory"] ? ""
491+
: "<span class=\"syntax-keyword\">SqlCategory</span>="
492+
+ "<span class=\"syntax-string\">" + data + "</span>";
493+
},
494+
"SqlRowIdPrivate": 1,
495+
"System": function (data) {
496+
return !data ? ""
497+
: "<span class=\"syntax-keyword\">System</span>="
498+
+ "<span class=\"syntax-string\">" + data + "</span>"
499+
}
449500
};
450501

502+
if (type === "class" && prop["TimeChanged"] && prop["TimeCreated"]) {
503+
desc += "<span class=\"syntax-keyword\">Changed</span>: "
504+
+ "<span class=\"syntax-string nowrap\">" + prop["TimeChanged"] + "</span>, "
505+
+ "<span class=\"syntax-keyword\">Created</span>: "
506+
+ "<span class=\"syntax-string nowrap\">" + prop["TimeCreated"] + "</span><br/>";
507+
}
508+
451509
if (ind = prop["index"]) {
452510
desc += "<span class=\"syntax-keyword\">INDEX</span> <span class=\"syntax-string\">"
453511
+ ind["Name"] + "</span> " + (function () {
@@ -462,7 +520,7 @@ ClassView.prototype.getPropertyHoverText = function (prop, type) {
462520

463521
var txt = [], val;
464522
for (i in prop) {
465-
if (propText[i] && (prop[i] || i === "InitialExpression")) {
523+
if (propText[i] && (prop[i] || i === "InitialExpression" || i === "ProcedureBlock")) {
466524
val = propText[i] === 1
467525
? "<span class=\"syntax-keyword\">" + i + "</span>"
468526
: propText[i](prop[i], prop);
@@ -478,7 +536,7 @@ ClassView.prototype.getPropertyHoverText = function (prop, type) {
478536

479537
if (desc && type) {
480538
desc = "<span class=\"underlined\"><span class=\"syntax-keyword\">" + lib.capitalize(type)
481-
+ "</span> <span class=\"syntax-string\">" + (prop["Name"] || "") + "</span></span>:"
539+
+ "</span> <span class=\"syntax-other\">" + (prop["Name"] || "") + "</span></span>"
482540
+ ("<br/>") + desc;
483541
}
484542

@@ -504,8 +562,9 @@ ClassView.prototype.createClassInstance = function (name, classMetaData) {
504562
name: [{
505563
text: name,
506564
clickHandler: function () {
507-
self.openClassDoc(name, classMetaData["NAMESPACE"]);
565+
self.openClassDoc(name, self.cacheUMLExplorer.NAMESPACE);
508566
},
567+
hover: self.getPropertyHoverText(classMetaData, "class"),
509568
styles: {
510569
cursor: "help"
511570
}

web/js/Logic.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ Logic.prototype.process = function (data) {
3232
if (!this.data.inheritance) this.data.inheritance = {};
3333
for (clsName in data.classes) {
3434
cls = data.classes[clsName];
35-
if (cls.super) cls.super.split(",").forEach(function (name) {
35+
if (cls.Super) cls.Super.split(",").forEach(function (name) {
3636
self.inherits(clsName, name);
3737
});
3838
if (cls.parameters && !this.umlExplorer.settings.showParameters) delete cls.parameters;
@@ -200,8 +200,8 @@ Logic.prototype.alignClassTypes = function () {
200200
// try to get class type from parent
201201
if (classObj.$classType) derivedObj.$classType = classObj.$classType;
202202
// reassign class type from classType property
203-
if (derivedObj.classType)
204-
derivedObj.$classType = self.getNormalClassType(derivedObj.classType);
203+
if (derivedObj.ClassType)
204+
derivedObj.$classType = self.getNormalClassType(derivedObj.ClassType);
205205
}
206206
extendDerivedClasses(derivedClassName, derivedObj);
207207
});

0 commit comments

Comments
 (0)