AppState vs Controls

I am having difficulty understanding the difference between AppState and Controls. I know that AppState encapsulates states. But I dont understand how Controls fit into the picture. What responsibility does a Control have that isn’t covered by a State?

Controls are spatial specific.

Watch this

It goes through using app states and a bunch of other stuff and is an awesome video. Although it might have been the usecase 2 video I can’t remember. Personally I use appstates for a variety of things, one being the overall state of the game, paused, running, game mode or watever.

If you want some example usage of app states, you can also look at two of my open source projects where I use them almost like services:
https://code.google.com/p/simsilica-tools/source/browse/trunk/IsoSurfaceDemo/src/main/java/com/simsilica/iso/demo/Main.java#98
https://code.google.com/p/simsilica-tools/source/browse/trunk/SimArboreal-Editor/src/main/java/com/simsilica/arboreal/TreeEditor.java#93

…as a start. You can see how one might use app states for more general services that can be enabled/disabled, etc… and even reused across applications.

Expanding on my other answer, controls are spatial specific. For everything else, use an app state.