In this third and last part, we are going to create a small application which dynamically updates the results in the result list when the user types the search word(s) in a text box.
To do that we will re-use the table and the entity created in the part one, the java class MusicServices.java created in the part two and my search text box that I've created some time ago (with a small correction).
Main.fx |
package javafxjpa2searchtextbox; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.text.Text; import javafx.scene.text.Font; import customcomponent.SearchTextBox; import javafx.scene.control.ListView; import paddy.domain.Music; import paddy.service.MusicServices; /** * @author Patrick */ var listMusic; var seqMusic:Music[]; var musicServices:MusicServices = MusicServices{}; Stage { title: "Application title" width: 600 height: 250 scene: Scene { stylesheets : ["{__DIR__}resources/mac.css"] content: [ Text { font: Font { size: 16 } x: 10 y: 30 content: "Search DB" } SearchTextBox { translateX: 10 translateY: 40 onResetSearch: function () { println("reset !"); delete seqMusic; } onSearch: function (s: String) { println("Search of : {s}"); listMusic = musicServices.getArtisteNameBeginingBy(s); delete seqMusic; seqMusic = listMusic.toArray(seqMusic); } } ListView { layoutY: 75 width: 575 height: 100 items: bind seqMusic } ] } }
The key points:
- Delete the sequence on the onResetSearch event of the SearchTextBox component
delete seqMusic;
- Call the getArtisteNameBeginningBy method, delete the sequence and refill it on the onSearch event of the SearchTextBox component
listMusic = musicServices.getArtisteNameBeginningBy(s);
delete seqMusic;
seqMusic = listMusic.toArray(seqMusic);
Note: don’t forget to create (in NetBeans) a library containing the jar DerbyClient.jar and being called DerbyClient.
Aucun commentaire:
Enregistrer un commentaire