:-use_module(library(pce)).
/*
 new(Na,Grafikelement)   : Dem Grafikelement wird der Name Na zugeteilt.
 dialog('Text')		 : neues Windows-Fenster (mit Kopfzeile Text)
 message(D?frame,free)   : Schließen des Fensters D

 Grafikelemente:
 button('Text',Reaktion) : neuer Button mit Aufschrift Text
 text_item('Frage','Vorgabe') : neue Texteingabezeile
			 (Frage vor der Zeile, Vorgabe in der Zeile)

 message(@prolog,Prädikat,Parameter1,Parameter2,...) :
                          Aufruf des Prädikats mit den Parameterwerten
 Na?selection            : Eingabetext des Grafikelementes mit Namen Na
*/

anf:- new(D,dialog('Eingabe')),
      send(D,append,new(N,text_item('Name'))),
      send(D,append,new(S,text_item('Strasse'))),
      send(D,append,new(O,text_item('Ort'))),
      send(D,append,button('Neu',message(@prolog,aufn,
                                         N?selection,S?selection,O?selection,
                                         N,S,O))),
      send(D,append,button('Ausgabe',message(@prolog,ausg,N?selection,S,O))),
      send(D,append,button('Leer',message(@prolog,clr,N,S,O))),
      send(D,append,button('Ende',message(D?frame,free))),
      send(D,open).
/* anf Programmstart, Aufbau von Fenster:
   Button "Neu": Aufruf des Prädikats "aufn" (Datenausnahme) 
   Button "Ausgabe": Aufruf des Prädikats "ausg" (Datenausgabe)
   Button "Leer": Aufruf des Prädikats "clr" (Löschen der Eingaben)
   Button "Ende": Programmende 
*/


clr(N,S,O):-send(N,selection,''),send(S,selection,''),send(O,selection,'').
aufn(ND,SD,OD,N,S,O):-assert(dat(ND,SD,OD)),clr(N,S,O).
ausg(V,S,O):-clause(dat(V,SD,OD),true),send(S,selection,SD),send(O,selection,OD).


