153 lines
4.8 KiB
Python
153 lines
4.8 KiB
Python
|
# -*- 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 tmpErg.has_key('which'):
|
||
|
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
|
||
|
|