Usando ProgressMonitorDialog no Eclipse 4 corretamente
Eu tenho um conjunto de APIs que fazem operações de arquivo, por exemplosaveToFile(CustomObject objectToSave);
Como uma operação de arquivo pode ser demorada, decidi que alguma indicação deveria ser mostrada ao usuário, e. Barra de progresso.
Eu li sobre umProgressMonitorDialog
e então eu tentei, mas não funciona exatamente como eu preciso (ou melhor, eu não sei como usá-lo corretamente).
Atualmente eu faço:
ProgressMonitorDialog progressDialog = new ProgressMonitorDialog(theShell);
try {
progressDialog.run(false, true, new IRunnableWithProgress() {
@Override
public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
monitor.beginTask("Saving your data", 100);
try {
Utils.saveToFile(objectToSave);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
monitor.done();
}
});
Este código mostra um diálogo de progresso muito rápido e termina, mas o problema é que em um PC mais lento isso iria empilhar atéUtils.saveToFile
retornou, enquanto não tenho idéia de como indicar o processo intermediário até que o salvamento seja concluído.
Achei umfio mencionando sobreIProgressMonitor.UNKNOWN
mas não diz sobre o que acontece emmonitor
durante operformRead(_fileName, monitor);
Como eu resolveria isso?