-
Notifications
You must be signed in to change notification settings - Fork 0
Searchbar
Um die Searchbar zu testen, muss ein Transcript geöffnet sein und ein globaler Authorizer angelegt sein. Folgender Code kann beispielhaft im Workspace ausgeführt werden:
url := auth startAuthorization.
accessToken := auth accessToken.
Smalltalk at: #auth put: auth.
morph := SPOCSearchbar new openInWorld
In der Searchbar kann ein beliebiger Suchtext (Songname, Songtext, Artist, Album, ...) eingegeben werden und die Eingabe wird mit Enter bestätigt. Dann erscheint ein scrollable Panel mit den Suchergebnissen.
SPOCSearchbar
erbt von RectangleMorph
und ist der rechteckige Hintergrund des Texts. Dazu kommt ein Submorph SPOCTextInput
, der von TextMorph
erbt. Dieser Morph reagiert auf Keyboard Events, insbesondere wurde eine #crAction
hinzugefügt, also das ausgelöste Verhalten, wenn Enter gedrückt wird. Trifft dieses Event ein und ist dieser Morph gerade im Fokus des Cursors, dann wird searchTracks
auf der SPOCSearchbar
aufgerufen. Hier wird unter anderem der Input bereinigt (bspw. Leerzeichen gegen "+" ersetzt) und das Dictionary zur Umsetzung des Command Pattern angelegt. Nach dem API Call wird das empfangene JSON-Objekt decoded und in unsere Datenstrukturen SPOCTrack
, SPOCArtist
, SPOCALbum
und SPOCImage
eingefügt.
Die OrderedCollection
an SPOCTrack
wird dann der Methode displayResults
übergeben, die zuerst mit buildResultMorphFrom
ein Ergebnismorph generiert mit angezeigtem Bild, Titel und Artists. Dann wird ein pluggableScrollPaneSpec
generiert, der als Submorphs alle Ergebnismorphs enthält.
Momentan muss das Panel händisch per Halo gelöscht werden, das automatische Löschen sowie einige andere Features werden im nächsten Sprint ergänzt.