diff options
Diffstat (limited to 'src/renderer/gameserver/serverView/controller.ts')
-rw-r--r-- | src/renderer/gameserver/serverView/controller.ts | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/renderer/gameserver/serverView/controller.ts b/src/renderer/gameserver/serverView/controller.ts new file mode 100644 index 0000000..412033c --- /dev/null +++ b/src/renderer/gameserver/serverView/controller.ts @@ -0,0 +1,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; + } +}
\ No newline at end of file |