Fixed Circular Dependency.

This commit is contained in:
Michael Mainguy 2024-05-01 08:34:25 -05:00
parent dc3c3c56a1
commit b788b64df5
4 changed files with 19 additions and 13 deletions

View File

@ -14,13 +14,9 @@ import {isDiagramEntity} from "./functions/isDiagramEntity";
import {DefaultScene} from "../defaultScene";
import {DiagramMenuManager} from "./diagramMenuManager";
import {ClickMenu} from "../menus/clickMenu";
import {DiagramEventObserverMask} from "./types/diagramEventObserverMask";
export enum DiagramEventObserverMask {
ALL = -1,
FROM_DB = 1,
TO_DB = 2,
}
export class DiagramManager {
private logger = log.getLogger('DiagramManager');
public readonly _config: AppConfig;

View File

@ -1,6 +1,5 @@
import {DiagramEvent, DiagramEventType} from "./types/diagramEntity";
import {AbstractMesh, ActionEvent, Observable, Scene, TransformNode, Vector3} from "@babylonjs/core";
import {DiagramEventObserverMask} from "./diagramManager";
import {InputTextView} from "../information/inputTextView";
import {toDiagramEntity} from "./functions/toDiagramEntity";
import {DefaultScene} from "../defaultScene";
@ -11,6 +10,7 @@ import {ScaleMenu} from "../menus/scaleMenu";
import {ClickMenu} from "../menus/clickMenu";
import {ConfigMenu} from "../menus/configMenu";
import {AppConfig} from "../util/appConfig";
import {DiagramEventObserverMask} from "./types/diagramEventObserverMask";
export class DiagramMenuManager {

View File

@ -0,0 +1,5 @@
export enum DiagramEventObserverMask {
ALL = -1,
FROM_DB = 1,
TO_DB = 2,
}

View File

@ -1,15 +1,17 @@
import {AbstractMesh, ActionEvent, Observable, Scene, TransformNode, Vector3} from "@babylonjs/core";
import {DiagramEvent, DiagramEventType} from "../diagram/types/diagramEntity";
import {toDiagramEntity} from "../diagram/functions/toDiagramEntity";
import {DiagramEventObserverMask} from "../diagram/diagramManager";
import {DiagramConnection} from "../diagram/diagramConnection";
import {isDiagramEntity} from "../diagram/functions/isDiagramEntity";
import {HtmlButton} from "babylon-html";
import {DiagramEventObserverMask} from "../diagram/types/diagramEventObserverMask";
const POINTER_UP = "pointerup";
export class ClickMenu {
private readonly _mesh: AbstractMesh;
private readonly transform: TransformNode;
private connection: DiagramConnection = null;
public onClickMenuObservable: Observable<ActionEvent> = new Observable<ActionEvent>();
private _diagramEventObservable: Observable<DiagramEvent>;
@ -23,7 +25,7 @@ export class ClickMenu {
const removeButton: HtmlButton = this.makeNewButton("Remove", "remove", scene, x += .11);
removeButton.onPointerObservable.add((eventData) => {
if (eventData.sourceEvent.type == "pointerup") {
if (isUp(eventData)) {
this.onClickMenuObservable.notifyObservers(eventData);
this.dispose();
}
@ -32,7 +34,7 @@ export class ClickMenu {
const labelButton: HtmlButton = this.makeNewButton("Label", "label", scene, x += .11);
labelButton.onPointerObservable.add((eventData) => {
if (eventData.sourceEvent.type == "pointerup") {
if (isUp(eventData)) {
this.onClickMenuObservable.notifyObservers(eventData);
this.dispose();
}
@ -40,15 +42,14 @@ export class ClickMenu {
const connectButton: HtmlButton = this.makeNewButton("Connect", "connect", scene, x += .11);
connectButton.onPointerObservable.add((eventData) => {
if (eventData.sourceEvent.type == "pointerup") {
if (isUp(eventData)) {
this.createMeshConnection(this._mesh, grip, eventData.additionalData.pickedPoint.clone());
}
}, -1, false, this, false);
const closeButton: HtmlButton = this.makeNewButton("Close", "close", scene, x += .11);
closeButton.onPointerObservable.add((eventData) => {
if (eventData.sourceEvent.type == "pointerup") {
if (isUp(eventData)) {
this.onClickMenuObservable.notifyObservers(eventData);
this.dispose();
}
@ -56,7 +57,7 @@ export class ClickMenu {
const sizeButton: HtmlButton = this.makeNewButton("Size", "size", scene, x += .11);
sizeButton.onPointerObservable.add((eventData) => {
if (eventData.sourceEvent.type == "pointerup") {
if (isUp(eventData)) {
this.onClickMenuObservable.notifyObservers(eventData);
}
}, -1, false, this, false);
@ -107,4 +108,8 @@ export class ClickMenu {
private dispose() {
this.transform.dispose(false, true);
}
}
function isUp(event: ActionEvent): boolean {
return event?.sourceEvent?.type == POINTER_UP;
}