Skip to content

Commit e1e9512

Browse files
Fixed seelction path for family diagram
1 parent 1d5ffec commit e1e9512

File tree

11 files changed

+255
-37
lines changed

11 files changed

+255
-37
lines changed

changelog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#### Version 5.8.2
2+
* Fixed `selectionPathMode` in Family Diagram.
13
#### Version 5.8.1
24
* Fixed perfromance bug in loops layout optimization
35
#### Version 5.8.0

index.html

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -449,6 +449,12 @@
449449
pdfkit: "samples/pdfkit.plugins/LoopsInFamilyChart.html"
450450
}
451451
},
452+
{
453+
label: "Selection Path",
454+
frameworks: {
455+
javascript: "samples/javascript.controls/CaseSelectionPathModeInFamilyChart.html"
456+
}
457+
}
452458
]
453459
},
454460
{

min/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "basicprimitives",
3-
"version": "5.8.1",
3+
"version": "5.8.2",
44
"description": "Basic Primitives Diagrams for JavaScript - data visualization components library that implements organizational chart and multi-parent dependency diagrams, contains implementations of JavaScript Controls and PDF rendering plugins.",
55
"main": "primitives.latest.js",
66
"scripts": {

min/primitives.latest.js

Lines changed: 61 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* @preserve Basic Primitives Diagrams v5.8.1
2+
* @preserve Basic Primitives Diagrams v5.8.2
33
* Copyright (c) 2013 - 2020 Basic Primitives Inc
44
*
55
* Non-commercial - Free
@@ -35,7 +35,7 @@
3535

3636
var primitives = {
3737
common: {
38-
version: "5.8.1"
38+
version: "5.8.2"
3939
},
4040
orgdiagram: {},
4141
famdiagram: {},
@@ -12357,6 +12357,64 @@ primitives.famdiagram.CursorNeighboursTask = function (cursorItemTask, neighbour
1235712357
};
1235812358
};
1235912359

12360+
/* /Controls/FamDiagram/Tasks/Transformations/Selection/SelectionPathItemsTask.js*/
12361+
primitives.famdiagram.SelectionPathItemsTask = function (navigationFamilyTask, cursorItemTask, selectedItemsTask, cursorSelectionPathModeOptionTask) {
12362+
var _data = {
12363+
items: []
12364+
};
12365+
12366+
function process() {
12367+
var selectionPathMode = cursorSelectionPathModeOptionTask.getSelectionPathMode(),
12368+
navigationFamily = navigationFamilyTask.getLogicalFamily(),
12369+
cursorTreeItemId = cursorItemTask.getCursorTreeItem(),
12370+
selectedItems = selectedItemsTask.getItems().slice(0);
12371+
12372+
selectedItems.push(cursorTreeItemId);
12373+
12374+
_data.items = getSelectionPathItems(selectedItems, navigationFamily, selectionPathMode);
12375+
12376+
return true;
12377+
}
12378+
12379+
function getSelectionPathItems(selectedItems, navigationFamily, selectionPathMode) {
12380+
var result = [],
12381+
processed = {},
12382+
selectedItem,
12383+
index, len;
12384+
12385+
for (index = 0, len = selectedItems.length; index < len; index += 1) {
12386+
selectedItem = selectedItems[index];
12387+
/* show cursor full stack */
12388+
switch (selectionPathMode) {
12389+
case 0/*primitives.common.SelectionPathMode.None*/:
12390+
break;
12391+
case 1/*primitives.common.SelectionPathMode.FullStack*/:
12392+
/* select all parents up to the root */
12393+
navigationFamily.loopParents(this, selectedItem, function (parentItemId, parentItem) {
12394+
if (processed[parentItemId] != null) {
12395+
return navigationFamily.SKIP;
12396+
}
12397+
if (parentItem.isVisible) {
12398+
result.push(parentItemId);
12399+
}
12400+
processed[parentItemId] = true;
12401+
});
12402+
break;
12403+
}
12404+
}
12405+
return result;
12406+
}
12407+
12408+
function getItems() {
12409+
return _data.items;
12410+
}
12411+
12412+
return {
12413+
process: process,
12414+
getItems: getItems
12415+
};
12416+
};
12417+
1236012418
/* /Controls/FamDiagram/Tasks/Transformations/AddLabelAnnotationsTask.js*/
1236112419
primitives.famdiagram.AddLabelAnnotationsTask = function (labelAnnotationPlacementOptionTask, removeLoopsTask) {
1236212420
var _data = {
@@ -13370,7 +13428,7 @@ primitives.famdiagram.TaskManagerFactory = function (getOptions, getGraphics, ge
1337013428
tasks.addTask('CursorItemTask', ['CursorItemOptionTask', 'ActiveItemsTask'], primitives.orgdiagram.CursorItemTask, "#00ffff"/*primitives.common.Colors.Cyan*/);
1337113429
tasks.addTask('CursorNeighboursTask', ['CursorItemTask', 'NeighboursSelectionModeOptionTask', 'AddSpousesTask', 'ActiveItemsTask'], primitives.famdiagram.CursorNeighboursTask, "#00ffff"/*primitives.common.Colors.Cyan*/);
1337213430
tasks.addTask('SelectedItemsTask', ['SelectedItemsOptionTask'], primitives.orgdiagram.SelectedItemsTask, "#00ffff"/*primitives.common.Colors.Cyan*/);
13373-
tasks.addTask('SelectionPathItemsTask', ['AddSpousesTask', 'CursorItemTask', 'SelectedItemsTask', 'CursorSelectionPathModeOptionTask'], primitives.orgdiagram.SelectionPathItemsTask, "#00ffff"/*primitives.common.Colors.Cyan*/);
13431+
tasks.addTask('SelectionPathItemsTask', ['AddSpousesTask', 'CursorItemTask', 'SelectedItemsTask', 'CursorSelectionPathModeOptionTask'], primitives.famdiagram.SelectionPathItemsTask, "#00ffff"/*primitives.common.Colors.Cyan*/);
1337413432

1337513433
tasks.addTask('NormalVisibilityItemsByForegroundShapeAnnotationTask', ['ForegroundShapeAnnotationOptionTask'], primitives.orgdiagram.NormalVisibilityItemsByAnnotationTask, "#00ffff"/*primitives.common.Colors.Cyan*/);
1337613434
tasks.addTask('NormalVisibilityItemsByBackgroundShapeAnnotationTask', ['BackgroundShapeAnnotationOptionTask'], primitives.orgdiagram.NormalVisibilityItemsByAnnotationTask, "#00ffff"/*primitives.common.Colors.Cyan*/);

0 commit comments

Comments
 (0)