Kapitel 1. Einführung

1.1. Einleitung

1.1.1. Was ist ippfp

ippfp ist eine objektorientierte Umgebung um Benutzerschnittstellen schnell und einfach in verschiedenen Ausgabeformaten umzusetzen. Es unterstützt die wichtigsten Ein/Ausgabeelemente und stellt diese als Objekte zur Verfügung. Das bedeutet dass Eigenschaften eines jeden Elements in einer Datenstruktur vorhanden und abrufbar sind. Diese Datenstruktur ist in der Klasse element definiert, alle Elemente leiten sich von dieser Klasse ab und erweitern diese ggf. um formatspezifische Eigenschaften.

Die Bibliothek ist darauf ausgerichtet, schnell und effizient Benutzerschnittstellen konstruieren zu können. Will man beispielsweise eine besonders ausgefeilte Webseite oder GTK-Programmoberfläche umsetzen, ist es sicher der bessere Weg diese Techniken direkt zu verwenden. ippfp hingegen eignet sich gut zur automatischen Generierung von Benutzeroberflächen durch Software, für rapid prototyping, für Eingabemasken von Datenbanken, Programmoberflächen usw. Wegen seiner Objektorientierung und sauberen Trennung von eigentlichem Programmcode und Ausgabetechnologie eignet es sich auch für grössere Projekte.

1.1.2. Funktionsweise

Die Bibliothek setzt die im view zusammengefassten Elemente in einem Rahmen zusammen. Für HTML bedeutet das, dass eine HTML-Seite erstellt wird, die die Elemente enthält, GTK und NCURSES haben ein entsprechendes Fenster. Die Daten der Elemente werden in Session-Variablen gespeichert. Um die Details der Formate wie HTML-Tags oder GTK-Klassen braucht man sich nicht zu kümmern. Zur Navigation innerhalb eines Programmes sollte das Button-Element verwendet werden, zur Anordnung die Elemente "grid" bzw. "table".

Elemente werden mittels create-Funktionen der Klasse ippfp erstellt, sie geben ein entsprechendes Objekt zurück. Zur Anzeige werden sie gebracht, indem sie zunächst in einem view gruppiert werden und dieses view dann der ippfp-Instanz zur Ausführung übergeben wird. Das ist ein flexibler Weg, da ein angelegtes Element in verschiedenen views verwendet werden kann, es wird also als Referenz eingebunden, nicht als Kopie. Die Vorteile liegen auf der Hand: befindet sich ein Element in einem Zustand, so ist dies unabängig vom aktuellen view und die Information steht überall zur Verfügung.

Beispiel: Erzeugen eines Textfeldes:

	    $myText = $ippfp->createText("default", 20, "my_text");
	    ...
	    echo $myText->getValue();
	    

Das Programm sollte mittels Funktionen gegliedert werden, wird beispielsweise ein Button benutzt, so ruft er die ihm mitgeteilte Funktion auf. In die Funktionen können views sinnvollerweise integriert werden.