mirror of
https://github.com/sotam0316/drawNET_test.git
synced 2026-04-25 03:58:38 +09:00
61 lines
2.4 KiB
JavaScript
61 lines
2.4 KiB
JavaScript
import { state } from '../../state.js';
|
|
import { logger } from '../../utils/logger.js';
|
|
|
|
export function initRoutingEvents() {
|
|
if (!state.graph) return;
|
|
|
|
// Re-evaluate routing when nodes are moved to handle adaptive fallback (Phase 1.18)
|
|
state.graph.on('node:change:position', ({ node }) => {
|
|
const edges = state.graph.getConnectedEdges(node);
|
|
if (edges.length === 0) return;
|
|
|
|
import('/static/js/modules/graph/styles.js').then(({ getX6EdgeConfig }) => {
|
|
edges.forEach(edge => {
|
|
const data = edge.getData() || {};
|
|
const config = getX6EdgeConfig({
|
|
source: edge.getSource().cell,
|
|
target: edge.getTarget().cell,
|
|
...data
|
|
});
|
|
|
|
if (config.router !== edge.getRouter()) {
|
|
edge.setRouter(config.router || null);
|
|
logger.info(`drawNET: Dynamic Routing Update for ${edge.id}`);
|
|
}
|
|
if (config.connector !== edge.getConnector()) {
|
|
edge.setConnector(config.connector);
|
|
}
|
|
// Sync physical connections during move (especially for manual anchors)
|
|
if (config.source) edge.setSource(config.source);
|
|
if (config.target) edge.setTarget(config.target);
|
|
});
|
|
});
|
|
});
|
|
|
|
// Unify styling when an edge is newly connected via mouse (Phase 1.19)
|
|
state.graph.on('edge:connected', ({ edge }) => {
|
|
if (!edge || !edge.isEdge()) return;
|
|
|
|
import('/static/js/modules/graph/styles.js').then(({ getX6EdgeConfig }) => {
|
|
const data = edge.getData() || {};
|
|
const config = getX6EdgeConfig({
|
|
source: edge.getSource().cell,
|
|
target: edge.getTarget().cell,
|
|
...data
|
|
});
|
|
|
|
// Apply official style & configuration
|
|
if (config.source) edge.setSource(config.source);
|
|
if (config.target) edge.setTarget(config.target);
|
|
edge.setRouter(config.router || null);
|
|
edge.setConnector(config.connector);
|
|
edge.setZIndex(config.zIndex || 5);
|
|
|
|
if (config.attrs) {
|
|
edge.setAttrs(config.attrs);
|
|
}
|
|
logger.info(`drawNET: Unified Style applied to new edge ${edge.id}`);
|
|
});
|
|
});
|
|
}
|