Building blocks around your pages: the sidebar's sections and badges,
buttons that show they're busy, confirming an action, and loading slow content after the page.
Busy buttons
With setBusyIndicator(true), an Oat button shows a spinner while its
Ajax request runs and ignores further clicks, so a slow save can't run twice.
Oat.Behaviors.ajaxBusy() does the same for any Wicket Ajax link or button.
Confirm before an action
One OatConfirmDialog serves every row: confirm.ask(target, question,
detail, action). The count next to "App Shell" in the sidebar is a MenuItem badge,
re-rendered with target.add(getSidebar()).