X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FPageToadletRegistry.kt;h=651bffdec8109b992c218fb178ef1711b683abf7;hp=97e6cfe9aab7a885da330aaea6fbf395107266e9;hb=faf66247a34f64946990a985d2ea3003465969cb;hpb=03cec6a6772c2d836d94864adddaf544cbe9d72f diff --git a/src/main/kotlin/net/pterodactylus/sone/web/PageToadletRegistry.kt b/src/main/kotlin/net/pterodactylus/sone/web/PageToadletRegistry.kt index 97e6cfe..651bffd 100644 --- a/src/main/kotlin/net/pterodactylus/sone/web/PageToadletRegistry.kt +++ b/src/main/kotlin/net/pterodactylus/sone/web/PageToadletRegistry.kt @@ -18,21 +18,28 @@ class PageToadletRegistry @Inject constructor( ) { private val pages = mutableListOf>() + private val debugPages = mutableListOf>() private val registeredToadlets = mutableListOf() private val registered = AtomicBoolean(false) + private val debugActivated = AtomicBoolean(false) fun addPage(page: Page) { if (registered.get()) throw IllegalStateException() pages += page } + fun addDebugPage(page: Page) { + if (registered.get()) throw IllegalStateException() + debugPages += page + } + fun registerToadlets() { registered.set(true) pageMaker.addNavigationCategory("/Sone/index.html", soneMenuName, "$soneMenu.Tooltip", sonePlugin) addPages() } - private fun addPages() = + private fun addPages(pages: List> = this.pages) = pages .map { pageToadletFactory.createPageToadlet(it) } .onEach(registeredToadlets::plusAssign) @@ -55,4 +62,11 @@ class PageToadletRegistry @Inject constructor( registeredToadlets.forEach(toadletContainer::unregister) } + fun activateDebugMode() { + if (!debugActivated.get()) { + addPages(debugPages) + debugActivated.set(true) + } + } + }