# -*- coding: utf-8 -*- from velamentum.ui.dialoge.Dialog import Dialog from velamentum.android import * class EntscheidungsDialog(Dialog): """Die Klasse Dialog stellt einen einfachen Dialog mit zwei oder drei Tasten als Antwortmöglichkeiten zur Verfuegung. Der Text der Tasten ist frei wählbar. Attribute: titel (Zeichenkette): Der Titel des Dialogs. nachricht (Zeichenkette): Die Nachricht des Dialogs. ergebnis (Zahl): Die Nummer der ausgewählten Taste (1-3), 0 bei Abbruch oder Fehler. text1 (Zeichenkette): Der Text der ersten Taste. text2 (Zeichenkette): Der Text der zweiten Taste. text3 (Zeichenkette): Der Text der dritten Taste. dreiTasten (Wahrheitswert): Anzahl der anzuzeigenden Tasten. True für drei Tasten, False für zwei Tasten. """ def __init__(self, pTitel="Titel", pNachricht="Nachricht"): """Konstruktor. Initialisiert den EntscheidungsDialog. Parameter: [optional] pTitel (Zeichenkette): Der Titel des Dialogs. [optional] pNachricht (Zeichenkette): Die Nachricht des Dialogs. """ Dialog.__init__(self, pTitel, pNachricht) self.ergebnis = 0 self.text1 = "Ja" self.text2 = "Nein" self.text3 = "Vielleicht" self.dreiTasten = False def setzeText1(self, pText): """Auftrag. Ändert den Text der ersten Taste. Parameter: pText (Zeichenkette): Text der Taste. """ self.text1 = pText def setzeText2(self, pText): """Auftrag. Ändert den Text der zweiten Taste. Parameter: pText (Zeichenkette): Text der Taste. """ self.text2 = pText def setzeText3(self, pText): """Auftrag. Ändert den Text der dritten Taste. Parameter: pText (Zeichenkette): Text der Taste. """ self.text3 = pText def setzeDreiTasten(self, pDreiTasten): """Auftrag. Legt fest, ob zwei oder drei Tasten angezeigt werden sollen. Parameter: dreiTasten (Wahrheitswert): Anzahl der anzuzeigenden Tasten. True für drei Tasten, False für zwei Tasten. """ self.dreiTasten = pDreiTasten def nenneErgebnis(self): """Anfrage. Gibt die Nummer der gewählten Taste (1-3) oder 0 bei einem Abbruch oder Fehler aus. Parameter: --- keine --- Rückgabe (Zahl): Fehler oder Abbruch durch den Benutzer => 0, Taste gedrückt => Nummer der Taste (1-3). """ return self.ergebnis def nenneText1(self): """Anfrage. Gibt den Text der ersten Taste zurück. Parameter: --- keine --- Rückgabe (Zeichenkette): Der Text der ersten Taste. """ return self.text1 def nenneText2(self): """Anfrage. Gibt den Text der zweiten Taste zurück. Parameter: --- keine --- Rückgabe (Zeichenkette): Der Text der zweiten Taste. """ return self.text2 def nenneText3(self): """Anfrage. Gibt den Text der dritten Taste zurück. Parameter: --- keine --- Rückgabe (Zeichenkette): Der Text der dritten Taste. """ return self.text3 def nenneDreiTasten(self): """Anfrage. Gibt zurück ob zwei (False) oder drei (True) Tasten angezeigt werden sollen. Parameter: --- keine --- Rückgabe (Wahrheitswert): True, falls drei Tasten angezeigt werden sollen, False sonst. """ return self.dreiTasten def zeige(self): """Auftrag. Zeigt den EntscheidungsDialog an und speichert die Auswahl im Attribut 'ergebnis'. Parameter: --- keine --- """ androide.dialogCreateAlert(self.titel, self.nachricht) androide.dialogSetPositiveButtonText(self.text1) if self.dreiTasten: androide.dialogSetNegativeButtonText(self.text3) androide.dialogSetNeutralButtonText(self.text2) else: androide.dialogSetNegativeButtonText(self.text2) androide.dialogShow() tmpErg = androide.dialogGetResponse().result if 'which' in tmpErg: if tmpErg['which'] == 'positive': self.ergebnis=1 elif tmpErg['which'] == 'negative': if self.dreiTasten: self.ergebnis=3 else: self.ergebnis=2 elif tmpErg['which'] == 'neutral': self.ergebnis=2 else: self.ergebnis = 0