> For the complete documentation index, see [llms.txt](https://biglazytables.gitbook.io/big-lazy-tables/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://biglazytables.gitbook.io/big-lazy-tables/system/module/controller.md).

# Controller

[BLT ](/big-lazy-tables/bachelorarbeit-ip6-big-lazy-tables-fur-das-kolibri-toolkit.md)verfügt über einen zentralen Controller, welcher die Applikation-Logik umsetzt und die Kommunikation zwischen den einzelnen Bestandteilen im klassischen [MVC](/big-lazy-tables/konzepte/mvc.md)-System übernimmt.

Alle Benutzereingaben auf der View werden vom Controller abgefangen und an das [Presentation Model](/big-lazy-tables/system/module/presentation-model.md) weitergeleitet. Bei Bedarf wird im Controller Logik hinzugefügt und erst anschliessend werden die entsprechenden Werte an das Model übergeben. Die View kann sich über den Controller auf dem Model registrieren, um bei Änderung im Model benachrichtigt zu werden.

{% hint style="info" %}
Der Controller hat keinen Zugriff auf die View.
{% endhint %}

Der Controller schaltet sich **zwischen** View und Model und gibt dem Entwickler mehr Kontrolle über die Applikation. Er weiss nichts über die Views und kann somit auch nicht direkt auf sie zugreifen. Die View wiederum hat **keinen direkten Eingriff** auf das Model und das Model weiss nicht, welche Views auf ihm registriert sind. Das ist der klassische Ansatz des MVC.

Um neue Daten zu erhalten, kommuniziert der Controller mit dem [Service ](/big-lazy-tables/system/module/service.md)und legt die neu erhaltenen Einträge im Model ab. Er greift ebenfalls die Grösse der Gesamtdatenmenge sowie die Grösse der gefilterten Datenmenge ab. Aus den beschaffenen Daten liest er zudem die Keys für die Column-Labels im [Headers Projector](/big-lazy-tables/system/module/projectors/table-headers.md) und für die Input-Felder im [Filters Projector](/big-lazy-tables/system/module/projectors/filters.md) aus.

Diese Umsetzung ermöglicht ein sicheres Entkoppeln von View, Model und Service.
