summaryrefslogtreecommitdiff
path: root/src/renderer/gameserver/serverView/controller.ts
blob: 412033cf7126484cb6f5ad69e46829411e6755df (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;
    }
}