DrawingsDataSource

This commit is contained in:
ziajka
2018-03-27 17:21:50 +02:00
parent 1dc911fc92
commit 3d42d46987
14 changed files with 85 additions and 32 deletions

View File

@ -59,6 +59,7 @@ import {NodesDataSource} from "./cartography/shared/datasources/nodes-datasource
import { SymbolsDataSource } from "./cartography/shared/datasources/symbols-datasource";
import { SelectionManager } from "./cartography/shared/managers/selection-manager";
import { InRectangleHelper } from "./cartography/map/helpers/in-rectangle-helper";
import { DrawingsDataSource } from "./cartography/shared/datasources/drawings-datasource";
@NgModule({
@ -120,7 +121,8 @@ import {InRectangleHelper} from "./cartography/map/helpers/in-rectangle-helper";
NodesDataSource,
SymbolsDataSource,
SelectionManager,
InRectangleHelper
InRectangleHelper,
DrawingsDataSource
],
entryComponents: [
AddServerDialogComponent,

View File

@ -12,7 +12,6 @@ class TestDataSource extends DataSource<Item> {
};
describe('TestDataSource', () => {
let dataSource: TestDataSource;
let data: Item[];

View File

@ -0,0 +1,33 @@
import { DrawingsDataSource } from "./drawings-datasource";
import { Drawing } from "../models/drawing";
describe('DrawingsDataSource', () => {
let dataSource: DrawingsDataSource;
let data: Drawing[];
beforeEach(() => {
dataSource = new DrawingsDataSource();
dataSource.connect().subscribe((drawings: Drawing[]) => {
data = drawings;
});
});
describe('Drawing can be updated', () => {
beforeEach(() => {
const drawing = new Drawing();
drawing.drawing_id = "1";
drawing.project_id = "project1";
dataSource.add(drawing);
drawing.project_id = "project2";
dataSource.update(drawing);
});
it('project_id should change', () => {
expect(data[0].drawing_id).toEqual("1");
expect(data[0].project_id).toEqual("project2");
});
});
});

View File

@ -0,0 +1,12 @@
import { Injectable } from "@angular/core";
import { Drawing } from "../models/drawing";
import { DataSource } from "./datasource";
@Injectable()
export class DrawingsDataSource extends DataSource<Drawing> {
protected findIndex(drawing: Drawing) {
return this.data.findIndex((d: Drawing) => d.drawing_id === drawing.drawing_id);
}
}

View File

@ -1,6 +1,7 @@
import { Injectable } from "@angular/core";
import { Node } from "../models/node";
import { DataSource } from "./datasource";
import {Injectable} from "@angular/core";
@Injectable()

View File

@ -1,6 +1,6 @@
import {Node} from "../models/node";
import {DataSource} from "./datasource";
import { Injectable } from "@angular/core";
import { DataSource } from "./datasource";
import { Symbol } from "../models/symbol";

View File

@ -101,7 +101,6 @@ export class LinksWidget implements Widget {
const link = view
.selectAll<SVGGElement, Link>("g.link")
.data((layer: Layer) => {
console.log(layer.links);
if (layer.links) {
const layer_links = layer.links.filter((l: Link) => {
return l.target && l.source;

View File

@ -36,9 +36,9 @@ import { ToasterService } from '../shared/services/toaster.service';
import { NodesDataSource } from "../cartography/shared/datasources/nodes-datasource";
import { LinksDataSource } from "../cartography/shared/datasources/links-datasource";
import { ProjectWebServiceHandler } from "../shared/handlers/project-web-service-handler";
import { Rectangle } from "../cartography/shared/models/rectangle";
import { SelectionManager } from "../cartography/shared/managers/selection-manager";
import { InRectangleHelper } from "../cartography/map/helpers/in-rectangle-helper";
import { DrawingsDataSource } from "../cartography/shared/datasources/drawings-datasource";
@Component({
@ -81,6 +81,7 @@ export class ProjectMapComponent implements OnInit {
private projectWebServiceHandler: ProjectWebServiceHandler,
protected nodesDataSource: NodesDataSource,
protected linksDataSource: LinksDataSource,
protected drawingsDataSource: DrawingsDataSource
) {
}
@ -114,6 +115,13 @@ export class ProjectMapComponent implements OnInit {
this.symbols = symbols;
});
this.drawingsDataSource.connect().subscribe((drawings: Drawing[]) => {
this.drawings = drawings;
if (this.mapChild) {
this.mapChild.reload();
}
});
this.nodesDataSource.connect().subscribe((nodes: Node[]) => {
this.nodes = nodes;
if (this.mapChild) {
@ -136,7 +144,7 @@ export class ProjectMapComponent implements OnInit {
return this.projectService.drawings(this.server, project.project_id);
})
.flatMap((drawings: Drawing[]) => {
this.drawings = drawings;
this.drawingsDataSource.set(drawings);
return this.projectService.links(this.server, project.project_id);
})
.flatMap((links: Link[]) => {