summaryrefslogtreecommitdiff
path: root/src/renderer/gameserver/serverView/controller.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/renderer/gameserver/serverView/controller.ts')
-rw-r--r--src/renderer/gameserver/serverView/controller.ts36
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