Code clean

This commit is contained in:
ziajka 2018-10-31 12:57:07 +01:00
parent a681072b86
commit 98acd62b74
19 changed files with 148 additions and 68 deletions

View File

@ -7,6 +7,23 @@ import { MultiLinkCalculatorHelper } from './helpers/multi-link-calculator-helpe
import { SvgToDrawingConverter } from './helpers/svg-to-drawing-converter';
import { QtDasharrayFixer } from './helpers/qt-dasharray-fixer';
import { LayersManager } from './managers/layers-manager';
import { MapChangeDetectorRef } from './services/map-change-detector-ref';
import { GraphLayout } from './widgets/graph-layout';
import { LinksWidget } from './widgets/links';
import { NodesWidget } from './widgets/nodes';
import { DrawingsWidget } from './widgets/drawings';
import { DrawingLineWidget } from './widgets/drawing-line';
import { SelectionTool } from './tools/selection-tool';
import { MovingTool } from './tools/moving-tool';
import { LayersWidget } from './widgets/layers';
import { LinkWidget } from './widgets/link';
import { InterfaceStatusWidget } from './widgets/interface-status';
import { InterfaceLabelWidget } from './widgets/interface-label';
import { EllipseDrawingWidget } from './widgets/drawings/ellipse-drawing';
import { ImageDrawingWidget } from './widgets/drawings/image-drawing';
import { RectDrawingWidget } from './widgets/drawings/rect-drawing';
import { TextDrawingWidget } from './widgets/drawings/text-drawing';
import { LineDrawingWidget } from './widgets/drawings/line-drawing';
@NgModule({
imports: [
@ -21,7 +38,24 @@ import { LayersManager } from './managers/layers-manager';
MultiLinkCalculatorHelper,
SvgToDrawingConverter,
QtDasharrayFixer,
LayersManager
LayersManager,
MapChangeDetectorRef,
GraphLayout,
LinksWidget,
NodesWidget,
DrawingsWidget,
DrawingLineWidget,
SelectionTool,
MovingTool,
LayersWidget,
LinkWidget,
InterfaceStatusWidget,
InterfaceLabelWidget,
EllipseDrawingWidget,
ImageDrawingWidget,
LineDrawingWidget,
RectDrawingWidget,
TextDrawingWidget
],
exports: [MapComponent]
})

View File

@ -32,15 +32,17 @@ export class MapComponent implements OnInit, OnChanges, OnDestroy {
private svg: Selection<SVGSVGElement, any, null, undefined>;
private graphContext: Context;
public graphLayout: GraphLayout;
// public graphLayout: GraphLayout;
protected settings = {
'show_interface_labels': true
};
constructor(protected element: ElementRef,
protected d3Service: D3Service
) {
constructor(
protected element: ElementRef,
protected d3Service: D3Service,
public graphLayout: GraphLayout
) {
this.d3 = d3Service.getD3();
this.parentNativeElement = element.nativeElement;
}
@ -94,7 +96,7 @@ export class MapComponent implements OnInit, OnChanges, OnDestroy {
this.graphContext.size = this.getSize();
this.graphLayout = new GraphLayout();
// this.graphLayout = new GraphLayout();
this.graphLayout.connect(this.svg, this.graphContext);
this.graphLayout.getNodesWidget().addOnNodeDraggingCallback((event: any, n: Node) => {

View File

@ -0,0 +1,9 @@
import { Injectable } from "@angular/core";
@Injectable()
export class MapChangeDetectorRef {
public detectChanges() {
}
}

View File

@ -1,3 +1,5 @@
import { Injectable } from "@angular/core";
import { D3ZoomEvent, zoom, ZoomBehavior} from "d3-zoom";
import { event } from "d3-selection";
@ -5,6 +7,7 @@ import { SVGSelection} from "../models/types";
import { Context} from "../models/context";
@Injectable()
export class MovingTool {
private selection: SVGSelection;
private context: Context;

View File

@ -1,3 +1,5 @@
import { Injectable } from "@angular/core";
import { line } from "d3-shape";
import { mouse } from "d3-selection";
@ -7,6 +9,7 @@ import { Point } from "../models/point";
import { Context } from "../models/context";
@Injectable()
export class DrawingLineWidget {
private drawingLine: DrawingLine = new DrawingLine();
private selection: SVGSelection;

View File

@ -1,3 +1,5 @@
import { Injectable } from "@angular/core";
import { Widget } from "./widget";
import { Drawing } from "../models/drawing";
import { SVGSelection } from "../models/types";
@ -11,18 +13,27 @@ import { EllipseDrawingWidget } from "./drawings/ellipse-drawing";
import { DrawingWidget } from "./drawings/drawing-widget";
@Injectable()
export class DrawingsWidget implements Widget {
private svgToDrawingConverter: SvgToDrawingConverter;
private drawingWidgets: DrawingWidget[] = [
new TextDrawingWidget(),
new ImageDrawingWidget(),
new RectDrawingWidget(),
new LineDrawingWidget(),
new EllipseDrawingWidget()
];
private drawingWidgets: DrawingWidget[] = [];
constructor() {
constructor(
private svgToDrawingConverter: SvgToDrawingConverter,
private textDrawingWidget: TextDrawingWidget,
private imageDrawingWidget: ImageDrawingWidget,
private rectDrawingWidget: RectDrawingWidget,
private lineDrawingWidget: LineDrawingWidget,
private ellipseDrawingWidget: EllipseDrawingWidget
) {
this.svgToDrawingConverter = new SvgToDrawingConverter();
this.drawingWidgets = [
this.textDrawingWidget,
this.imageDrawingWidget,
this.rectDrawingWidget,
this.lineDrawingWidget,
this.ellipseDrawingWidget
];
}
public draw(view: SVGSelection, drawings?: Drawing[]) {

View File

@ -1,3 +1,5 @@
import { Injectable } from "@angular/core";
import { SVGSelection } from "../../models/types";
import { Drawing } from "../../models/drawing";
import { EllipseElement } from "../../models/drawings/ellipse-element";
@ -5,12 +7,12 @@ import { DrawingWidget } from "./drawing-widget";
import { QtDasharrayFixer } from "../../helpers/qt-dasharray-fixer";
@Injectable()
export class EllipseDrawingWidget implements DrawingWidget {
private qtDasharrayFixer: QtDasharrayFixer;
constructor() {
this.qtDasharrayFixer = new QtDasharrayFixer();
}
constructor(
private qtDasharrayFixer: QtDasharrayFixer
) {}
public draw(view: SVGSelection) {
const drawing = view

View File

@ -1,9 +1,12 @@
import { Injectable } from "@angular/core";
import { SVGSelection } from "../../models/types";
import { Drawing } from "../../models/drawing";
import { ImageElement } from "../../models/drawings/image-element";
import { DrawingWidget } from "./drawing-widget";
@Injectable()
export class ImageDrawingWidget implements DrawingWidget {
public draw(view: SVGSelection) {
const drawing = view

View File

@ -1,3 +1,5 @@
import { Injectable } from "@angular/core";
import { SVGSelection } from "../../models/types";
import { Drawing } from "../../models/drawing";
import { LineElement } from "../../models/drawings/line-element";
@ -5,12 +7,12 @@ import { DrawingWidget } from "./drawing-widget";
import { QtDasharrayFixer } from "../../helpers/qt-dasharray-fixer";
@Injectable()
export class LineDrawingWidget implements DrawingWidget {
private qtDasharrayFixer: QtDasharrayFixer;
constructor() {
this.qtDasharrayFixer = new QtDasharrayFixer();
}
constructor(
private qtDasharrayFixer: QtDasharrayFixer
) {}
public draw(view: SVGSelection) {
const drawing = view

View File

@ -1,3 +1,5 @@
import { Injectable } from "@angular/core";
import { SVGSelection } from "../../models/types";
import { Drawing } from "../../models/drawing";
import { RectElement } from "../../models/drawings/rect-element";
@ -5,12 +7,11 @@ import { DrawingWidget } from "./drawing-widget";
import { QtDasharrayFixer } from "../../helpers/qt-dasharray-fixer";
@Injectable()
export class RectDrawingWidget implements DrawingWidget {
private qtDasharrayFixer: QtDasharrayFixer;
constructor() {
this.qtDasharrayFixer = new QtDasharrayFixer();
}
constructor(
private qtDasharrayFixer: QtDasharrayFixer
) {}
public draw(view: SVGSelection) {
const drawing = view

View File

@ -1,3 +1,5 @@
import { Injectable } from "@angular/core";
import { SVGSelection } from "../../models/types";
import { TextElement } from "../../models/drawings/text-element";
import { Drawing } from "../../models/drawing";
@ -6,14 +8,13 @@ import { FontFixer } from "../../helpers/font-fixer";
import { select } from "d3-selection";
@Injectable()
export class TextDrawingWidget implements DrawingWidget {
static MARGIN = 4;
private fontFixer: FontFixer;
constructor() {
this.fontFixer = new FontFixer();
}
constructor(
private fontFixer: FontFixer
) {}
public draw(view: SVGSelection) {

View File

@ -12,29 +12,24 @@ import { SelectionTool } from "../tools/selection-tool";
import { MovingTool } from "../tools/moving-tool";
import { LayersWidget } from "./layers";
import { LayersManager } from "../managers/layers-manager";
import { Injectable } from "@angular/core";
@Injectable()
export class GraphLayout implements Widget {
private nodes: Node[] = [];
private links: Link[] = [];
private drawings: Drawing[] = [];
private linksWidget: LinksWidget;
private nodesWidget: NodesWidget;
private drawingsWidget: DrawingsWidget;
private drawingLineTool: DrawingLineWidget;
private selectionTool: SelectionTool;
private movingTool: MovingTool;
private layersWidget: LayersWidget;
constructor() {
this.linksWidget = new LinksWidget();
this.nodesWidget = new NodesWidget();
this.drawingsWidget = new DrawingsWidget();
this.drawingLineTool = new DrawingLineWidget();
this.selectionTool = new SelectionTool();
this.movingTool = new MovingTool();
this.layersWidget = new LayersWidget();
constructor(
private linksWidget: LinksWidget,
private nodesWidget: NodesWidget,
private drawingsWidget: DrawingsWidget,
private drawingLineTool: DrawingLineWidget,
private selectionTool: SelectionTool,
private movingTool: MovingTool,
private layersWidget: LayersWidget
) {
}
public setNodes(nodes: Node[]) {

View File

@ -1,18 +1,19 @@
import { Injectable } from "@angular/core";
import { SVGSelection } from "../models/types";
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";
@Injectable()
export class InterfaceLabelWidget {
static SURROUNDING_TEXT_BORDER = 5;
private enabled = true;
constructor(
@Inject(CssFixer) private cssFixer: CssFixer
private cssFixer: CssFixer
) {
}

View File

@ -1,3 +1,5 @@
import { Injectable } from "@angular/core";
import { select } from "d3-selection";
import { Widget } from "./widget";
@ -6,6 +8,7 @@ import { Link } from "../../models/link";
import { LinkStatus } from "../models/link-status";
@Injectable()
export class InterfaceStatusWidget implements Widget {
constructor() {}

View File

@ -1,9 +1,12 @@
import { Injectable } from "@angular/core";
import { Widget } from "./widget";
import { SVGSelection } from "../models/types";
import { GraphLayout } from "./graph-layout";
import { Layer } from "../models/layer";
@Injectable()
export class LayersWidget implements Widget {
public graphLayout: GraphLayout;

View File

@ -1,3 +1,4 @@
import { Injectable } from "@angular/core";
import { Widget } from "./widget";
import { SVGSelection } from "../models/types";
import { Link } from "../../models/link";
@ -9,10 +10,12 @@ import { CssFixer } from "../helpers/css-fixer";
import { InterfaceStatusWidget } from "./interface-status";
@Injectable()
export class LinkWidget implements Widget {
private multiLinkCalculatorHelper = new MultiLinkCalculatorHelper();
constructor() {}
constructor(
private multiLinkCalculatorHelper: MultiLinkCalculatorHelper
) {}
public getInterfaceLabelWidget() {
return new InterfaceLabelWidget(new CssFixer());

View File

@ -1,3 +1,5 @@
import { Injectable } from "@angular/core";
import { Widget } from "./widget";
import { SVGSelection } from "../models/types";
import { Link } from "../../models/link";
@ -5,12 +7,12 @@ import { MultiLinkCalculatorHelper } from "../helpers/multi-link-calculator-help
import { Layer } from "../models/layer";
import { LinkWidget } from "./link";
@Injectable()
export class LinksWidget implements Widget {
private multiLinkCalculatorHelper = new MultiLinkCalculatorHelper();
private linkWidget = new LinkWidget();
constructor() {
constructor(
private multiLinkCalculatorHelper: MultiLinkCalculatorHelper,
private linkWidget: LinkWidget
) {
}
public getLinkWidget() {

View File

@ -1,3 +1,5 @@
import { Injectable } from "@angular/core";
import { event, select, Selection } from "d3-selection";
import { D3DragEvent, drag } from "d3-drag";
@ -10,6 +12,7 @@ import { CssFixer } from "../helpers/css-fixer";
import { FontFixer } from "../helpers/font-fixer";
@Injectable()
export class NodesWidget implements Widget {
static NODE_LABEL_MARGIN = 3;
@ -21,14 +24,13 @@ export class NodesWidget implements Widget {
private onNodeDraggedCallback: (event: any, node: Node) => void;
private onNodeDraggingCallbacks: ((event: any, node: Node) => void)[] = [];
private symbols: Symbol[];
private cssFixer: CssFixer;
private fontFixer: FontFixer;
private symbols: Symbol[] = [];
constructor() {
constructor(
private cssFixer: CssFixer,
private fontFixer: FontFixer
) {
this.symbols = [];
this.cssFixer = new CssFixer();
this.fontFixer = new FontFixer();
}
public setOnContextMenuCallback(onContextMenuCallback: (event: any, node: Node) => void) {

View File

@ -19,7 +19,7 @@ describe('SnapshotMenuItemComponent', () => {
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
// it('should create', () => {
// expect(component).toBeTruthy();
// });
});