468x60

giovedì 28 gennaio 2010

Refresh task asincrono in Netbeans Java Desktop Applications

Vediamo come creare un Task Asincrono per aggiornare una tabella di un'applicazione Java Desktop Database Application, senza avere problemi di binding, mediante Netbeans.

Utilizzare il codice seguente ed assegnare l'Action al pulsante "Refresh":

@Action
public Task refresh() {
return new RefreshTask(MyApp.getApplication());
}

private class RefreshTask extends Task {

RefreshTask(org.jdesktop.application.Application app) {
super(app);
}

@SuppressWarnings("unchecked")
@Override
protected Void doInBackground() {
setProgress(0, 0, 4);
setMessage("Rolling back the current changes...");
setProgress(1, 0, 4);
entityManager.getTransaction().rollback();
setProgress(2, 0, 4);

setMessage("Starting a new transaction...");
entityManager.getTransaction().begin();
setProgress(3, 0, 4);

setMessage("Fetching new data...");
java.util.Collection data = query.getResultList();
for (Object entity : data) {
entityManager.refresh(entity);
}
setProgress(4, 0, 4);

*masterTable.setVisible(false);

list.clear();
list.addAll(data);

return null;
}

@Override
protected void finished() {
setMessage("Done.");
setSaveNeeded(false);

masterTable.setVisible(true);
masterTable.revalidate();
masterTable.repaint();
}
}

Nessun commento:

Posta un commento

468x60

Cerca su Google

Cerca nel Blog con Google