Revision 31735 trunk/extensions/extGraph/src/org/gvsig/graph/ODMatrixExtension.java
ODMatrixExtension.java | ||
---|---|---|
41 | 41 |
package org.gvsig.graph; |
42 | 42 |
|
43 | 43 |
import java.awt.Component; |
44 |
import java.io.BufferedWriter; |
|
45 | 44 |
import java.io.File; |
46 |
import java.io.IOException; |
|
47 | 45 |
import java.util.ArrayList; |
48 | 46 |
|
49 | 47 |
import javax.swing.JOptionPane; |
... | ... | |
55 | 53 |
import org.gvsig.graph.core.NetworkUtils; |
56 | 54 |
import org.gvsig.graph.gui.ODMatrixTask; |
57 | 55 |
import org.gvsig.graph.gui.OdMatrixControlPanel; |
58 |
import org.gvsig.graph.solvers.OneToManySolver; |
|
59 | 56 |
|
60 | 57 |
import com.iver.andami.PluginServices; |
61 |
import com.iver.andami.messages.NotificationManager; |
|
62 | 58 |
import com.iver.andami.plugins.Extension; |
63 | 59 |
import com.iver.andami.ui.mdiManager.IWindow; |
64 | 60 |
import com.iver.cit.gvsig.fmap.MapContext; |
... | ... | |
66 | 62 |
import com.iver.cit.gvsig.fmap.layers.FLayer; |
67 | 63 |
import com.iver.cit.gvsig.fmap.layers.FLyrVect; |
68 | 64 |
import com.iver.cit.gvsig.fmap.layers.SingleLayerIterator; |
69 |
import com.iver.cit.gvsig.project.documents.gui.IDocumentWindow; |
|
70 | 65 |
import com.iver.cit.gvsig.project.documents.view.gui.View; |
71 | 66 |
|
72 | 67 |
/** |
... | ... | |
148 | 143 |
|
149 | 144 |
File selectedFile = new File(ctrlDlg.getGeneratedFile()); |
150 | 145 |
|
146 |
|
|
151 | 147 |
selectedWriter = odMatrixWriters.get(ctrlDlg.getFileFormat()); |
152 | 148 |
|
153 | 149 |
ODMatrixTask task = new ODMatrixTask(net, originFlags, destinationFlags, |
... | ... | |
174 | 170 |
|
175 | 171 |
|
176 | 172 |
} |
177 |
|
|
178 |
/** |
|
179 |
* @deprecated Use ODMatrixTask instead (to allow cancel the dialog and see progress |
|
180 |
* @param net |
|
181 |
* @param originFlags |
|
182 |
* @param destinationFlags |
|
183 |
* @param generatedFile |
|
184 |
*/ |
|
185 |
private void calculateOdMatrix(Network net, GvFlag[] originFlags, GvFlag[] destinationFlags, File generatedFile) { |
|
186 |
try { |
|
187 |
selectedWriter.openFile(generatedFile); |
|
188 |
// output.setByteOrder(ByteOrder.LITTLE_ENDIAN); |
|
189 |
|
|
190 |
OneToManySolver solver = new OneToManySolver(); |
|
191 |
solver.setNetwork(net); |
|
192 |
solver.putDestinationsOnNetwork(destinationFlags); |
|
193 |
for (int i=0; i < originFlags.length; i++) |
|
194 |
{ |
|
195 |
|
|
196 |
solver.setSourceFlag(originFlags[i]); |
|
197 |
long t1 = System.currentTimeMillis(); |
|
198 |
|
|
199 |
solver.calculate(); |
|
200 |
long t2 = System.currentTimeMillis(); |
|
201 |
System.out.println("Punto " + i + " de " + originFlags.length + ". " + (t2-t1) + " msecs."); |
|
202 |
// Escribe el resultado |
|
203 |
// idNodo1 idNodo2 tiempo distancia |
|
204 |
|
|
205 |
for (int j=0; j < destinationFlags.length; j++) |
|
206 |
{ |
|
207 |
selectedWriter.saveDist(i, j, destinationFlags[j].getCost() |
|
208 |
, destinationFlags[j].getAccumulatedLength()); |
|
209 |
} |
|
210 |
long t3 = System.currentTimeMillis(); |
|
211 |
System.out.println("T. de escritura: " + (t3-t2) + " msecs."); |
|
212 |
|
|
213 |
} |
|
214 |
solver.removeDestinationsFromNetwork(destinationFlags); |
|
215 |
selectedWriter.closeFile(); |
|
216 |
net.removeFlags(); |
|
217 |
JOptionPane.showMessageDialog((Component) PluginServices.getMainFrame(), |
|
218 |
PluginServices.getText(this,"fichero_generado")); |
|
219 |
} catch (IOException e) { |
|
220 |
// TODO Auto-generated catch block |
|
221 |
e.printStackTrace(); |
|
222 |
} catch (GraphException e) { |
|
223 |
// TODO Auto-generated catch block |
|
224 |
e.printStackTrace(); |
|
225 |
} |
|
226 |
} |
|
227 |
|
|
228 | 173 |
|
229 | 174 |
public boolean isEnabled() { |
230 | 175 |
IWindow window = PluginServices.getMDIManager().getActiveWindow(); |
Also available in: Unified diff