class ConnectionView { constructor(connection) { this.connection = connection; this.connection.onclose = () => { this.onConnectionClosed(); }; this.connection.onopen = () => { this.onConnectionOpened(); }; this.element = document.createElement("div"); let urlLabel = document.createElement("span"); urlLabel.textContent = "URL:"; this.element.appendChild(urlLabel); this.urlTextbox = document.createElement("input"); this.urlTextbox.type = "text"; this.urlTextbox.value = window.location.href.replace(/^http/, "ws"); this.element.appendChild(this.urlTextbox); this.connectButton = document.createElement("input"); this.connectButton.type = "button"; this.connectButton.value = "connect"; this.connectButton.addEventListener("click", () => { this.onConnectButtonClicked(); }); this.element.appendChild(this.connectButton); } onConnectButtonClicked() { if (!this.connection.isConnected) { let url = this.urlTextbox.value; this.connection.connectTo(url); } else { this.connection.close(); } } onConnectionOpened() { this.connectButton.value = "disconnect"; } onConnectionClosed() { this.connectButton.value = "connect"; } }