devexpress-diagram
Version:
DevExpress Diagram Control
30 lines (27 loc) • 1.56 kB
text/typescript
import { ToolboxDraggingObject, Toolbox } from "./Toolbox";
import { IShapeDescriptionManager } from "../../Model/Shapes/Descriptions/ShapeDescriptionManager";
export class TextToolbox extends Toolbox {
constructor(parent: HTMLElement, readOnly: boolean, allowDragging: boolean,
shapeDescriptionManager: IShapeDescriptionManager,
shapeTypes: string[], getAllowedShapeTypes: (shapes: string[]) => string[]) {
super(parent, readOnly, allowDragging, shapeDescriptionManager, shapeTypes, getAllowedShapeTypes);
}
createElements(element: HTMLElement, shapeTypes: string[]) {
shapeTypes.forEach(shapeType => {
const description = this.shapeDescriptionManager.get(shapeType);
const itemEl = document.createElement("div");
itemEl.setAttribute("class", "toolbox-text-item");
itemEl.setAttribute("data-tb-type", shapeType);
itemEl.textContent = description.getDefaultText() || description.getTitle();
element.appendChild(itemEl);
});
}
protected createDraggingElement(draggingObject: ToolboxDraggingObject): HTMLElement {
const element = document.createElement("DIV");
element.setAttribute("class", "dxdi-toolbox-drag-text-item");
const shapeDescription = this.shapeDescriptionManager.get(draggingObject.evt.data);
element.textContent = shapeDescription.getDefaultText() || shapeDescription.getTitle();
document.body.appendChild(element);
return element;
}
}