Управление графом связей¶
Точка расширения типа GraphExportItem позволяет встраивать в параметры графа дополнительную кнопку Экспорт графа (Рисунок 1).
Рисунок 1 - Дополнительная кнопка "Экспорт графа"
Объявление типа UEGraphExportItem:
type Resolver = (store: DlStructureStore) => boolean;
type Meta = {
displayName: string;
onSelect: (store: DlStructureStore) => void;
};
export type UEGraphExportItem = UeModuleBase<Resolver, Meta>;
Пример: добавление пункта "PDF" в меню экспорт графа.
function exportToPdf (store: DlStructureStore) {
if (store.application) {
store.application.getUiHandler().reset();
}
store.setIsLoading(true);
FileExportUtils.toPdf(store.idPrefix + DlStructureStore.GraphAreaClass, generateFileName(store))
.then((pfd: jsPDF) => {
store.setIsLoading(false);
});
}
export const graphExportItemsUE: UniverseUE.IUeMeta['GraphExportItem'] =
{
moduleId: 'graphExportPdfItem',
active: true,
system: false,
resolver: (store) => true,
meta: {
displayName: 'PDF',
onSelect: (store: DlStructureStore) => exportToPdf(store)
}
};
ueModuleManager.addModule('GraphExportItem', graphExportItemsUE);
Через стор графа DlStructureStore можно получать данные по графу. В стор добавлен метод getGraphData, возвращающий текущие вершины и ребра графа.
Метод имеет два булевых необязательных параметра withIdPrefix и withoutFiltration. withIdPrefix отвечает за очистку idPrefix из данных (idPrefix нужен только с целью внутренних манипуляций на графе). withoutFiltration отвечает за применение фильтрации к данным.
{
...
public getGraphData (withIdPrefix: boolean = false, withoutFiltration: boolean = false): DataGovernanceGraph;
}