mirror of
https://github.com/sotam0316/drawNET_test.git
synced 2026-04-25 03:58:38 +09:00
68 lines
1.9 KiB
JavaScript
68 lines
1.9 KiB
JavaScript
/**
|
|
* graph/plugins.js - X6 Plugin initialization
|
|
*/
|
|
export function initGraphPlugins(graph) {
|
|
if (window.X6PluginSelection) {
|
|
graph.use(new window.X6PluginSelection.Selection({
|
|
enabled: true,
|
|
multiple: true,
|
|
modifiers: 'shift',
|
|
rubberband: true,
|
|
showNodeSelectionBox: true,
|
|
showEdgeSelectionBox: false,
|
|
pointerEvents: 'none',
|
|
filter: (cell) => {
|
|
const data = cell.getData() || {};
|
|
const cellLayerId = data.layerId || 'l1';
|
|
return cellLayerId === state.activeLayerId;
|
|
}
|
|
}));
|
|
}
|
|
|
|
if (window.X6PluginSnapline) {
|
|
graph.use(new window.X6PluginSnapline.Snapline({
|
|
enabled: true,
|
|
sharp: true,
|
|
}));
|
|
}
|
|
|
|
/* Disable X6 Keyboard plugin to prevent interception of global hotkeys */
|
|
/*
|
|
if (window.X6PluginKeyboard) {
|
|
graph.use(new window.X6PluginKeyboard.Keyboard({
|
|
enabled: true,
|
|
global: false,
|
|
}));
|
|
}
|
|
*/
|
|
|
|
if (window.X6PluginClipboard) {
|
|
graph.use(new window.X6PluginClipboard.Clipboard({
|
|
enabled: true,
|
|
}));
|
|
}
|
|
|
|
if (window.X6PluginHistory) {
|
|
graph.use(new window.X6PluginHistory.History({
|
|
enabled: true,
|
|
}));
|
|
}
|
|
|
|
if (window.X6PluginTransform) {
|
|
graph.use(new window.X6PluginTransform.Transform({
|
|
resizing: { enabled: true, orthographic: false },
|
|
rotating: { enabled: true },
|
|
// 선(Edge) 제외 및 현재 활성 레이어만 허용
|
|
filter: (cell) => {
|
|
if (!cell.isNode()) return false;
|
|
const data = cell.getData() || {};
|
|
return (data.layerId || 'l1') === state.activeLayerId;
|
|
},
|
|
}));
|
|
}
|
|
|
|
if (window.X6PluginExport) {
|
|
graph.use(new window.X6PluginExport.Export());
|
|
}
|
|
}
|