/* Copyright (c) 2001 - 2007 TOPP - www.openplans.org. All rights reserved.
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.wps.sextante;
import org.geotools.text.Text;
import org.opengis.util.ProgressListener;
import es.unex.sextante.core.ITaskMonitor;
/**
* This class represents a task monitor for a SEXTANTE algorithm
* that updates a progress monitor used in a GeoTools process.
* @author volaya
*
*/
public class ProgressListenerTaskMonitor implements ITaskMonitor{
private ProgressListener m_ProgressListener;
public ProgressListenerTaskMonitor(ProgressListener progressListener) {
m_ProgressListener = progressListener;
}
public void close() {
if (m_ProgressListener != null){
m_ProgressListener.complete();
m_ProgressListener.dispose();
}
}
public boolean isCanceled() {
if (m_ProgressListener != null){
return m_ProgressListener.isCanceled();
}
else{
return false;
}
}
public void setProgress(int step) {
if (m_ProgressListener != null){
m_ProgressListener.progress((float)step);
}
}
public void setProgress(int step, int totalNumberOfSteps) {
if (m_ProgressListener != null){
m_ProgressListener.progress((float)(step/totalNumberOfSteps) * 100);
}
}
public void setProgressText(String text) {
if (m_ProgressListener != null){
m_ProgressListener.setTask(Text.text(text));
}
}
public void setDeterminate(boolean determinate) {
}
public void setProcessDescription(String description) {
m_ProgressListener.setDescription(description);
}
}