|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objecttecgraf.javautils.gui.Task<R>
R - A classe do resultado da tarefa.public abstract class Task<R>
A classe Task modela uma tarefa possivelmente demorada executada
no cliente. Uma thread é criada para a execução da tarefa, para que eventos
de interface (como redesenho) possam ser atendidos. As interações de teclado
e mouse, contudo, são bloqueadas. Caso a duração da tarefa ultrapasse um
valor limite configurável, um diálogo modal contendo uma barra de progresso
será exibido. Este diálogo será fechado automaticamente ao final da tarefa.
Após um intervalo de valor configurável, um botão para fechamento do diálogo
é oferecido ao usuário. O texto do botão (Fechar ou Cancelar) é também
configurável, pois depende do tipo de tarefa, e do efeito de seu fechamento.
Essa classe permite aninhamento. Isto é, se dentro do método performTask uma
outra tarefa for criada e executada, o retorno visual para seu acompanhamento
é dado na mesma janela da tarefa anterior, evitando que múltiplas janelas de
acompanhamento sejam abertas.
É importante notar que tarefas aninhadas devem, obrigatoriamente, usar os
métodos beforeTaskUI e afterTaskUI para qualquer código que atue sobre a
interface gráfica.
| Field Summary | |
|---|---|
static int |
CANCEL_BUTTON
Tipo de texto do cancelamento. |
static int |
CLOSE_BUTTON
Tipo de texto de fechamento. |
static int |
DEFAULT_CANCEL_DELAY
Tempo padrão para cancelamento. |
protected Window |
parentWindow
Janela a partir da qual a tarefa é comandada. |
protected JProgressBar |
progressBar
Barra de progresso. |
protected JDialog |
progressDialog
Diálogo de progresso. |
protected String |
taskTitle
Título da tarefa. |
protected JTextPane |
textPane
Texto contendo mensagem, passo e tempos. |
| Constructor Summary | |
|---|---|
protected |
Task()
Cria uma task com bloqueio de janelas Dialog.ModalityType.APPLICATION_MODAL. |
protected |
Task(Dialog.ModalityType modality)
Cria uma task. |
| Method Summary | |
|---|---|
protected void |
afterTaskUI()
Caso alguma manipulação da interface seja necessária após da execução da tarefa (através de performTask), ela deve ser realizada neste método. |
protected void |
beforeTaskUI()
Caso alguma manipulação da interface seja necessária antes da execução da tarefa (através de performTask), ela deve ser realizada neste método. |
protected void |
cancelTask()
Cancela a tarefa, em consequência do acionamento do botão de cancelamento. |
boolean |
execute(Window window,
String title,
String description)
Sobrecarga de execute assumindo o tempo padrão para habilitar o botão de fechamento, o texto padrão (Fechar) para esse botão, que não é possível determinar a taxa de progresso, que não serão exibidos os passos e que não há imagem a ser exibida no diálogo de progresso. |
boolean |
execute(Window window,
String title,
String description,
boolean showProgress,
boolean showSteps)
Sobrecarga de execute assumindo o tempo padrão para habilitar o botão de fechamento, o texto padrão (Fechar) para esse botão e que não há imagem a ser exibida no diálogo de progresso. |
boolean |
execute(Window window,
String title,
String description,
ImageIcon icon)
Sobrecarga de execute assumindo o tempo padrão para habilitar o botão de fechamento, o texto padrão (Fechar) para esse botão, que não é possível determinar a taxa de progresso e que não serão exibidos os passos. |
boolean |
execute(Window window,
String title,
String description,
int cancelDelayInSecs,
int cancelButtonType)
Sobrecarga de execute assumindo que não é possível determinar a taxa de progresso, que não serão exibidos os passos e que não há imagem a ser exibida no diálogo de progresso. |
boolean |
execute(Window window,
String title,
String description,
int cancelDelayInSecs,
int cancelButtonType,
boolean showProgress,
boolean showSteps)
Sobrecarga de execute assumindo que não há imagem a ser exibida no diálogo de progresso. |
boolean |
execute(Window window,
String title,
String description,
int cancelDelayInSecs,
int cancelButtonType,
boolean showProgress,
boolean showSteps,
ImageIcon icon)
Inicia a execução da tarefa. |
void |
executeNonBlocking(Window window,
String title,
String description)
Inicia a execução da tarefa não bloqueante. |
protected String[] |
getAdditionalInfo()
|
protected int |
getCancelDelaySecs()
Consulta do tempo (em segundos) para aparecimento do botão de cancelamento após a task entrar. |
protected Window |
getDefaultParentWindow()
Obtém a janela padrão de referência. |
Exception |
getError()
Obtém o erro detetado durante a execução da tarefa. |
int |
getProgressDialogDelay()
Tempo de espera para exibição do diálogo |
R |
getResult()
Obtém o resultado da tarefa executada. |
boolean |
getStatus()
Obtém o status da tarefa executada. |
String |
getTaskMessage()
|
protected void |
handleError(Exception exception)
Tratamento de erros específico para cada tipo de tarefa. |
protected abstract void |
performTask()
Tarefa a ser executada. |
void |
run()
Execução da tarefa. |
void |
setProgressDialogDelay(int progressDialogDelay)
Configura tempo de espera para exibição do diálogo |
void |
setProgressDialogEnabled(boolean b)
Desabilita exibição do diálogo de progresso durante execução da tarefa. |
void |
setProgressStatus(int percentage)
Atualiza a barra de progresso. |
protected void |
setResult(R result)
Armazena o resultado da tarefa executada, para obtenção posterior. |
void |
setStepText(String step)
Atualiza o texto do passo corrente. |
void |
setUnknownStatus()
Atualiza a barra de progresso para desconhecido. |
boolean |
wasCancelled()
Verifica se a tarefa foi cancelada pelo usuário. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int DEFAULT_CANCEL_DELAY
public static final int CANCEL_BUTTON
public static final int CLOSE_BUTTON
protected Window parentWindow
protected JDialog progressDialog
protected JTextPane textPane
protected JProgressBar progressBar
protected String taskTitle
| Constructor Detail |
|---|
protected Task()
Dialog.ModalityType.APPLICATION_MODAL.
protected Task(Dialog.ModalityType modality)
modality - tipo de bloqueio das janelas| Method Detail |
|---|
protected void beforeTaskUI()
protected abstract void performTask()
throws Exception
Exception - quando a ocorrência de um erro (representado pela
exceção) impediu a realização da tarefaprotected void afterTaskUI()
public final void run()
run in interface Runnableprotected final void setResult(R result)
result - o resultado da tarefapublic final R getResult()
public final boolean getStatus()
public final Exception getError()
public boolean wasCancelled()
performTask
que execute uma tarefa composta de uma sequência de passos, ou subtarefas.
protected void cancelTask()
protected void handleError(Exception exception)
exception - - exceção que representa o erro durante execução da
tarefa.
public final void executeNonBlocking(Window window,
String title,
String description)
window - janela a partir da qual a tarefa foi comandadatitle - título do diálogo de progressodescription - mensagem no diálogo de progresso
public final boolean execute(Window window,
String title,
String description,
int cancelDelayInSecs,
int cancelButtonType,
boolean showProgress,
boolean showSteps,
ImageIcon icon)
true é retornado. O resultado da tarefa
pode ser obtido através da chamada ao método getResult. Se uma
exceção for lançada durante a execução da tarefa (incluindo seu
cancelamento), o valor false é retornado, e nenhum resultado
estará disponível. Antes deste retorno, o procedimento para tratamento
específico de erros (definido nas subclasses) é invocado. O diálogo de
progresso pode ser configurado de forma a exibir e atualizar os sucessivos
passos de uma tarefa. Também pode ser configurado para permitir a
atualização do percentual da tarefa já executado (quando o progresso puder
ser determinado e for habilitado).
window - janela a partir da qual a tarefa foi comandadatitle - título do diálogo de progressodescription - mensagem no diálogo de progressocancelDelayInSecs - intervalo em segundos para habilitar o botão de
fechamento (se 0, é imediato)cancelButtonType - determina o tipo do botão de cancelamento (CANCEL
ou CLOSE)showProgress - indica se a taxa de progresso pode ser determinadashowSteps - indica se exibe passo correnteicon - imagem associada
protected Window getDefaultParentWindow()
public void setStepText(String step)
step - identificação do passo correntepublic void setProgressStatus(int percentage)
percentage - percentual da tarefa já completadapublic void setUnknownStatus()
protected int getCancelDelaySecs()
public final boolean execute(Window window,
String title,
String description,
int cancelDelayInSecs,
int cancelButtonType,
boolean showProgress,
boolean showSteps)
window - janela a partir da qual a tarefa foi comandadatitle - título do diálogo de progressodescription - mensagem no diálogo de progressocancelDelayInSecs - intervalo em segundos para habilitar o botão de
fechamento (se 0, é imediato)cancelButtonType - determina o tipo do botão de cancelamento (CANCEL
ou CLOSE)showProgress - indica se a taxa de progresso pode ser determinadashowSteps - indica se exibe passo corrente
public final boolean execute(Window window,
String title,
String description)
window - janela a partir da qual a tarefa foi comandadatitle - título do diálogo de progressodescription - mensagem no diálogo de progresso
public final boolean execute(Window window,
String title,
String description,
ImageIcon icon)
window - janela a partir da qual a tarefa foi comandadatitle - título do diálogo de progressodescription - mensagem no diálogo de progressoicon - imagem associada
public final boolean execute(Window window,
String title,
String description,
boolean showProgress,
boolean showSteps)
window - janela a partir da qual a tarefa foi comandadatitle - título do diálogo de progressodescription - mensagem no diálogo de progressoshowProgress - indica se a taxa de progresso pode ser determinadashowSteps - indica se exibe passo corrente
public final boolean execute(Window window,
String title,
String description,
int cancelDelayInSecs,
int cancelButtonType)
window - janela a partir da qual a tarefa foi comandadatitle - título do diálogo de progressodescription - mensagem no diálogo de progressocancelDelayInSecs - intervalo em segundos para habilitar o botão de
fechamento (se 0, é imediato)cancelButtonType - determina o tipo do botão de cancelamento (CANCEL
ou CLOSE)
public final int getProgressDialogDelay()
public final void setProgressDialogDelay(int progressDialogDelay)
progressDialogDelay - tempo em segundospublic final void setProgressDialogEnabled(boolean b)
b - indicativo de progresso habilitado.public String getTaskMessage()
protected String[] getAdditionalInfo()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||