Hallo Lukas
Ich stelle
meine Frage, weil ich langsam mit der Logik meines
Unterprojekts fertig bin und die Benutzerführung ein wenig verbessern
möchte. Bis jetzt siehts bei mir so aus, dass entweder Fehleingaben
kommentarlos abgefangen werden oder es halt einen unschönen
Stacktrace ausgibt, was beides nicht ideal ist.
Schöne Fehlermeldungen habe ich nur an zwei Stellen implementiert:
Wenn ein Benutzer nicht autorisiert ist eine gewisse Aktion
auszuführen oder wenn ein ungültiger Pfad eingegeben wurde; siehe dazu
die Klasse ErrorAction, ihre beiden Subklassen und deren Referenzen.
Vielleicht fällt dir ja noch eine flexiblere und besser
wiederverwendbare Lösung zu diesem Problem ein.
Nun, ein einfacher Ansatz zum Feedback ist bereits in der Action
PageEdit drin. Dort gibts die Instanzvariable exception, die einen Wert
erhält falls das Parsen der Benutzereingabe scheitert. Falls exception
nun nicht nil ist, wird sie mit PageEdit >> renderError in der
aktuellen Seite ausgegeben.
Dies könnte man in dem Sinne erweitern, dass in den Callbacks einer
Aktion die Eingabe überprüft wird; ist sie gültig wird die Aktion
ausgeführt, ist sie nicht gültig wird die Variable exception gesetzt
und die Seite neu geladen -> renderError zeigt dann die entsprechende
Fehlermeldung an.
Die Verantwortlichkeit zum Überprüfen der Benutzereingabe liegt bei
diesem Vorschlag bei der Action und nicht bei Structure - nicht
unbedingt der richtige Ort.
P.S. Jetzt
kannst du in der LinkCollection deine Safari - Bookmarks
importieren ;-)
Genial, dass muss ich gleich ausprobieren. Machst du es mit einem
Apple-Script? Ist der Source-Code dazu in deinem Package?
Nein, der Benutzer lädt einfach seine Bookmark-Datei rauf und diese
wird dann geparst. Bei Safari handelt es sich dabei um ein XML-File (im
Apple-eigenen und nicht unbedingt für parsen geeigneten .plist -
Dialekt). Noch ist das ganze ein wenig roh, wollte einfach mal
XML-Parsing lernen. Im Moment wird alles in die selbe Kategorie
geschmissen; falls die Links im Browser in einem Unterordner sind,
sollte sich das in der LinkCollection auch wiederspiegeln.
Ich habe aber vor, das Ganze zu abstrahieren und Plugins für Camino und
Mozilla zu schreiben. Wohl aber nicht mehr vor den Prüfungen ;-)
Beste Grüsse,
Mike