velamentum/source/Android/ui/dialoge/EntscheidungsDialog.py

153 lines
4.8 KiB
Python
Raw Normal View History

# -*- 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