
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
import { StockControl } from "./StockControl";
import { DropdownList } from "./DropdownList";
import { StockIcons } from "./StockIcons";
import * as $array from "../../../core/util/Array";
/**
* Control which allows selecting drawing tool.
*
* Should not be instantiated directly. Use [[DrawingControl]] instead.
*/
export class DrawingToolControl extends StockControl {
_afterNew() {
// Do parent stuff
super._afterNew();
// Create list of tools
const list = DropdownList.new(this._root, {
control: this,
parent: this.getPrivate("button")
});
this.setPrivate("list", list);
list.events.on("closed", (_ev) => {
this.set("active", false);
});
list.events.on("invoked", (ev) => {
this.setTool(ev.item.label);
this.events.dispatch("selected", {
type: "selected",
tool: ev.item.id,
target: this
});
});
this.on("active", (active) => {
if (active) {
this.setTimeout(() => list.show(), 10);
}
else {
list.hide();
}
});
const button = this.getPrivate("button");
button.className = button.className + " am5stock-control-dropdown";
this._initTools();
}
setTool(tool) {
this.getPrivate("icon").innerHTML = "";
this.getPrivate("icon").appendChild(this._getToolIcon(tool));
//this.getPrivate("label")!.innerHTML = tool;
this._setLabel(this._root.language.translateAny(tool));
}
_initTools() {
const list = this.getPrivate("list");
const tools = this.get("tools");
const items = [];
$array.each(tools, (tool) => {
items.push({
id: tool,
label: this._root.language.translateAny(tool),
icon: this._getToolIcon(tool)
});
});
list.set("items", items);
}
_getToolIcon(tool) {
return StockIcons.getIcon(tool);
}
_afterChanged() {
super._afterChanged();
if (this.isDirty("tools")) {
this._initTools();
}
// if (this.isDirty("name")) {
// this.getPrivate("label")!.innerHTML = this.get("name", "");
// }
// todo icon
}
_dispose() {
super._dispose();
// $array.each(this._itemDisposers, (x) => {
// x.dispose();
// });
}
}
Object.defineProperty(DrawingToolControl, "className", {
enumerable: true,
configurable: true,
writable: true,
value: "DrawingToolControl"
});
Object.defineProperty(DrawingToolControl, "classNames", {
enumerable: true,
configurable: true,
writable: true,
value: StockControl.classNames.concat([DrawingToolControl.className])
});
//# sourceMappingURL=DrawingToolControl.js.map