Una classe e una semplice interfaccia che consentono di controllare una Progress Bar senza dover stare a definire ogni volta timer e cose simili.
Cominciamo dall'interfaccia, che non ha bisogno di commenti. E' richiesto che il task fornisca lo stato iniziale, attuale e finale dell'operazione.
codice:/* * DeKTaskObserver.java * * Created on 5 aprile 2005, 22.17 */ package dek; /** * La classe che implementa <code>DeKTaskObserver</code> si * impegna a fornire informazioni sullo stato di avanzamento * di un task in esecuzione nel suo contesto. * In particolare, una chiamata a <code>taskStatus()</code> mentre * il task non e' ancora iniziato dovrebbe equivalere a * <code>taskStatus(Bounds.MIN)</code>, mentre una chiamata a * task completato dovrebbe equivalere a <code>taskStatus(Bounds.MAX)</code> * Cio' potrebbe essere difficile da ottenere, nel senso che lo * stato di task completato potrebbe coincidere con quello di * task (successivo) non ancora iniziato. * * @author DeK */ public interface DeKTaskObserver { /** * Costanti per indicare il valore iniziale e finale * dello stato del task. */ enum Bounds {MIN, MAX}; /** * Ritorna lo stato attuale del task sottoforma di un valorei intero. * Il valore dovra' essere compreso fra i due estremi * ritornati dall'altro metodo: * @see #taskStatus(Bounds) */ public int taskStatus(); /** * Ritorna il valore iniziale (MIN) o finale (MAX) * dello stato del task. * Dovra' essere: <code>taskStatus(Bounds.MIN) <= taskStatus(Bounds.MAX)</code> * Un'implementazione standard puo' essere ottenuta ritornando * 0 per il minimo e 100 per il massimo: * <code>return (b==Bounds.MIN)? 0 : 100;</code> */ public int taskStatus (Bounds b); }

Rispondi quotando
