issue-5-gamesystems #6
@ -57,7 +57,7 @@ function createWindow(): BrowserWindow {
 | 
			
		||||
        {
 | 
			
		||||
          label: "Gamesystem",
 | 
			
		||||
          click: () => {
 | 
			
		||||
            win!.webContents.send('context-menu', "new-location");
 | 
			
		||||
            win!.webContents.send('context-menu', "new-gamesystem");
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										53
									
								
								e2e/game-model/gamesystems/CreateGamesystem.spec.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								e2e/game-model/gamesystems/CreateGamesystem.spec.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,53 @@
 | 
			
		||||
import { BrowserContext, ElectronApplication, Page, _electron as electron } from 'playwright';
 | 
			
		||||
import { test, expect } from '@playwright/test';
 | 
			
		||||
import * as PATH from 'path';
 | 
			
		||||
import {GameModel} from "../../../src/app/game-model/GameModel";
 | 
			
		||||
import {Gamesystem} from "../../src/app/game-model/gamesystems/Gamesystem";
 | 
			
		||||
import {ScriptAccount} from "../../../src/app/game-model/scriptAccounts/ScriptAccount";
 | 
			
		||||
import {ModelComponentType} from "../../../src/app/game-model/ModelComponentType";
 | 
			
		||||
import {SimpleGamesystem} from "../../../src/app/game-model/gamesystems/SimpleGamesystem";
 | 
			
		||||
import exp = require("node:constants");
 | 
			
		||||
import {end} from "electron-debug";
 | 
			
		||||
import {GamesystemTrainer} from "./GamesystemTrainer";
 | 
			
		||||
import {ProductGamesystem} from "../../../src/app/game-model/gamesystems/ProductGamesystem";
 | 
			
		||||
test.describe('Test Create Gamesystems', () => {
 | 
			
		||||
 | 
			
		||||
  test('Test creating gamesystem with invalid name', async => {
 | 
			
		||||
    const gameModel = GamesystemTrainer.givenEmptyGameModel();
 | 
			
		||||
    let result = gameModel.createGamesystem(undefined, undefined);
 | 
			
		||||
    expect(result).toBeUndefined();
 | 
			
		||||
 | 
			
		||||
    result = gameModel.createGamesystem(null, undefined);
 | 
			
		||||
    expect(result).toBeUndefined();
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  test("Test creating gamesystem with valid name but without parent", async => {
 | 
			
		||||
    const gameModel = GamesystemTrainer.givenEmptyGameModel();
 | 
			
		||||
    let result = gameModel.createGamesystem(GamesystemTrainer.SIMPLEGAMESYSTEMNAME, undefined);
 | 
			
		||||
    expect(result).toBeDefined();
 | 
			
		||||
    expect(gameModel.gamesystems.length).toEqual(1);
 | 
			
		||||
    expect(gameModel.findGamesystem(GamesystemTrainer.SIMPLEGAMESYSTEMNAME)).toBeDefined();
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  test("Test creating Gamesystem with valid name but with Product Parent", async => {
 | 
			
		||||
    const gameModel = GamesystemTrainer.givenGameModelWithProductGamesytemOnTopLayer();
 | 
			
		||||
    let result = gameModel.createGamesystem(GamesystemTrainer.SIMPLEGAMESYSTEM_LEAF_LEFT, GamesystemTrainer.TOP_PRODUCT_GAMESYSTEM_NAME);
 | 
			
		||||
    expect(result).toBeDefined();
 | 
			
		||||
    expect(result.parentGamesystem!.componentName).toEqual(GamesystemTrainer.TOP_PRODUCT_GAMESYSTEM_NAME);
 | 
			
		||||
    expect(result.parentGamesystem!.innerGamesystems.length).toEqual(3);
 | 
			
		||||
    expect(result.parentGamesystem!.innerGamesystems.includes(result)).toBeTruthy();
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  test("Test creating Gamesystem with valid name but with Simple Parent", async() => {
 | 
			
		||||
    const gameModel = GamesystemTrainer.givenGameModelWithSimpleGamesystemOnTopLayer();
 | 
			
		||||
    let result = gameModel.createGamesystem(GamesystemTrainer.SIMPLEGAMESYSTEM_LEAF_LEFT, GamesystemTrainer.SIMPLEGAMESYSTEMNAME);
 | 
			
		||||
    expect(result).toBeDefined();
 | 
			
		||||
    expect(gameModel.gamesystems.length).toEqual(1);
 | 
			
		||||
    expect(gameModel.gamesystems[0]).toBeInstanceOf(ProductGamesystem);
 | 
			
		||||
    expect(gameModel.gamesystems[0]).toEqual(result.parentGamesystem);
 | 
			
		||||
    expect((gameModel.gamesystems[0] as ProductGamesystem).innerGamesystems.length).toEqual(1);
 | 
			
		||||
    expect((gameModel.gamesystems[0] as ProductGamesystem).innerGamesystems.includes(result)).toBeTruthy();
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
});
 | 
			
		||||
@ -9,6 +9,9 @@ export class GamesystemTrainer {
 | 
			
		||||
  static TOP_PRODUCT_GAMESYSTEM_NAME: string = "Top Product Gamesystem"
 | 
			
		||||
 | 
			
		||||
  static SIMPLEGAMESYSTEM2: string = "Simple Gamesystem Leaf 2";
 | 
			
		||||
  static SIMPLEGAMESYSTEM_LEAF_LEFT: string = "Leaf Gamesystem Left"
 | 
			
		||||
  static SIMPLEGAMESYSTEM_LEAF_RIGHT: string = "Leaf Gamesystem Right";
 | 
			
		||||
 | 
			
		||||
  static givenEmptyGameModel() {
 | 
			
		||||
    return new GameModel(GamesystemTrainer.GAMEMODELNAME);
 | 
			
		||||
  }
 | 
			
		||||
@ -33,5 +36,20 @@ export class GamesystemTrainer {
 | 
			
		||||
    return gameModel;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static givenGameModelWithProductGamesystemOnLowerLayer() {
 | 
			
		||||
    const gameModel = new GameModel(GamesystemTrainer.GAMEMODELNAME);
 | 
			
		||||
    const top_productGamesystem = new ProductGamesystem(this.TOP_PRODUCT_GAMESYSTEM_NAME);
 | 
			
		||||
    const leaf1 = new ProductGamesystem(this.SIMPLEGAMESYSTEMNAME);
 | 
			
		||||
    const leaf2 = new SimpleGamesystem(this.SIMPLEGAMESYSTEM2);
 | 
			
		||||
    top_productGamesystem.innerGamesystems.push(leaf1);
 | 
			
		||||
    top_productGamesystem.innerGamesystems.push(leaf2);
 | 
			
		||||
    gameModel.addGamesystem(top_productGamesystem);
 | 
			
		||||
 | 
			
		||||
    const leaf_1_1 = new SimpleGamesystem(this.SIMPLEGAMESYSTEM_LEAF_LEFT);
 | 
			
		||||
    leaf1.addChildGamesystem(leaf_1_1);
 | 
			
		||||
    const leaf_1_2 = new SimpleGamesystem(this.SIMPLEGAMESYSTEM_LEAF_RIGHT);
 | 
			
		||||
    leaf1.addChildGamesystem(leaf_1_2);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -21,24 +21,24 @@ test.describe('Test ScriptAccounts', () => {
 | 
			
		||||
  test("Test Adding ScriptAccounts", async () => {
 | 
			
		||||
    const gameModel: GameModel = new GameModel("GameModel");
 | 
			
		||||
 | 
			
		||||
    let scriptAccount =gameModel.addScriptAccount("ScriptAccount");
 | 
			
		||||
    let scriptAccount =gameModel.createScriptAccount("ScriptAccount");
 | 
			
		||||
    expect(scriptAccount).toBeDefined();
 | 
			
		||||
    expect(gameModel.scriptAccounts.length).toEqual(1);
 | 
			
		||||
    expect(gameModel.scriptAccounts.includes(scriptAccount)).toBeTruthy();
 | 
			
		||||
 | 
			
		||||
    //Test adding scriptAccount with already existing name
 | 
			
		||||
    const scriptAccount2 = gameModel.addScriptAccount("ScriptAccount")
 | 
			
		||||
    const scriptAccount2 = gameModel.createScriptAccount("ScriptAccount")
 | 
			
		||||
    expect(scriptAccount2).toBeUndefined();
 | 
			
		||||
    expect(gameModel.scriptAccounts.length).toEqual(1);
 | 
			
		||||
 | 
			
		||||
    //Test for adding invalid names as scriptaccount names (null/undefined/empty)
 | 
			
		||||
    let result = gameModel.addScriptAccount(null);
 | 
			
		||||
    let result = gameModel.createScriptAccount(null);
 | 
			
		||||
    expect(result).toBeUndefined();
 | 
			
		||||
    expect(gameModel.scriptAccounts.length).toEqual(1);
 | 
			
		||||
    result = gameModel.addScriptAccount(undefined);
 | 
			
		||||
    result = gameModel.createScriptAccount(undefined);
 | 
			
		||||
    expect(result).toBeUndefined();
 | 
			
		||||
    expect(gameModel.scriptAccounts.length).toEqual(1);
 | 
			
		||||
    result = gameModel.addScriptAccount("");
 | 
			
		||||
    result = gameModel.createScriptAccount("");
 | 
			
		||||
    expect(result).toBeUndefined();
 | 
			
		||||
    expect(gameModel.scriptAccounts.length).toEqual(1);
 | 
			
		||||
  })
 | 
			
		||||
@ -50,7 +50,7 @@ test.describe('Test ScriptAccounts', () => {
 | 
			
		||||
    gameModel.removeScriptAccount(scriptAccount);
 | 
			
		||||
    expect(gameModel.scriptAccounts.length).toEqual(0);
 | 
			
		||||
 | 
			
		||||
    scriptAccount = gameModel.addScriptAccount("ScriptAccount");
 | 
			
		||||
    scriptAccount = gameModel.createScriptAccount("ScriptAccount");
 | 
			
		||||
    gameModel.removeScriptAccount(scriptAccount);
 | 
			
		||||
    expect(gameModel.scriptAccounts.length).toEqual(0);
 | 
			
		||||
 | 
			
		||||
@ -60,8 +60,8 @@ test.describe('Test ScriptAccounts', () => {
 | 
			
		||||
    gameModel.removeScriptAccount(null);
 | 
			
		||||
    expect(gameModel.scriptAccounts.length).toEqual(0);
 | 
			
		||||
 | 
			
		||||
    scriptAccount = gameModel.addScriptAccount(scriptAccount);
 | 
			
		||||
    let scriptAccount2 = gameModel.addScriptAccount("ScriptAccount 2");
 | 
			
		||||
    scriptAccount = gameModel.createScriptAccount(scriptAccount);
 | 
			
		||||
    let scriptAccount2 = gameModel.createScriptAccount("ScriptAccount 2");
 | 
			
		||||
 | 
			
		||||
    gameModel.removeScriptAccount(scriptAccount);
 | 
			
		||||
    expect(gameModel.scriptAccounts.length).toEqual(1);
 | 
			
		||||
 | 
			
		||||
@ -45,11 +45,39 @@ export class AppComponent implements OnInit{
 | 
			
		||||
 | 
			
		||||
      electronService.ipcRenderer.on('context-menu', (event: any, message: string) => {
 | 
			
		||||
        this.zone.run(() => {
 | 
			
		||||
          this.onContextMenuMessageRecieved(message);
 | 
			
		||||
        });
 | 
			
		||||
      })
 | 
			
		||||
    } else {
 | 
			
		||||
      console.log('Run in browser');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  onContextMenuMessageRecieved(message: string) {
 | 
			
		||||
    if(message == "edit") {
 | 
			
		||||
      this.onEditModelComponent();
 | 
			
		||||
    } else if(message == "delete") {
 | 
			
		||||
      this.onDeleteModelComponent();
 | 
			
		||||
    } else if(message.startsWith("new")) {
 | 
			
		||||
      const splittedMessage = message.split("-");
 | 
			
		||||
      const modelComponentType = ModelComponentTypeUtillities.fromString(splittedMessage[1]);
 | 
			
		||||
      if(modelComponentType != undefined) {
 | 
			
		||||
        this.onCreateModelComponent(modelComponentType);
 | 
			
		||||
      } else {
 | 
			
		||||
        console.log("[ERROR] [App-Component] Unknown Context-Menu Command!")
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private onEditModelComponent() {
 | 
			
		||||
    if(this.openContent == ModelComponentType.SCRIPTACCOUNT && this.scriptAccountOverview != undefined && this.scriptAccountOverview.selectedScriptAccount != undefined) {
 | 
			
		||||
      this.editor!.openGameModelComponent(this.scriptAccountOverview.selectedScriptAccount!);
 | 
			
		||||
    } else {
 | 
			
		||||
      //Erweitere to Gamesystems
 | 
			
		||||
    }
 | 
			
		||||
          } else if(message == "delete") {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private onDeleteModelComponent() {
 | 
			
		||||
    const affectedModelComponent = this.getSelectedModelComponent();
 | 
			
		||||
    const dialogRef = this.dialog.open(DeleteConfirmationDialogComponent, {data: affectedModelComponent, minWidth: "400px"});
 | 
			
		||||
 | 
			
		||||
@ -61,13 +89,34 @@ export class AppComponent implements OnInit{
 | 
			
		||||
      }
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
        })
 | 
			
		||||
      })
 | 
			
		||||
    } else {
 | 
			
		||||
      console.log('Run in browser');
 | 
			
		||||
 | 
			
		||||
  private onCreateModelComponent(modelComponentType: ModelComponentType) {
 | 
			
		||||
    switch (modelComponentType) {
 | 
			
		||||
      case ModelComponentType.SCRIPTACCOUNT: this.onCreateNewScriptAccount(); break
 | 
			
		||||
      case ModelComponentType.GAMESYTEM: this.onCreateNewGamesystem(); break
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private onCreateNewScriptAccount() {
 | 
			
		||||
    const createdScriptAccount = this.gameModel!.createScriptAccount("New ScriptAccount");
 | 
			
		||||
    if(createdScriptAccount != undefined) {
 | 
			
		||||
      this.editor?.openGameModelComponent(createdScriptAccount);
 | 
			
		||||
    } else {
 | 
			
		||||
      console.log("[DEBUG] [App-Component] ScriptAccount could not be created (Name not unique)");
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private onCreateNewGamesystem() {
 | 
			
		||||
    let parentGamesystemName = undefined
 | 
			
		||||
    if(this.openContent != ModelComponentType.GAMESYTEM) {
 | 
			
		||||
      this.openGamesystemsOverview();
 | 
			
		||||
    } else {
 | 
			
		||||
      parentGamesystemName = this.gamesystemOverview!.selectedGamesystemName;
 | 
			
		||||
    }
 | 
			
		||||
    this.gameModel!.createGamesystem("New Gamesystem", parentGamesystemName);
 | 
			
		||||
    this.gamesystemOverview!.refresh();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private getSelectedModelComponent(): ModelComponent | undefined {
 | 
			
		||||
    if(this.openContent == ModelComponentType.SCRIPTACCOUNT) {
 | 
			
		||||
      if(this.scriptAccountOverview != undefined) {
 | 
			
		||||
@ -81,8 +130,8 @@ export class AppComponent implements OnInit{
 | 
			
		||||
 | 
			
		||||
  ngOnInit() {
 | 
			
		||||
    this.gameModel = new GameModel("No More");
 | 
			
		||||
    this.gameModel.addScriptAccount("Temperature");
 | 
			
		||||
    this.gameModel.addScriptAccount("Luftfeuchtigkeit");
 | 
			
		||||
    this.gameModel.createScriptAccount("Temperature");
 | 
			
		||||
    this.gameModel.createScriptAccount("Luftfeuchtigkeit");
 | 
			
		||||
 | 
			
		||||
    const weather = new SimpleGamesystem("Weather");
 | 
			
		||||
    const season = new SimpleGamesystem("Season");
 | 
			
		||||
@ -120,7 +169,7 @@ export class AppComponent implements OnInit{
 | 
			
		||||
 | 
			
		||||
  onModelNameUpdate() {
 | 
			
		||||
    if(this.openContent == ModelComponentType.GAMESYTEM) {
 | 
			
		||||
      this.gamesystemOverview!.onUpdateModelName();
 | 
			
		||||
      this.gamesystemOverview!.refresh();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -3,6 +3,7 @@ import {ScriptAccount} from "./scriptAccounts/ScriptAccount";
 | 
			
		||||
import {Transition} from "./gamesystems/Transition";
 | 
			
		||||
import {State} from "./gamesystems/State";
 | 
			
		||||
import {ProductGamesystem} from "./gamesystems/ProductGamesystem";
 | 
			
		||||
import {SimpleGamesystem} from "./gamesystems/SimpleGamesystem";
 | 
			
		||||
 | 
			
		||||
export class GameModel {
 | 
			
		||||
  private readonly _gameModelName: string
 | 
			
		||||
@ -24,16 +25,14 @@ export class GameModel {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  addGamesystem(gamesystem: Gamesystem<any, any>) {
 | 
			
		||||
    if(!this.gamesystems.includes(gamesystem)) {
 | 
			
		||||
    this._gamesystems.push(gamesystem);
 | 
			
		||||
  }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  removeGamesystem(gamesystem : Gamesystem<any, any>) {
 | 
			
		||||
    this._gamesystems = this._gamesystems.filter(g => g !== gamesystem);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  addScriptAccount(scriptAccountName: string) {
 | 
			
		||||
  createScriptAccount(scriptAccountName: string) {
 | 
			
		||||
    if(scriptAccountName != undefined && scriptAccountName.length > 0) {
 | 
			
		||||
      const scriptAccount = new ScriptAccount(scriptAccountName, "");
 | 
			
		||||
      const searchedScriptAccount = this.scriptAccounts.find(s => s.componentName === scriptAccount.componentName);
 | 
			
		||||
@ -45,6 +44,28 @@ export class GameModel {
 | 
			
		||||
    return undefined;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  createGamesystem(gamesystemName: string, parentGamesystemName: string | undefined) {
 | 
			
		||||
    if(gamesystemName != undefined && this.findGamesystem(gamesystemName) == undefined) {
 | 
			
		||||
      const simpleGamesystem = new SimpleGamesystem(gamesystemName);
 | 
			
		||||
      if(parentGamesystemName != undefined) {
 | 
			
		||||
        const parentGamesystem = this.findGamesystem(parentGamesystemName);
 | 
			
		||||
        if(parentGamesystem instanceof SimpleGamesystem) {
 | 
			
		||||
          const parentProductGamesystem = ProductGamesystem.constructFromSimpleGamesystem(parentGamesystem, this);
 | 
			
		||||
          parentProductGamesystem.addChildGamesystem(simpleGamesystem);
 | 
			
		||||
          simpleGamesystem.parentGamesystem = parentProductGamesystem;
 | 
			
		||||
        } else {
 | 
			
		||||
          const productParentGamesystem = parentGamesystem as ProductGamesystem;
 | 
			
		||||
          productParentGamesystem.addChildGamesystem(simpleGamesystem);
 | 
			
		||||
          simpleGamesystem.parentGamesystem = productParentGamesystem;
 | 
			
		||||
        }
 | 
			
		||||
      } else {
 | 
			
		||||
        this.gamesystems.push(simpleGamesystem);
 | 
			
		||||
 | 
			
		||||
      }
 | 
			
		||||
      return simpleGamesystem;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  removeScriptAccount(scriptAccount: ScriptAccount) {
 | 
			
		||||
    if(scriptAccount != undefined) {
 | 
			
		||||
      this._scriptAccounts = this.scriptAccounts.filter(s => s != scriptAccount);
 | 
			
		||||
 | 
			
		||||
@ -16,4 +16,12 @@ export class ModelComponentTypeUtillities {
 | 
			
		||||
      default: return "Undefined";
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static fromString(string: string) : ModelComponentType | undefined {
 | 
			
		||||
    console.log(string)
 | 
			
		||||
    switch (string) {
 | 
			
		||||
      case "gamesystem": return ModelComponentType.GAMESYTEM;
 | 
			
		||||
      case "scriptaccount": return ModelComponentType.SCRIPTACCOUNT;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -5,12 +5,34 @@ import {State} from "./State";
 | 
			
		||||
import {Transition} from "./Transition";
 | 
			
		||||
import {SimpleState} from "./SimpleState";
 | 
			
		||||
import {SimpleGamesystem} from "./SimpleGamesystem";
 | 
			
		||||
import {GameModel} from "../GameModel";
 | 
			
		||||
 | 
			
		||||
export class ProductGamesystem extends Gamesystem<ProductState, ProductTransition> {
 | 
			
		||||
 | 
			
		||||
  innerGamesystems: SimpleGamesystem[] = [];
 | 
			
		||||
  innerGamesystems: Gamesystem<State<any>, Transition<any>>[] = [];
 | 
			
		||||
  parentGamesystem: ProductGamesystem | undefined
 | 
			
		||||
 | 
			
		||||
  static constructFromSimpleGamesystem(simpleGamesystem: SimpleGamesystem, gameModel: GameModel) {
 | 
			
		||||
    const productGamesystem = new ProductGamesystem(simpleGamesystem.componentName);
 | 
			
		||||
    const parentGamesystem = simpleGamesystem.parentGamesystem;
 | 
			
		||||
 | 
			
		||||
    if(simpleGamesystem.states.length > 0) {
 | 
			
		||||
      simpleGamesystem.componentName += "(Child)";
 | 
			
		||||
      productGamesystem.addChildGamesystem(simpleGamesystem);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    if(parentGamesystem != undefined) {
 | 
			
		||||
      parentGamesystem.removeChildGamesystem(simpleGamesystem);
 | 
			
		||||
      parentGamesystem.addChildGamesystem(productGamesystem);
 | 
			
		||||
    } else {
 | 
			
		||||
      gameModel.removeGamesystem(simpleGamesystem);
 | 
			
		||||
      gameModel.addGamesystem(productGamesystem);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return productGamesystem;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  createState(label: string, description: string): ProductState | undefined {
 | 
			
		||||
    return undefined;
 | 
			
		||||
  }
 | 
			
		||||
@ -28,5 +50,11 @@ export class ProductGamesystem extends Gamesystem<ProductState, ProductTransitio
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  addChildGamesystem(gamesystem: Gamesystem<State<any>, Transition<any>>) {
 | 
			
		||||
    this.innerGamesystems.push(gamesystem);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private removeChildGamesystem(gamesystem: Gamesystem<State<any>, Transition<any>>) {
 | 
			
		||||
    this.innerGamesystems = this.innerGamesystems.filter(childSystem => childSystem != gamesystem);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -92,7 +92,15 @@ export class GamescriptOverviewComponent implements OnInit {
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  onUpdateModelName() {
 | 
			
		||||
  get selectedGamesystemName() {
 | 
			
		||||
    if(this.selectedGamesystem == undefined) {
 | 
			
		||||
      return undefined
 | 
			
		||||
    } else {
 | 
			
		||||
      return this.selectedGamesystem!.name
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  refresh() {
 | 
			
		||||
    this.dataSource.data = this.gameModel!.gamesystems;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -14,17 +14,7 @@ export class ScriptAccountOverviewComponent {
 | 
			
		||||
 | 
			
		||||
  selectedScriptAccount: ScriptAccount | undefined
 | 
			
		||||
 | 
			
		||||
  constructor(private electronService: ElectronService,
 | 
			
		||||
              private zone: NgZone) {
 | 
			
		||||
    if(electronService.isElectron) {
 | 
			
		||||
      this.electronService.ipcRenderer.on('context-menu', (event: any, message: string) => {
 | 
			
		||||
        this.zone.run(() => {
 | 
			
		||||
          if(message == "new-scriptaccount") {
 | 
			
		||||
            this.onCreateNewScriptAccount()
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  constructor() {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  onOpenScriptAccount(scriptAccount: ScriptAccount) {
 | 
			
		||||
@ -32,12 +22,6 @@ export class ScriptAccountOverviewComponent {
 | 
			
		||||
    this.openScriptAccountEmitter.emit(scriptAccount);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  onCreateNewScriptAccount() {
 | 
			
		||||
    const scriptAccount = this.gameModel!.addScriptAccount("New ScriptAccount");
 | 
			
		||||
    if(scriptAccount != undefined) {
 | 
			
		||||
      this.openScriptAccountEmitter.emit(scriptAccount);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  selectScriptAccount(scriptAccount: ScriptAccount) {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user