Move models

This commit is contained in:
ziajka 2018-07-19 10:00:09 +02:00
parent e4e8fe6151
commit a916b00ef8
44 changed files with 107 additions and 77 deletions

View File

@ -67,7 +67,7 @@ import { LinksDataSource } from "./cartography/datasources/links-datasource";
import { NodesDataSource } from "./cartography/datasources/nodes-datasource";
import { SymbolsDataSource } from "./cartography/datasources/symbols-datasource";
import { SelectionManager } from "./cartography/managers/selection-manager";
import { InRectangleHelper } from "./cartography/components/map/helpers/in-rectangle-helper";
import { InRectangleHelper } from "./cartography/helpers/in-rectangle-helper";
import { DrawingsDataSource } from "./cartography/datasources/drawings-datasource";
import { MoveLayerDownActionComponent } from './components/project-map/node-context-menu/actions/move-layer-down-action/move-layer-down-action.component';
import { MoveLayerUpActionComponent } from './components/project-map/node-context-menu/actions/move-layer-up-action/move-layer-up-action.component';

View File

@ -5,12 +5,12 @@ import { D3, D3Service } from 'd3-ng2-service';
import {select, Selection} from 'd3-selection';
import { Node } from "../../models/node";
import { Link } from "../../models/link";
import { Link } from "../../../models/link";
import { GraphLayout } from "../../widgets/graph-layout";
import { Context } from "../../models/context";
import { Size } from "../../models/size";
import { Drawing } from "../../models/drawing";
import {Symbol} from "../../models/symbol";
import {Symbol} from "../../../models/symbol";
@Component({

View File

@ -18,7 +18,7 @@ describe('TestDataSource', () => {
beforeEach(() => {
dataSource = new TestDataSource();
dataSource.connect().subscribe((updated: Item[]) => {
dataSource.changes.subscribe((updated: Item[]) => {
data = updated;
});
});

View File

@ -39,7 +39,7 @@ export abstract class DataSource<T> {
}
}
public connect() {
public get changes() {
return this.dataChange;
}

View File

@ -8,7 +8,7 @@ describe('DrawingsDataSource', () => {
beforeEach(() => {
dataSource = new DrawingsDataSource();
dataSource.connect().subscribe((drawings: Drawing[]) => {
dataSource.changes.subscribe((drawings: Drawing[]) => {
data = drawings;
});
});

View File

@ -1,5 +1,5 @@
import { LinksDataSource } from "./links-datasource";
import { Link } from "../models/link";
import { Link } from "../../models/link";
describe('LinksDataSource', () => {
@ -8,7 +8,7 @@ describe('LinksDataSource', () => {
beforeEach(() => {
dataSource = new LinksDataSource();
dataSource.connect().subscribe((links: Link[]) => {
dataSource.changes.subscribe((links: Link[]) => {
data = links;
});
});

View File

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

View File

@ -8,7 +8,7 @@ describe('NodesDataSource', () => {
beforeEach(() => {
dataSource = new NodesDataSource();
dataSource.connect().subscribe((nodes: Node[]) => {
dataSource.changes.subscribe((nodes: Node[]) => {
data = nodes;
});
});

View File

@ -1,5 +1,5 @@
import { SymbolsDataSource } from "./symbols-datasource";
import { Symbol } from "../models/symbol";
import { Symbol } from "../../models/symbol";
describe('SymbolsDataSource', () => {
@ -8,7 +8,7 @@ describe('SymbolsDataSource', () => {
beforeEach(() => {
dataSource = new SymbolsDataSource();
dataSource.connect().subscribe((symbols: Symbol[]) => {
dataSource.changes.subscribe((symbols: Symbol[]) => {
data = symbols;
});
});

View File

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

View File

@ -1,5 +1,5 @@
import { InRectangleHelper } from "./in-rectangle-helper";
import { Rectangle } from "../../../models/rectangle";
import { Rectangle } from "../models/rectangle";

View File

@ -1,7 +1,6 @@
import { Injectable } from "@angular/core";
import { Selectable } from "../../../managers/selection-manager";
import { Rectangle } from "../../../models/rectangle";
import { Rectangle } from "../models/rectangle";
@Injectable()

View File

@ -1,4 +1,4 @@
import {Link} from "../../../models/link";
import {Link} from "../../models/link";
export class MultiLinkCalculatorHelper {
LINK_WIDTH = 2;

View File

@ -1,7 +1,7 @@
import { LayersManager } from "./layers-manager";
import { Node } from "../models/node";
import { Drawing } from "../models/drawing";
import { Link } from "../models/link";
import { Link } from "../../models/link";
describe('LayersManager', () => {

View File

@ -1,7 +1,7 @@
import { Layer } from "../models/layer";
import { Node } from "../models/node";
import { Drawing } from "../models/drawing";
import { Link } from "../models/link";
import { Link } from "../../models/link";
import { Dictionary } from "../models/types";

View File

@ -1,13 +1,13 @@
import { Subject} from "rxjs";
import { Node } from "../models/node";
import { Link } from "../models/link";
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";
import { LinksDataSource } from "../datasources/links-datasource";
import { InRectangleHelper } from "../components/map/helpers/in-rectangle-helper";
import { InRectangleHelper } from "../helpers/in-rectangle-helper";
import { DrawingsDataSource } from "../datasources/drawings-datasource";

View File

@ -6,9 +6,9 @@ import { Subscription } from "rxjs";
import { NodesDataSource } from "../datasources/nodes-datasource";
import { LinksDataSource } from "../datasources/links-datasource";
import { Node } from "../models/node";
import { InRectangleHelper } from "../components/map/helpers/in-rectangle-helper";
import { InRectangleHelper } from "../helpers/in-rectangle-helper";
import { Rectangle } from "../models/rectangle";
import { Link} from "../models/link";
import { Link} from "../../models/link";
import { DataSource } from "../datasources/datasource";
import { Drawing } from "../models/drawing";
import { InterfaceLabel } from "../models/interface-label";

View File

@ -1,5 +1,5 @@
import {Size} from "./size";
import {Point} from "./point";
import { Size } from "./size";
import { Point } from "./point";
export class Transformation {
constructor(

View File

@ -0,0 +1,8 @@
export class GraphLink {
distance: number; // this is not from server
length: number; // this is not from server
source: Node; // this is not from server
target: Node; // this is not from server
x: number; // this is not from server
y: number; // this is not from server
}

View File

@ -1,16 +1,13 @@
import {Drawing} from "./drawing";
import {Link} from "./link";
import {Link} from "../../models/link";
import {Node} from "./node";
export class Layer {
index: number;
nodes: Node[];
drawings: Drawing[];
links: Link[];
constructor() {
this.nodes = [];
this.drawings = [];
this.links = [];
constructor(
public index?: number,
public nodes: Node[] = [],
public drawings: Drawing[] = [],
public links: Link[] = []
) {
}
}

View File

@ -1,6 +1,6 @@
import {Label} from "./label";
import {Port} from "../../models/port";
import {Selectable} from "../managers/selection-manager";
import { Label } from "./label";
import { Port } from "../../models/port";
import { Selectable } from "../managers/selection-manager";
export class Node implements Selectable {

View File

@ -1,3 +1,6 @@
export class Point {
constructor(public x: number, public y: number) {}
constructor(
public x?: number,
public y?: number
) {}
};

View File

@ -1,3 +1,5 @@
export class Size {
constructor(public width: number, public height: number) {}
constructor(
public width: number,
public height: number) {}
}

View File

@ -14,8 +14,11 @@ import { DrawingWidget } from "./drawings/drawing-widget";
export class DrawingsWidget implements Widget {
private svgToDrawingConverter: SvgToDrawingConverter;
private drawingWidgets: DrawingWidget[] = [
new TextDrawingWidget(), new ImageDrawingWidget(), new RectDrawingWidget(),
new LineDrawingWidget(), new EllipseDrawingWidget()
new TextDrawingWidget(),
new ImageDrawingWidget(),
new RectDrawingWidget(),
new LineDrawingWidget(),
new EllipseDrawingWidget()
];
constructor() {

View File

@ -2,7 +2,7 @@ import { line } from "d3-shape";
import { Widget } from "./widget";
import { SVGSelection } from "../models/types";
import { Link } from "../models/link";
import { Link } from "../../models/link";
export class EthernetLinkWidget implements Widget {

View File

@ -1,6 +1,6 @@
import { Context } from "../models/context";
import { Node } from "../models/node";
import { Link } from "../models/link";
import { Link } from "../../models/link";
import { NodesWidget } from "./nodes";
import { Widget } from "./widget";
import { SVGSelection } from "../models/types";

View File

@ -2,11 +2,12 @@ import { Selection } from "d3-selection";
import { TestSVGCanvas } from "../testing";
import { Node } from "../models/node";
import { Link } from "../models/link";
import { LinkNode } from "../models/link-node";
import { Link } from "../../models/link";
import { LinkNode } from "../../models/link-node";
import { Label } from "../models/label";
import { InterfaceLabel } from "../models/interface-label";
import { InterfaceLabelWidget } from "./interface-label";
import { CssFixer } from "../helpers/css-fixer";
describe('InterfaceLabelsWidget', () => {
@ -66,7 +67,7 @@ describe('InterfaceLabelsWidget', () => {
.exit()
.remove();
widget = new InterfaceLabelWidget();
widget = new InterfaceLabelWidget(new CssFixer());
});
afterEach(() => {

View File

@ -1,18 +1,19 @@
import { SVGSelection } from "../models/types";
import { Link } from "../models/link";
import { Link } from "../../models/link";
import { InterfaceLabel } from "../models/interface-label";
import { CssFixer } from "../helpers/css-fixer";
import { select } from "d3-selection";
import { Inject } from "@angular/core";
export class InterfaceLabelWidget {
static SURROUNDING_TEXT_BORDER = 5;
private cssFixer: CssFixer;
private enabled = true;
constructor() {
this.cssFixer = new CssFixer();
constructor(
@Inject(CssFixer) private cssFixer: CssFixer
) {
}
public setEnabled(enabled: boolean) {

View File

@ -6,7 +6,7 @@ import { TestSVGCanvas } from "../testing";
import { Layer } from "../models/layer";
import { LinksWidget } from "./links";
import { Node } from "../models/node";
import { Link } from "../models/link";
import { Link } from "../../models/link";
import { InterfaceLabelWidget } from "./interface-label";

View File

@ -2,13 +2,14 @@ import { select } from "d3-selection";
import { Widget } from "./widget";
import { SVGSelection } from "../models/types";
import { Link } from "../models/link";
import { Link } from "../../models/link";
import { LinkStatus } from "../models/link-status";
import { MultiLinkCalculatorHelper } from "../components/map/helpers/multi-link-calculator-helper";
import { MultiLinkCalculatorHelper } from "../helpers/multi-link-calculator-helper";
import { SerialLinkWidget } from "./serial-link";
import { EthernetLinkWidget } from "./ethernet-link";
import { Layer } from "../models/layer";
import { InterfaceLabelWidget } from "./interface-label";
import { CssFixer } from "../helpers/css-fixer";
export class LinksWidget implements Widget {
@ -17,7 +18,7 @@ export class LinksWidget implements Widget {
private interfaceLabelWidget: InterfaceLabelWidget;
constructor() {
this.interfaceLabelWidget = new InterfaceLabelWidget();
this.interfaceLabelWidget = new InterfaceLabelWidget(new CssFixer());
}
public getInterfaceLabelWidget() {

View File

@ -4,7 +4,7 @@ import { D3DragEvent, drag } from "d3-drag";
import { Widget } from "./widget";
import { Node } from "../models/node";
import { SVGSelection } from "../models/types";
import { Symbol } from "../models/symbol";
import { Symbol } from "../../models/symbol";
import { Layer } from "../models/layer";
import { CssFixer } from "../helpers/css-fixer";
import { FontFixer } from "../helpers/font-fixer";

View File

@ -2,7 +2,7 @@ import { path } from "d3-path";
import { Widget } from "./widget";
import { SVGSelection } from "../models/types";
import { Link } from "../models/link";
import { Link } from "../../models/link";
export class SerialLinkWidget implements Widget {

View File

@ -3,3 +3,14 @@ export interface Widget {
draw(view: any, datum: any): void;
}
export interface OnDraw {
draw(view: any): void;
}
export interface OnConnect {
onConnect(view: any): void;
}
export interface OnDisconnect {
onDisconnect(view: any): void;
}

View File

@ -8,7 +8,7 @@ import { map, mergeMap } from "rxjs/operators";
import { Project } from '../../models/project';
import { Node } from '../../cartography/models/node';
import { SymbolService } from '../../services/symbol.service';
import { Link } from "../../cartography/models/link";
import { Link } from "../../models/link";
import { MapComponent } from "../../cartography/components/map/map.component";
import { ServerService } from "../../services/server.service";
import { ProjectService } from '../../services/project.service';
@ -22,7 +22,7 @@ import { Drawing } from "../../cartography/models/drawing";
import { NodeContextMenuComponent } from "./node-context-menu/node-context-menu.component";
import { Appliance } from "../../models/appliance";
import { NodeService } from "../../services/node.service";
import { Symbol } from "../../cartography/models/symbol";
import { Symbol } from "../../models/symbol";
import { NodeSelectInterfaceComponent } from "./node-select-interface/node-select-interface.component";
import { Port } from "../../models/port";
import { LinkService } from "../../services/link.service";
@ -31,7 +31,7 @@ import { NodesDataSource } from "../../cartography/datasources/nodes-datasource"
import { LinksDataSource } from "../../cartography/datasources/links-datasource";
import { ProjectWebServiceHandler } from "../../handlers/project-web-service-handler";
import { SelectionManager } from "../../cartography/managers/selection-manager";
import { InRectangleHelper } from "../../cartography/components/map/helpers/in-rectangle-helper";
import { InRectangleHelper } from "../../cartography/helpers/in-rectangle-helper";
import { DrawingsDataSource } from "../../cartography/datasources/drawings-datasource";
import { SettingsService } from "../../services/settings.service";
import { ProgressService } from "../../common/progress/progress.service";
@ -134,7 +134,7 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
);
this.subscriptions.push(
this.drawingsDataSource.connect().subscribe((drawings: Drawing[]) => {
this.drawingsDataSource.changes.subscribe((drawings: Drawing[]) => {
this.drawings = drawings;
if (this.mapChild) {
this.mapChild.reload();
@ -143,7 +143,7 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
);
this.subscriptions.push(
this.nodesDataSource.connect().subscribe((nodes: Node[]) => {
this.nodesDataSource.changes.subscribe((nodes: Node[]) => {
this.nodes = nodes;
if (this.mapChild) {
this.mapChild.reload();
@ -152,7 +152,7 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
);
this.subscriptions.push(
this.linksDataSource.connect().subscribe((links: Link[]) => {
this.linksDataSource.changes.subscribe((links: Link[]) => {
this.links = links;
if (this.mapChild) {
this.mapChild.reload();
@ -228,7 +228,8 @@ export class ProjectMapComponent implements OnInit, OnDestroy {
});
this.subscriptions.push(
this.selectionManager.subscribe(this.mapChild.graphLayout.getSelectionTool().rectangleSelected)
this.selectionManager.subscribe(
this.mapChild.graphLayout.getSelectionTool().rectangleSelected)
);
this.mapChild.graphLayout.getLinksWidget().getInterfaceLabelWidget().setEnabled(this.project.show_interface_labels);

View File

@ -0,0 +1,3 @@
export interface Converter<TSource, TDestination> {
convert(from: TSource): TDestination;
}

View File

@ -7,7 +7,7 @@ import { NodesDataSource } from "../cartography/datasources/nodes-datasource";
import { LinksDataSource } from "../cartography/datasources/links-datasource";
import { DrawingsDataSource } from "../cartography/datasources/drawings-datasource";
import { Node } from "../cartography/models/node";
import { Link } from "../cartography/models/link";
import { Link } from "../models/link";
import { Drawing } from "../cartography/models/drawing";

View File

@ -4,7 +4,7 @@ import { Subject } from "rxjs";
import { NodesDataSource } from "../cartography/datasources/nodes-datasource";
import { LinksDataSource } from "../cartography/datasources/links-datasource";
import { DrawingsDataSource } from "../cartography/datasources/drawings-datasource";
import { Link } from "../cartography/models/link";
import { Link } from "../models/link";
import { Node } from "../cartography/models/node";
import { Drawing } from "../cartography/models/drawing";

View File

@ -1,4 +1,4 @@
import { Label } from "./label";
import { Label } from "../cartography/models/label";
export class LinkNode {
node_id: string;

View File

@ -1,6 +1,6 @@
import { Node } from "./node";
import { Node } from "../cartography/models/node";
import { LinkNode } from "./link-node";
import { Selectable } from "../managers/selection-manager";
import { Selectable } from "../cartography/managers/selection-manager";
export class Link implements Selectable {
@ -11,12 +11,14 @@ export class Link implements Selectable {
link_type: string;
nodes: LinkNode[];
project_id: string;
distance: number; // this is not from server
length: number; // this is not from server
source: Node; // this is not from server
target: Node; // this is not from server
is_selected = false;
x: number;
y: number;
is_selected = false; // this is not from server
x: number; // this is not from server
y: number; // this is not from server
}

View File

@ -3,7 +3,7 @@ import { Project } from '../models/project';
import { Node } from '../cartography/models/node';
import { Observable } from 'rxjs';
import { Link } from "../cartography/models/link";
import { Link } from "../models/link";
import { Server } from "../models/server";
import { HttpServer } from "./http-server.service";
import { Drawing } from "../cartography/models/drawing";

View File

@ -6,7 +6,7 @@ import { HttpServer } from './http-server.service';
import { Server } from '../models/server';
import { getTestServer } from './testing';
import { SymbolService } from './symbol.service';
import { Symbol } from '../cartography/models/symbol';
import { Symbol } from '../models/symbol';
import { AppTestingModule } from "../testing/app-testing/app-testing.module";

View File

@ -1,7 +1,7 @@
import { Injectable } from '@angular/core';
import { BehaviorSubject, forkJoin, Observable } from 'rxjs';
import { Symbol } from '../cartography/models/symbol';
import { Symbol } from '../models/symbol';
import { Server } from "../models/server";
import { HttpServer } from "./http-server.service";

View File

@ -4,8 +4,6 @@ import { HttpClient } from '@angular/common/http';
import { HttpTestingController, HttpClientTestingModule } from '@angular/common/http/testing';
import { HttpServer } from './http-server.service';
import { Server } from '../models/server';
import { Node } from '../cartography/models/node';
import { Port } from '../models/port';
import { getTestServer } from './testing';
import { VersionService } from './version.service';
import { AppTestingModule } from "../testing/app-testing/app-testing.module";