Operazioni di lunga durata

Il pacchetto org.eclipse.jface.operations definisce le interfacce per operazioni di lunga durata che devono fornire indicatori di avanzamento o la possibilità per l'utente di annullare l'operazione.

Esecuzioni e avanzamento

Il run-time centrale della piattaforma definisce un'interfaccia comune, IProgressMonitor, che viene utilizzata per riportare all'utente lo stato di avanzamento mentre sono in corso operazioni di lunga durata. Il client può fornire un controllo come parametro in molti metodi API della piattaforma quando è importante mostrare all'utente lo stato di avanzamento.

JFace definisce interfacce più specifiche per oggetti che implementano l'interfaccia utente con un controllo di avanzamento. 

IRunnableWithProgress è l'interfaccia per un'operazione che richiede molto tempo.  Il metodo run per questa interfaccia è dotato di un parametro IProgressMonitor che viene utilizzato per riportare lo stato di avanzamento e verificare l'annullamento da parte dell'utente.

IRunnableContext è l'interfaccia per le diverse posizioni all'interno dell'interfaccia utente in cui può essere riportato lo stato di avanzamento.  Le classi che implementano questa interfaccia potrebbero utilizzare tecniche diverse per indicare l'avanzamento e per l'esecuzione dell'operazione.  Ad esempio, ProgressMonitorDialog implementa questa interfaccia mostrando una finestra di dialogo di avanzamento.  IWorkbenchWindow implementa questa interfaccia visualizzando l'avanzamento sulla riga di stato della finestra del workbench.  WizardDialog implementa questa interfaccia per visualizzare le operazioni di lunga durata all'interno della riga di stato della procedura guidata.

Nota:  l'interfaccia utente del workbench fornisce supporto aggiuntivo per le operazioni in WorkspaceModifyOperation.  Questa classe semplifica l'implementazione delle operazioni di lunga durata che modificano lo spazio di lavoro.  Tale classe associa IRunnableWithProgress e IWorkspaceRunnable.  Per ulteriori dettagli, fare riferimento alla javadoc.

Operazioni modali

La classe ModalContext viene fornita per eseguire un'operazione modale dalla prospettiva del codice del client. Viene utilizzata all'interno delle diverse implementazioni di IRunnableContext.  Se il plug-in deve attendere il completamento di un'operazione che richiede molto tempo prima di poter continuare l'esecuzione, è possibile utilizzare ModalContext per eseguire l'operazione continuando a ricevere le risposte dell'interfaccia utente.

Quando si esegue un'operazione in un contesto modale, è possibile scegliere di deviare l'operazione in un thread diverso. Se fork è false, l'operazione verrà eseguita nel thread di richiamo.  Se fork è true,  l'operazione verrà eseguita in un nuovo thread, il thread di richiamo verrà bloccato e il ciclo di eventi dell'interfaccia utente verrà eseguito fino al termine dell'operazione.  

Per ulteriori informazioni sul ciclo di eventi dell'interfaccia utente, fare riferimento a Problemi di threading per client.

Copyright IBM Corporation e altri 2000, 2003.