我正在使用Basic Primitives(组织结构图库)来显示家谱(用于老鼠-这是一个重要的注意事项,因为似乎发生了乱伦)。到目前为止,一切进展顺利。
我最近添加了在突出显示树节点时显示注释的功能。它会显示一条粗线以显示到祖先顶部节点的路径。
您会发现3193
和2606
都是父母1607
和1603
的兄弟姐妹,但他们交配并产生了自己的幼仔。
我的问题是从3193
到父母双方的路径都没有突出显示。我猜该库正在使用最短路径算法来知道要突出显示的路径,因为3193
和2606
都通向同一节点。有没有办法让我突出显示到祖先顶部节点的所有路径,从而也突出显示从3193
到1607
和1603
的路径?
这是我初始化图表的方式:
function initCharts(data) {
var options = new primitives.famdiagram.Config();
// Gender Colors
var blue = primitives.common.Colors.LightBlue; // #add8e6
var pink = primitives.common.Colors.Pink; // #ffc0cb
var khaki = primitives.common.Colors.Khaki; // #f0e68c
// Annotation Colors
var navy = primitives.common.Colors.Navy; // #000080
var red = primitives.common.Colors.Red; // #ff0000
// Annotation Types
var highlight_path = primitives.common.AnnotationType.HighlightPath;
var items = data.items;
$.each(items, function(index, item) {
switch(item.sex) {
case "M":
items[index]["itemTitleColor"] = blue;
break;
case "F":
items[index]["itemTitleColor"] = pink;
break;
default:
items[index]["itemTitleColor"] = khaki;
break;
}
});
var annotations = data.annotations;
$.each(annotations, function(index, annotation) {
$.each(annotation, function(i, anno) {
annotations[index][i]["annotationType"] = highlight_path;
annotations[index][i]["color"] = navy;
annotations[index][i]["lineWidth"] = 12;
annotations[index][i]["opacity"] = 0.3;
annotations[index][i]["showArrows"] = false;
});
});
options.items = items;
options.pageFitMode = primitives.common.PageFitMode.AutoSize;
options.navigationMode = primitives.common.NavigationMode.HighlightOnly;
options.linesWidth = 1;
options.linesColor = "black";
options.hasSelectorCheckbox = primitives.common.Enabled.False;
options.hasButtons = primitives.common.Enabled.False;
options.normalLevelShift = 20;
options.dotLevelShift = 20;
options.lineLevelShift = 20;
options.normalItemsInterval = 10;
options.dotItemsInterval = 10;
options.lineItemsInterval = 10;
options.emptyDiagramMessage = "No data to show.";
options.onHighlightChanged = function(e, data) {
if(annotations.hasOwnProperty(data.context.id)) {
options.annotations = annotations[data.context.id];
} else {
options.annotations = [];
}
$("#pedigree").famDiagram(options);
};
$("#pedigree").famDiagram(options);
}