Revision 17610

View differences:

trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/clipping/ui/listener/ClippingPanelListener.java
623 623
				 										 (int) getClippingPanel().getHeightText()});
624 624

  
625 625
		clippingProcess.start();
626
		//IncrementableTask incrementableTask = new IncrementableTask(clippingProcess);
627
		//clippingProcess.setIncrementableTask(incrementableTask);
628
		//incrementableTask.showWindow();
629
		//incrementableTask.start();
630 626
	}
631 627

  
632 628
	/**
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/clipping/ClippingProcess.java
25 25

  
26 26
import org.apache.log4j.Logger;
27 27
import org.gvsig.fmap.raster.layers.FLyrRasterSE;
28
import org.gvsig.gui.beans.incrementabletask.IncrementableEvent;
29 28
import org.gvsig.raster.buffer.BufferFactory;
30 29
import org.gvsig.raster.buffer.BufferInterpolation;
31 30
import org.gvsig.raster.buffer.RasterBuffer;
......
95 94
	 */
96 95
	public void init() {
97 96
		fileName = getStringParam("filename");
98
		writerBufferServer = (taskParams.get("datawriter") != null) ? (WriterBufferServer) taskParams.get("datawriter") : null;
97
		writerBufferServer = (WriterBufferServer) getParam("datawriter");
99 98
		viewName = getStringParam("viewname");
100 99
		dValues = getIntArrayParam("pixelcoordinates");
101 100
		rasterSE = getLayerParam("layer");
102 101
		drawableBands = getIntArrayParam("drawablebands");
103 102
		oneLayerPerBand = getBooleanParam("onelayerperband");
104 103
		interpolationMethod = getIntParam("interpolationmethod");
105
		affineTransform = (taskParams.get("affinetransform") != null) ? (AffineTransform) taskParams.get("affinetransform") : null;
104
		affineTransform = (AffineTransform)getParam("affinetransform");
106 105
		if(getIntArrayParam("resolution") != null) {
107 106
			resolutionWidth = getIntArrayParam("resolution")[0];
108 107
			resolutionHeight = getIntArrayParam("resolution")[1];
109 108
		}
110
		params = getParam("driverparams") != null ? (Params)getParam("driverparams") : null;
109
		params = (Params)getParam("driverparams");
111 110
	}
112 111

  
113 112
	/**
......
313 312
		}
314 313
	}
315 314

  
316
	public void actionResumed(IncrementableEvent e) {}
317
	public void actionSuspended(IncrementableEvent e) {}
318

  
319 315
	/*
320 316
	 * (non-Javadoc)
321 317
	 * @see org.gvsig.gui.beans.incrementabletask.IIncrementable#getPercent()
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/RasterProcess.java
47 47
	private String               log                 = "";
48 48
	private String               lastLine            = "";
49 49
	private long                 time                = 0;
50
	private boolean              progressActive      = true;
50 51
	
51 52
	/**
52 53
	 * Arranca el proceso de recorte de un layer
53 54
	 */
54 55
	public void start() {
55
		incrementableTask = new IncrementableTask(this);
56
		incrementableTask.showWindow();
57
		incrementableTask.start();
56
		if(progressActive) {
57
			incrementableTask = new IncrementableTask(this);
58
			incrementableTask.showWindow();
59
			incrementableTask.start();
60
		}
58 61
		
59 62
		blinker = new Thread(this);
60 63
		blinker.start();
......
100 103
			Thread.currentThread().interrupt();
101 104
		} finally {
102 105
			RasterTaskQueue.remove(rasterTask);
103
			if (incrementableTask != null)
104
				incrementableTask.processFinalize();
106
			if(progressActive) {
107
				if (incrementableTask != null)
108
					incrementableTask.processFinalize();
109
			}
105 110
			time = new java.util.Date().getTime() - t1;
106 111
		}
107 112
	}
108 113
	
109 114
	/**
115
	 * Activa o desactiva el interfaz de progreso en el lanzamiento de la tarea como un thread.
116
	 * @param active true para activarlo o false para desactivarlo
117
	 */
118
	public void setProgressActive(boolean active){
119
		this.progressActive = active;
120
	}
121
	
122
	/**
110 123
	 * Obtiene el tiempo que tard? en ejecutarse la tarea 
111 124
	 * la ?ltima vez que se proces?
112 125
	 */
......
162 175
		rasterTask.setEvent(new CancelEvent(this));
163 176
	}
164 177
	
178
	/*
179
	 * (non-Javadoc)
180
	 * @see org.gvsig.gui.beans.incrementabletask.IncrementableListener#actionResumed(org.gvsig.gui.beans.incrementabletask.IncrementableEvent)
181
	 */
182
	public void actionResumed(IncrementableEvent e) {
183
		
184
	}
185
	
186
	/*
187
	 * (non-Javadoc)
188
	 * @see org.gvsig.gui.beans.incrementabletask.IncrementableListener#actionSuspended(org.gvsig.gui.beans.incrementabletask.IncrementableEvent)
189
	 */
190
	public void actionSuspended(IncrementableEvent e) {
191
		
192
	}
193
	
165 194
 	/**
166 195
	 * Establece el <code>IncrementableTask</code>
167 196
	 * @param value
......
278 307
	public FLyrRasterSE getLayerParam(String name) {
279 308
		Object value = taskParams.get(name);
280 309
		return (value != null && value instanceof FLyrRasterSE) ? ((FLyrRasterSE)value) : null;
281
	}
282
	
310
	}	
283 311
}
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/overviews/OverviewsTocMenuEntry.java
24 24
import org.gvsig.fmap.raster.layers.FLyrRasterSE;
25 25
import org.gvsig.fmap.raster.layers.ILayerState;
26 26
import org.gvsig.fmap.raster.layers.IRasterLayerActions;
27
import org.gvsig.gui.beans.incrementabletask.IncrementableTask;
28 27
import org.gvsig.raster.dataset.BandAccessException;
29 28
import org.gvsig.raster.dataset.io.RasterDriverException;
30 29
import org.gvsig.raster.util.RasterToolsUtil;
30
import org.gvsig.rastertools.RasterProcess;
31 31

  
32 32
import com.iver.andami.PluginServices;
33 33
import com.iver.cit.gvsig.fmap.layers.FLayer;
......
124 124
					RasterToolsUtil.debug("Error en getOverViewCount", null, e);
125 125
				}
126 126
				
127
				OverviewsProcess process = new OverviewsProcess((FLyrRasterSE)lyr);
128
				IncrementableTask incrementableTask = new IncrementableTask(process);
129
				process.setIncrementableTask(incrementableTask);
130
				incrementableTask.showWindow();
127
				RasterProcess process = new OverviewsProcess();
128
				process.addParam("layer", (FLyrRasterSE)lyr);
131 129
				process.start();
132
				incrementableTask.start();
133 130
			}
134 131
		}
135 132
	}
trunk/extensions/extRasterTools-SE/src/org/gvsig/rastertools/overviews/OverviewsProcess.java
19 19
package org.gvsig.rastertools.overviews;
20 20

  
21 21
import org.apache.log4j.Logger;
22
import org.gvsig.fmap.raster.layers.FLyrRasterSE;
23
import org.gvsig.fmap.raster.util.Configuration;
24
import org.gvsig.gui.beans.incrementabletask.IIncrementable;
25
import org.gvsig.gui.beans.incrementabletask.IncrementableEvent;
26
import org.gvsig.gui.beans.incrementabletask.IncrementableListener;
27
import org.gvsig.gui.beans.incrementabletask.IncrementableTask;
28
import org.gvsig.raster.process.CancelEvent;
29
import org.gvsig.raster.process.RasterTask;
30
import org.gvsig.raster.process.RasterTaskQueue;
31
import org.gvsig.rastertools.IProcessActions;
32

  
33 22
import org.gvsig.addo.BuildingOverviewsException;
34 23
import org.gvsig.addo.IOverviewIncrement;
35 24
import org.gvsig.addo.Jaddo;
36 25
import org.gvsig.addo.WritingException;
26
import org.gvsig.fmap.raster.layers.FLyrRasterSE;
27
import org.gvsig.fmap.raster.util.Configuration;
28
import org.gvsig.rastertools.RasterProcess;
37 29

  
38 30
import com.iver.andami.PluginServices;
39 31

  
......
43 35
 * 10/12/2007
44 36
 * @author Nacho Brodin nachobrodin@gmail.com
45 37
 */
46
public class OverviewsProcess implements IIncrementable, IncrementableListener, Runnable, IOverviewIncrement {
47

  
48
	private RasterTask         rasterTask          = new RasterTask(this);
49
	private IProcessActions    externalActions     = null;
38
public class OverviewsProcess extends RasterProcess implements IOverviewIncrement {
50 39
	private FLyrRasterSE       rasterSE            = null;
51
	private volatile Thread    blinker             = null;
52
	private IncrementableTask  incrementableTask   = null;
53
	private String             log                 = "";
54
	private String             lastLine            = "";
55 40
	private int                value = 0;
56

  
57 41
	private int                resamplingAlg       = Jaddo.AVERAGE;
58 42
	private int[]              overviews           = new int[]{2, 4, 8, 16};
59 43

  
60
	/**
61
	 * Crea un <code>ClippingProcess</code> para generar un recorte
62
	 * @param dValues
63
	 * @param fileName
64
	 * @param writerBufferServer
65
	 * @param rasterMultiDataset
66
	 * @param extent
67
	 * @param drawableBands
68
	 * @param oneLayerPerBand
44
	/*
45
	 * (non-Javadoc)
46
	 * @see org.gvsig.rastertools.RasterProcess#init()
69 47
	 */
70
	public OverviewsProcess(FLyrRasterSE rasterSE) {
71
		this.rasterSE = (FLyrRasterSE)rasterSE;
72

  
48
	public void init() {
49
		rasterSE = getLayerParam("layer");
50
		
73 51
		int overviewsRate = 2;
74 52
		int nOverviews = 4;
75 53
		overviewsRate = Configuration.getValue("overviews_rate", new Integer(overviewsRate)).intValue();
......
82 60
		overviews = new int[nOverviews];
83 61
		for (int i = 0; i < nOverviews; i++)
84 62
			overviews[i] = overviewsRate * (i + 1);
85

  
86 63
	}
87 64

  
88 65
	/**
89
	 * Arranca el proceso de recorte de un layer
90
	 */
91
	public void start() {
92
		blinker = new Thread(this);
93
		blinker.start();
94
	}
95

  
96
	/**
97 66
	 * M?todo donde se ejecutar? el Thread, aqu? se generaran las
98 67
	 * overviews
99 68
	 */
100
	public void run() {
101
		RasterTaskQueue.register(rasterTask);
102

  
103
		lastLine = PluginServices.getText(this, "overviews_generating");
69
	public void process() {
104 70
		insertLineLog(PluginServices.getText(this, "overviews_generating"));
105 71

  
106 72
		Jaddo build = new Jaddo();
......
114 80
			Logger.getLogger(this.getClass().getName()).debug("No se han podido generar las overviews", e);
115 81
		} catch (WritingException e) {
116 82
			Logger.getLogger(this.getClass().getName()).debug("No se han podido generar las overviews", e);
117
		} finally {
118
			RasterTaskQueue.remove(rasterTask);
119
			if (incrementableTask != null)
120
				incrementableTask.processFinalize();
121 83
		}
122 84
	}
123 85

  
124
 	/**
125
	 * Establece el <code>IncrementableTask</code>
126
	 * @param value
127
	 */
128
	public void setIncrementableTask(IncrementableTask value) {
129
		incrementableTask = value;
130
		incrementableTask.addIncrementableListener(this);
131
	}
132

  
133 86
	/*
134 87
	 * (non-Javadoc)
135
	 * @see org.gvsig.gui.beans.incrementabletask.IncrementableListener#actionCanceled(org.gvsig.gui.beans.incrementabletask.IncrementableEvent)
136
	 */
137
	public void actionCanceled(IncrementableEvent e) {
138
		rasterTask.setEvent(new CancelEvent(this));
139
	}
140

  
141
	/**
142
	 * Obtiene el objeto para ejecutar acciones externar.
143
	 * @param IProcessActions
144
	 */
145
	public IProcessActions getActions() {
146
		return externalActions;
147
	}
148

  
149
	/**
150
	 * Asigna el objeto para ejecutar acciones externar.
151
	 * @param IProcessActions
152
	 */
153
	public void setActions(IProcessActions actions) {
154
		this.externalActions = actions;
155
	}
156

  
157
	private void insertLineLog(String line) {
158
		log = log + line + "\n";
159
	}
160

  
161
	public void actionResumed(IncrementableEvent e) {}
162
	public void actionSuspended(IncrementableEvent e) {}
163

  
164
	/*
165
	 * (non-Javadoc)
166
	 * @see org.gvsig.gui.beans.incrementabletask.IIncrementable#getLabel()
167
	 */
168
	public String getLabel() {
169
		return lastLine;
170
	}
171

  
172
	/*
173
	 * (non-Javadoc)
174
	 * @see org.gvsig.gui.beans.incrementabletask.IIncrementable#getLog()
175
	 */
176
	public String getLog() {
177
		return log;
178
	}
179

  
180
	/*
181
	 * (non-Javadoc)
182 88
	 * @see org.gvsig.gui.beans.incrementabletask.IIncrementable#getPercent()
183 89
	 */
184 90
	public int getPercent() {

Also available in: Unified diff