Skip to content

Commit

Permalink
chore: remove unused fields from connectors
Browse files Browse the repository at this point in the history
  • Loading branch information
siarheihuzarevich committed Dec 25, 2024
1 parent 519c357 commit d39c8a3
Show file tree
Hide file tree
Showing 14 changed files with 116 additions and 238 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,13 @@ export class RedrawConnectionsExecution implements IExecution<RedrawConnectionsR
}

private resetConnectors(): void {
this.fComponentsStore.fOutputs.forEach((output) => output.setConnected(false));
this.fComponentsStore.fInputs.forEach((input) => input.setConnected(false));
this.fComponentsStore.fOutputs.forEach((output) => output.setConnected(false, undefined));
this.fComponentsStore.fInputs.forEach((input) => input.setConnected(false, undefined));
}

private setupConnection(output: FConnectorBase, input: FConnectorBase, connection: FConnectionBase): void {
output.setConnected(true);
input.setConnected(true);
output.setConnected(true, input);
input.setConnected(true, output);

const line = this.getLine(output, input, connection);

Expand Down
6 changes: 1 addition & 5 deletions projects/f-flow/src/f-connection/common/f-connection-base.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { Directive, ElementRef } from '@angular/core';
import { ILine, IPoint, LineExtensions, PointExtensions } from '@foblex/2d';
import { Subject } from 'rxjs';
import { EFConnectionBehavior } from './e-f-connection-behavior';
import { EFConnectionType } from './e-f-connection-type';
import { IHasConnectionColor } from './i-has-connection-color';
Expand All @@ -11,7 +10,6 @@ import { IConnectionGradient } from './f-gradient';
import { FConnectionDragHandleComponent } from './f-drag-handle';
import { FConnectionSelectionComponent } from './f-selection';
import { IConnectionText } from './f-connection-text';
import { IHasStateChanges } from '../../i-has-state-changes';
import { EFConnectableSide } from '../../f-connectors';
import { FConnectionFactory } from '../f-connection-builder';
import { IHasHostElement } from '../../i-has-host-element';
Expand All @@ -33,7 +31,7 @@ const MIXIN_BASE = mixinChangeSelection(
export abstract class FConnectionBase extends MIXIN_BASE
implements IHasHostElement, ICanChangeSelection,
ICanChangeVisibility,
IHasStateChanges, IHasConnectionColor,
IHasConnectionColor,
IHasConnectionFromTo, IHasConnectionText {

public abstract override fId: string;
Expand All @@ -54,8 +52,6 @@ export abstract class FConnectionBase extends MIXIN_BASE

public line: ILine = LineExtensions.initialize();

public readonly stateChanges: Subject<void> = new Subject<void>();

public abstract fDraggingDisabled: boolean;

public abstract override fSelectionDisabled: boolean;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
export interface IHasConnectionText {

fText: string;

fTextStartOffset: string;
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import {
AfterViewInit,
ChangeDetectionStrategy,
Component, ContentChildren, ElementRef, inject, Input, OnDestroy, OnInit, QueryList, ViewChild
Component, ContentChildren, ElementRef, inject, Input, OnChanges, OnDestroy, OnInit, QueryList, ViewChild
} from "@angular/core";
import {
CONNECTION_GRADIENT,
Expand Down Expand Up @@ -36,85 +36,35 @@ let uniqueId: number = 0;
providers: [ { provide: F_CONNECTION, useExisting: FConnectionForCreateComponent } ],
})
export class FConnectionForCreateComponent
extends FConnectionBase implements AfterViewInit, OnInit, OnDestroy {

public override fId: string = `f-connection-for-create-${ uniqueId++ }`;

public override fText: string = '';
extends FConnectionBase implements AfterViewInit, OnInit, OnChanges, OnDestroy {

public override fTextStartOffset: string = '';
public override fId: string = `f-connection-for-create-${ uniqueId++ }`;

private _fStartColor: string = 'black';
@Input()
public override set fStartColor(value: string) {
this._fStartColor = value;
this._componentDataChanged();
}
public override fText: string = '';

public override get fStartColor(): string {
return this._fStartColor;
}
public override fTextStartOffset: string = '';

private _fEndColor: string = 'black';
@Input()
public override set fEndColor(value: string) {
this._fEndColor = value;
this._componentDataChanged();
}
public override fStartColor: string = 'black';

public override get fEndColor(): string {
return this._fEndColor;
}
@Input()
public override fEndColor: string = 'black';

public override fOutputId!: string;

public override fInputId!: string;

private _fRadius: number = 8;
@Input()
public override set fRadius(value: number) {
this._fRadius = value;
this._componentDataChanged();
}
public override fRadius: number = 8;

public override get fRadius(): number {
return this._fRadius;
}

private _fOffset: number = 32;
@Input()
public override set fOffset(value: number) {
this._fOffset = value;
this._componentDataChanged();
}
public override fOffset: number = 32

public override get fOffset(): number {
return this._fOffset;
}

private _behavior: EFConnectionBehavior = EFConnectionBehavior.FIXED;
@Input({ transform: (value: unknown) => castToEnum(value, 'fBehavior', EFConnectionBehavior) })
public override fBehavior: EFConnectionBehavior = EFConnectionBehavior.FIXED;

@Input()
public override set fBehavior(value: EFConnectionBehavior | string) {
this._behavior = castToEnum(value, 'fBehavior', EFConnectionBehavior);
this._componentDataChanged();
}

public override get fBehavior(): EFConnectionBehavior {
return this._behavior;
}

private _type: EFConnectionType = EFConnectionType.STRAIGHT;

@Input()
public override set fType(value: EFConnectionType | string) {
this._type = castToEnum(value, 'fType', EFConnectionType);
this._componentDataChanged();
}

public override get fType(): EFConnectionType {
return this._type;
}
public override fType: EFConnectionType | string = EFConnectionType.STRAIGHT;

public override fDraggingDisabled: boolean = false;

Expand Down Expand Up @@ -165,11 +115,11 @@ export class FConnectionForCreateComponent
this.hide();
}

public ngOnDestroy(): void {
this._fMediator.send(new RemoveConnectionForCreateFromStoreRequest());
public ngOnChanges(): void {
this._fMediator.send(new ComponentsDataChangedRequest());
}

private _componentDataChanged(): void {
this._fMediator.send(new ComponentsDataChangedRequest());
public ngOnDestroy(): void {
this._fMediator.send(new RemoveConnectionForCreateFromStoreRequest());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,10 @@ export class FConnectionComponent
public override fId: string = `f-connection-${ uniqueId++ }`;

@Input()
public override fTextStartOffset: string = '';
public override fText: string = '';

@Input()
public override fText: string = '';
public override fTextStartOffset: string = '';

@Input()
public override fStartColor: string = 'black';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import {
AfterViewInit,
ChangeDetectionStrategy,
Component, ContentChildren, ElementRef, inject, Input, OnDestroy, OnInit, QueryList, ViewChild
Component, ContentChildren, ElementRef, inject, Input, OnChanges, OnDestroy, OnInit, QueryList, ViewChild
} from "@angular/core";
import {
CONNECTION_GRADIENT,
Expand Down Expand Up @@ -33,34 +33,19 @@ let uniqueId: number = 0;
providers: [ { provide: F_CONNECTION, useExisting: FSnapConnectionComponent } ],
})
export class FSnapConnectionComponent
extends FConnectionBase implements AfterViewInit, OnInit, OnDestroy {
extends FConnectionBase implements AfterViewInit, OnInit, OnChanges, OnDestroy {

public override fId: string = `f-snap-connection-${ uniqueId++ }`;

public override fText: string = '';

public override fTextStartOffset: string = '';

private _fStartColor: string = 'black';
@Input()
public override set fStartColor(value: string) {
this._fStartColor = value;
this._componentDataChanged();
}
public override get fStartColor(): string {
return this._fStartColor;
}
public override fStartColor: string = 'black';

private _fEndColor: string = 'black';
@Input()
public override set fEndColor(value: string) {
this._fEndColor = value;
this._componentDataChanged();
}

public override get fEndColor(): string {
return this._fEndColor;
}
public override fEndColor: string = 'black';

@Input()
public fSnapThreshold: number = 20;
Expand All @@ -69,49 +54,17 @@ export class FSnapConnectionComponent

public override fInputId!: string;

private _fRadius: number = 8;

@Input()
public override set fRadius(value: number) {
this._fRadius = value;
this._componentDataChanged();
}
public override get fRadius(): number {
return this._fRadius;
}

private _fOffset: number = 32;
public override fRadius: number = 8;

@Input()
public override set fOffset(value: number) {
this._fOffset = value;
this._componentDataChanged();
}
public override get fOffset(): number {
return this._fOffset;
}
public override fOffset: number = 32

private _behavior: EFConnectionBehavior = EFConnectionBehavior.FIXED;
@Input({ transform: (value: unknown) => castToEnum(value, 'fBehavior', EFConnectionBehavior) })
public override fBehavior: EFConnectionBehavior = EFConnectionBehavior.FIXED;

@Input()
public override set fBehavior(value: EFConnectionBehavior | string) {
this._behavior = castToEnum(value, 'fBehavior', EFConnectionBehavior);
this._componentDataChanged();
}
public override get fBehavior(): EFConnectionBehavior {
return this._behavior;
}

private _type: EFConnectionType = EFConnectionType.STRAIGHT;

@Input()
public override set fType(value: EFConnectionType | string) {
this._type = castToEnum(value, 'fType', EFConnectionType);
this._componentDataChanged();
}
public override get fType(): EFConnectionType {
return this._type;
}
public override fType: EFConnectionType | string = EFConnectionType.STRAIGHT;

public override fDraggingDisabled: boolean = false;

Expand Down Expand Up @@ -162,11 +115,11 @@ export class FSnapConnectionComponent
this.hide();
}

public ngOnDestroy(): void {
this._fMediator.send(new RemoveSnapConnectionFromStoreRequest());
public ngOnChanges(): void {
this._fMediator.send(new ComponentsDataChangedRequest());
}

private _componentDataChanged(): void {
this._fMediator.send(new ComponentsDataChangedRequest());
public ngOnDestroy(): void {
this._fMediator.send(new RemoveSnapConnectionFromStoreRequest());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ export class CalculateConnectorConnectableSideHandler
public handle(request: CalculateConnectorConnectableSideRequest): EFConnectableSide {
let result: EFConnectableSide;

if (request.fConnector._fConnectableSide === EFConnectableSide.AUTO) {
if (request.fConnector.userFConnectableSide === EFConnectableSide.AUTO) {
result = this.getSideByDelta(request.fConnector.hostElement, request.fNodeHost);
} else {
result = request.fConnector._fConnectableSide;
result = request.fConnector.userFConnectableSide;
}
return result;
}
Expand Down
21 changes: 12 additions & 9 deletions projects/f-flow/src/f-connectors/f-connector-base.ts
Original file line number Diff line number Diff line change
@@ -1,33 +1,36 @@
import { Subject } from 'rxjs';
import { EFConnectableSide } from './e-f-connectable-side';
import { IHasStateChanges } from '../i-has-state-changes';
import { IHasHostElement } from '../i-has-host-element';

export abstract class FConnectorBase implements IHasStateChanges, IHasHostElement {
export abstract class FConnectorBase implements IHasHostElement {

public abstract fId: string;

public abstract disabled: boolean;

public abstract hostElement: HTMLElement | SVGElement;

public readonly stateChanges: Subject<void> = new Subject<void>();

public abstract canBeConnected: boolean;

public abstract isConnected: boolean;
private _isConnected: boolean = false;

public get isConnected(): boolean {
return this._isConnected;
}

public toConnector: FConnectorBase | undefined;

public isSelfConnectable: boolean = true;

public fConnectableSide: EFConnectableSide = EFConnectableSide.AUTO;

public _fConnectableSide: EFConnectableSide = EFConnectableSide.AUTO;
public userFConnectableSide: EFConnectableSide = EFConnectableSide.AUTO;

public isContains(element: HTMLElement | SVGElement): boolean {
return this.hostElement.contains(element);
}

public setConnected(isConnected: boolean): void {
this.isConnected = isConnected;
public setConnected(isConnected: boolean, toConnector?: FConnectorBase): void {
this._isConnected = isConnected;
this.toConnector = toConnector;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ export abstract class FNodeInputBase extends FConnectorBase {

public abstract multiple: boolean;

public isConnected: boolean = false;

public get canBeConnected(): boolean {
return !this.disabled && (this.multiple ? true : !this.isConnected);
}
Expand Down
Loading

0 comments on commit d39c8a3

Please sign in to comment.