Package org.gvsig.utils.swing.threads
Class AbstractMonitorableTask
java.lang.Object
org.gvsig.utils.swing.threads.DefaultCancellableMonitorable
org.gvsig.utils.swing.threads.AbstractMonitorableTask
- All Implemented Interfaces:
org.gvsig.tools.task.Cancellable,CancellableMonitorable,ICancelableTask,ICancelMonitor,IMonitorableTask,ITask,Monitorable
public abstract class AbstractMonitorableTask
extends DefaultCancellableMonitorable
implements IMonitorableTask
- Author:
- fjp
Basada en el trabajo de A. Zabala.
Para usarla, extender de AbstractMonitorableTask e implementar el método run().
Ejemplo:
La tarea se lanza con:
PluginServices.cancelableBackgroundExecution(new WriterTask(layer, writer));
private class WriterTask extends AbstractMonitorableTask
{
FLyrVect lyrVect;
IWriter writer;
int rowCount;
public WriterTask(FLyrVect lyr, IWriter writer) throws DriverException, DriverIOException
{
this.lyrVect = lyr;
this.writer = writer;
setInitialStep(0);
setDeterminatedProcess(true);
setStatusMessage(PluginServices.getText(this, "exportando_features"));
setFinalStep(rowCount); // Importante: Fijarlo en el constructor, para que esté establecido antes del run()
}
public void run() throws Exception {
// Creamos la tabla.
writer.preProcess();
rowCount = va.getShapeCount();
for (int i = 0; i invalid input: '<' rowCount; i++) {
IGeometry geom = va.getShape(i);
// DO PROGRESS STUFF
reportStep();
setNote(PluginServices.getText(this, "exporting_") + i);
if (isCanceled())
break;
// END DO PROGRESS STUFF
if (geom != null) {
Value[] values = sds.getRow(i);
IFeature feat = new DefaultFeature(geom, values, "" + i);
DefaultRowEdited edRow = new DefaultRowEdited(feat,
DefaultRowEdited.STATUS_ADDED, i);
writer.process(edRow);
}
}
writer.postProcess();
JOptionPane.showMessageDialog(
(JComponent) PluginServices.getMDIManager().getActiveView()
, PluginServices.getText(this, "capa_exportada"), "Export",
JOptionPane.INFORMATION_MESSAGE);
}
}
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcancel()voidfinished()This method is executed from the Event Dispatch Thread when the background task finishes.intgetNote()booleanbooleanvoidvoidsetStatusMessage(String statusMessage) Methods inherited from class org.gvsig.utils.swing.threads.DefaultCancellableMonitorable
getCurrentStep, getFinalStep, getInitialStep, isCanceled, isDeterminatedProcess, reportStep, reset, setCanceled, setCurrentStep, setDeterminatedProcess, setFinalStep, setInitialStepMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.gvsig.utils.swing.threads.ICancelMonitor
isCanceledMethods inherited from interface org.gvsig.utils.swing.threads.IMonitorableTask
getCurrentStep, getInitialStep
-
Constructor Details
-
AbstractMonitorableTask
public AbstractMonitorableTask()
-
-
Method Details
-
getNote
- Specified by:
getNotein interfaceIMonitorableTask
-
setNote
-
getStatusMessage
- Specified by:
getStatusMessagein interfaceIMonitorableTask
-
setStatusMessage
-
getFinishStep
public int getFinishStep()- Specified by:
getFinishStepin interfaceIMonitorableTask
-
isDefined
public boolean isDefined()- Specified by:
isDefinedin interfaceIMonitorableTask
-
isFinished
public boolean isFinished()- Specified by:
isFinishedin interfaceICancelMonitor
-
cancel
public void cancel()- Specified by:
cancelin interfaceICancelableTask
-
finished
public void finished()Description copied from interface:IMonitorableTaskThis method is executed from the Event Dispatch Thread when the background task finishes. Any interaction with SWing objects should be placed here.- Specified by:
finishedin interfaceIMonitorableTask
-