UNPKG

devexpress-diagram

Version:

DevExpress Diagram Control

33 lines (30 loc) 2.1 kB
import { ItemKey } from "../../Model/DiagramItem"; import { INodeDataImporter, IEdgeDataImporter, IDataLayoutImportParameters, IDataImportParameters } from "../../Data/Interfaces"; import { DataLayoutParameters } from "../../Data/DataLayoutParameters"; import { SimpleCommandState } from "../CommandStates"; import { SimpleCommandBase } from "../SimpleCommandBase"; export class BindDocumentCommand extends SimpleCommandBase { isEnabledInReadOnlyMode(): boolean { return true; } executeCore(state: SimpleCommandState, parameter: { key: ItemKey, name: string, nodeDataSource: any[], edgeDataSource: any[], nodeDataImporter?: INodeDataImporter, edgeDataImporter?: IEdgeDataImporter, layoutParameters?: IDataLayoutImportParameters }): boolean { if(!parameter || !Array.isArray(parameter.nodeDataSource)) throw Error("Format exception"); this.performImportData(parameter); this.control.updateLayout(true); return true; } protected performImportData(parameter: { key: ItemKey, name: string, nodeDataSource: any[], edgeDataSource: any[], nodeDataImporter?: INodeDataImporter, edgeDataImporter?: IEdgeDataImporter, layoutParameters?: IDataLayoutImportParameters, dataParameters?: IDataImportParameters }) { const dataSource = this.control.createDocumentDataSource(parameter.nodeDataSource, parameter.edgeDataSource, parameter.dataParameters, parameter.nodeDataImporter, parameter.edgeDataImporter); this.control.beginUpdateCanvas(); this.permissionsProvider.lockPermissions(); const layoutParameters = new DataLayoutParameters(this.control.settings, parameter.layoutParameters); dataSource.createModelItems(this.control.history, this.control.model, this.control.shapeDescriptionManager, this.control.selection, layoutParameters, this.control.settings.snapToGrid, this.control.settings.gridSize, this.control.measurer); this.permissionsProvider.unlockPermissions(); this.control.endUpdateCanvas(); } }