mirror of
https://github.com/GNS3/gns3-web-ui.git
synced 2025-05-07 19:18:40 +00:00
40 lines
872 B
TypeScript
40 lines
872 B
TypeScript
import { Widget } from "./widget";
|
|
import { SVGSelection } from "../models/types";
|
|
import { GraphLayout } from "./graph.widget";
|
|
import { Layer } from "../models/layer";
|
|
|
|
|
|
export class LayersWidget implements Widget {
|
|
public graphLayout: GraphLayout;
|
|
|
|
public draw(view: SVGSelection, layers: Layer[]) {
|
|
|
|
const layers_selection = view
|
|
.selectAll<SVGGElement, Layer>('g.layer')
|
|
.data(layers);
|
|
|
|
layers_selection
|
|
.enter()
|
|
.append<SVGGElement>('g')
|
|
.attr('class', 'layer')
|
|
.attr('data-index', (layer: Layer) => layer.index);
|
|
|
|
layers_selection
|
|
.exit()
|
|
.remove();
|
|
|
|
this.graphLayout
|
|
.getLinksWidget()
|
|
.draw(layers_selection);
|
|
|
|
this.graphLayout
|
|
.getNodesWidget()
|
|
.draw(layers_selection);
|
|
|
|
this.graphLayout
|
|
.getDrawingsWidget()
|
|
.draw(layers_selection);
|
|
|
|
}
|
|
}
|