Skip to content

Commit 5cd7093

Browse files
Fine-tune sink node layout
1 parent 1a359c9 commit 5cd7093

3 files changed

Lines changed: 22 additions & 9 deletions

File tree

libs/envi/modeler/src/lib/create-envi-modeler-workflow.interface.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,12 @@ export const FIXED_DISPLAY_NAMES: Partial<
4040
outputparameters: 'Output Parameters',
4141
view: 'View',
4242
};
43+
44+
/**
45+
* Order nodes on the right side
46+
*/
47+
export const RIGHT_SIDE_ORDER: ENVIModelerNode['type'][] = [
48+
'view',
49+
'datamanager',
50+
'outputparameters',
51+
];

libs/envi/modeler/src/lib/helpers/compute-layout.interface.ts

Whitespace-only changes.

libs/envi/modeler/src/lib/helpers/compute-layout.ts

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
LAYOUT_COMMENT_Y_OFFSET,
77
LAYOUT_RIGHT_STEP_Y,
88
LAYOUT_STEP_X,
9+
RIGHT_SIDE_ORDER,
910
RIGHT_SIDE_TYPES,
1011
} from '../create-envi-modeler-workflow.interface';
1112

@@ -48,18 +49,21 @@ export function ComputeLayout(
4849
}
4950
}
5051

51-
// Second pass: stack right-side nodes vertically one column to the right
52+
// Second pass: stack right-side nodes vertically one column to the right,
53+
// always in the fixed order: view → datamanager → outputparameters
5254
const rightX = LAYOUT_BASE_X + col * LAYOUT_STEP_X;
53-
let rightRow = 0;
54-
for (const node of nodes) {
55-
if (!RIGHT_SIDE_TYPES.has(node.type)) {
56-
continue;
57-
}
58-
layout.set(node.id, [
55+
const rightSideNodes = nodes.filter((n) => RIGHT_SIDE_TYPES.has(n.type));
56+
const sortedRightSide = rightSideNodes
57+
.slice()
58+
.sort(
59+
(a, b) =>
60+
RIGHT_SIDE_ORDER.indexOf(b.type) - RIGHT_SIDE_ORDER.indexOf(a.type),
61+
);
62+
for (let i = 0; i < sortedRightSide.length; i++) {
63+
layout.set(sortedRightSide[i].id, [
5964
rightX,
60-
LAYOUT_BASE_Y + rightRow * LAYOUT_RIGHT_STEP_Y,
65+
LAYOUT_BASE_Y + i * LAYOUT_RIGHT_STEP_Y,
6166
]);
62-
rightRow++;
6367
}
6468

6569
return layout;

0 commit comments

Comments
 (0)