!7 static MapSO _renameClasses = litmap("GazelleBEA" := "GazelleBEAForUsers"); mainPackage gazelle mainClassName main module GazelleBEAForUsers > GazelleBEA { transient O eleu; switchable S gazelleImage = #1102967; transient S myURL; start { dm_requireInBackground("#1031417/Eleu3", eleu -> { this.eleu = eleu; grabURL(); }); /*dm_startThread(r { dm_require("#1031421/HolePuncher"); });*/ dm_onFieldChange gazelleImage(r dm_revisualize); dm_doEveryAndNow(10.0, r grabURL); } void init :: after { set !alwaysRedirectToHttps; } visualize { var c = dm_visualizeWithEnabled(jtabs( "Main" := jCenterIn3x3Grid( centerAndSouthWithMargin(openButton(), setFont(sansSerif(20), dm_centeredLabel myURL()))), "Log" := makePrintLogPanel() )); addControl(jPopDownButton_noText("Make master user..." := rThreadEnter makeMaster); ret c; } void makeMaster { var users = listMinus(list(User), internalUser()); if (empty(users)) ret with infoMessage("Please first register a user in the web interface!"); if (l(users) > 1) ret with infoMessage("More than one user - I am confused - please ask Stefan for a software update"); User user = first(users); if (!swingConfirm("Turn " + user + " into a master user?")) ret; cset(user, isMaster := true); infoMessage(user + " is now my master!!"); } // API void grabURL q { _setField(myURL := myURL()); } JButton openButton() { ret setToolTip("Open your local Gazelle installation through your browser", jImageButton(gazelleImage, r { openInPlatformBrowser(myURL()) })); } S myURL() { ret "http://localhost:" + dm_get httpPort(eleu); } } !include early #1031418 // Gazelle BEA