summaryrefslogtreecommitdiff
path: root/src/renderer/gameserver/serverView/controller.ts
blob: 5e181ca625235fc5225b85378f3d2d8832dbb0ad (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import GameServer from "../server";
import { updateLoginTextElement, ServerPreferencesPage } from "./preferences";
import { ServerInfoPage } from "./info";
import { GameServerPage } from "./serverPage";
import { ServerScreenshotPage } from "./screenshots";

export type ServerSubPages = "INFO" | "SCREENSHOTS" | "PREF" | "UNKNOWN";

export class PageController {
  unknownPage: GameServerPage;
  infoPage: ServerInfoPage;
  scrnshtPage: ServerScreenshotPage;
  prefPage: ServerPreferencesPage;

  constructor(private server: GameServer) {
    this.unknownPage = new GameServerPage(server);
    this.infoPage = new ServerInfoPage(server);
    this.scrnshtPage = new ServerScreenshotPage(server);
    this.prefPage = new ServerPreferencesPage(server);
  }

  getPage(type: ServerSubPages): HTMLElement {
    let page: GameServerPage = this.unknownPage;
    if (type == "INFO") {
      page = this.infoPage;
    } else if (type == "SCREENSHOTS") {
      page = this.scrnshtPage;
    } else if (type == "PREF") {
      page = this.prefPage;
    }
    const htmlElement = document.createElement("div");
    htmlElement.appendChild(page.getPage());
    updateLoginTextElement(this.server.profile.address);
    return htmlElement;
  }
}