Clear selection

This commit is contained in:
ziajka 2018-04-20 11:48:05 +02:00
parent 4259aad348
commit 5760e77609
3 changed files with 24 additions and 0 deletions

View File

@ -2,6 +2,7 @@ import { Subject} from "rxjs/Subject";
import { Node } from "../models/node";
import { Link } from "../models/link";
import { Drawing } from "../models/drawing";
import { Rectangle } from "../models/rectangle";
import { SelectionManager } from "./selection-manager";
import { NodesDataSource } from "../datasources/nodes-datasource";
@ -75,4 +76,20 @@ describe('SelectionManager', () => {
manager.setSelectedLinks([link]);
expect(manager.getSelectedLinks().length).toEqual(1);
});
it('items should be cleared', () => {
const link = new Link();
link.link_id = "test1";
const node = new Node();
node.node_id = "test1";
const drawing = new Drawing();
drawing.drawing_id = "test1"
manager.setSelectedLinks([link]);
manager.setSelectedNodes([node]);
manager.setSelectedDrawings([drawing]);
manager.clearSelection();
expect(manager.getSelectedLinks().length).toEqual(0);
expect(manager.getSelectedDrawings().length).toEqual(0);
expect(manager.getSelectedNodes().length).toEqual(0);
});
});

View File

@ -76,6 +76,12 @@ export class SelectionManager {
});
}
public clearSelection() {
this.setSelectedDrawings([]);
this.setSelectedLinks([]);
this.setSelectedNodes([]);
}
private getSelectedItemsInRectangle<T extends Selectable>(dataSource: DataSource<T>, rectangle: Rectangle) {
return this.setSelectedItems<T>(dataSource, (item: T) => {
return this.inRectangleHelper.inRectangle(rectangle, item.x, item.y);

View File

@ -199,6 +199,7 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
});
this.mapChild.graphLayout.getNodesWidget().setOnNodeClickedCallback((event: any, node: Node) => {
this.selectionManager.clearSelection();
this.selectionManager.setSelectedNodes([node]);
if (this.drawLineMode) {
this.nodeSelectInterfaceMenu.open(node, event.clientY, event.clientX);