Hola a todos,<div><br></div><div>Estoy desarrollando una extensión para gvSIG 1.11 y llevo un bueno rato intentando averiguar el porqué de este error. He mirado por Internet y también antiguos mensajes en las listas de correo pero no he encontrado nada al respecto, y para ser sincero, no sé a qué se debe.</div>
<div>Este es el error en tiempo de ejecución que me salta siempre:</div><div><br></div><div><p class="MsoNormal">Exception in thread "Thread-8"
java.lang.RuntimeException: No Event Dispatch Thr</p>
<p class="MsoNormal">ead</p>
<p class="MsoNormal"> at
com.iver.andami.ui.mdiFrame.MDIFrame.enableControls(MDIFrame.java:897</p>
<p class="MsoNormal">)</p>
<p class="MsoNormal"> at
com.iver.cit.gvsig.project.documents.table.gui.Table.updateSelection(</p>
<p class="MsoNormal">Table.java:340)</p>
<p class="MsoNormal"> at
com.iver.cit.gvsig.project.documents.table.gui.Table.refreshControls(</p>
<p class="MsoNormal">Table.java:257)</p>
<p class="MsoNormal"> at
com.iver.cit.gvsig.project.documents.table.gui.Table.setModel(Table.j</p>
<p class="MsoNormal">ava:293)</p>
<p class="MsoNormal"> at
com.iver.cit.gvsig.project.documents.table.ProjectTable.createWindow(</p>
<p class="MsoNormal">ProjectTable.java:969)</p>
<p class="MsoNormal"> at
model.spatial.GISOutputExporterCSV.closeFile(GISOutputExporterCSV.jav</p>
<p class="MsoNormal">a:337)</p>
<p class="MsoNormal"> at
model.core.Execution$ActualTask.<init>(Execution.java:243)</p>
<p class="MsoNormal"> at
model.core.Execution$2.construct(Execution.java:88)</p>
<p class="MsoNormal"> at
model.threadExec.SwingWorker$2.run(SwingWorker.java:60)</p>
<p class="MsoNormal"> at
java.lang.Thread.run(Unknown Source)</p></div><div><br></div><div> Mi código es el siguiente (en GISOutputExporterCSV.java):</div><div><br></div><div><div> ProjectExtension ext = (ProjectExtension) PluginServices.getExtension(ProjectExtension.class);<span class="Apple-tab-span" style="white-space:pre">        </span></div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>try {</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>LayerFactory.getDataSourceFactory().addFileDataSource("csv string", tableFile.getName(), tableFile.getAbsolutePath());</div>
<div><span class="Apple-tab-span" style="white-space:pre">                                </span></div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>DataSource dataSource = LayerFactory.getDataSourceFactory().createRandomDataSource(tableFile.getName(), DataSourceFactory.AUTOMATIC_OPENING);</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>dataSource.setDataSourceFactory(LayerFactory.getDataSourceFactory());</div><div><span class="Apple-tab-span" style="white-space:pre">                </span> SelectableDataSource sds = new SelectableDataSource(dataSource);</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span> EditableAdapter auxea=new EditableAdapter();</div><div><span class="Apple-tab-span" style="white-space:pre">                </span> auxea.setOriginalDataSource(sds);</div>
<div><span class="Apple-tab-span" style="white-space:pre">                                </span>String docName = "RIMER Results in: "+tableFile.getName();</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span> projectTable = ProjectFactory.createTable(docName, auxea);</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span> projectTable.setModel(auxea);</div><div><span class="Apple-tab-span" style="white-space:pre">                </span> ext.getProject().addDocument(projectTable);</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span> </div><div><span class="Apple-tab-span" style="white-space:pre">                </span> IWindow win = projectTable.createWindow();</div><div><span class="Apple-tab-span" style="white-space:pre">        </span> <span class="Apple-tab-span" style="white-space:pre">        </span>PluginServices.getMDIManager().addWindow(win);</div>
<div><br></div><div>Donde tableFile es del tipo java.io.File.</div><div><br></div><div>El caso es que la tabla CSV se añade correctamente al proyecto, y además puedo abrirla sin problema ninguno manualmente después de que este error salte, pero quisiera que la tabla apareciera automáticamente después de que se acabara la ejecución de mi extensión.</div>
<div><br></div><div>He intentado varias formas de evitar el "createWindow", que parece el origen del problema (Como crear un Table "t" y hacer un "t.setModel(projectTable)" pero entonces el error me salta en este método (que como podéis ver está también en el stack del error en tiempo de ejecución del "createWindow").</div>
<div><br></div><div>El caso es que no sé a qué se puede deber este error. Si al menos pudiera encontrar el motivo por el que en el método "enableControls" de la clase <span style="background-color:rgb(250,250,250);color:rgb(72,72,72);font-size:12px;white-space:pre-wrap">org.gvsig.andami.ui.mdiFrame</span> salta el runtime error en este bloque:</div>
<div><br></div><div><b><span style="font-size:11.0pt;line-height:115%;font-family:"Calibri","sans-serif"">public</span></b><span style="font-size:11.0pt;line-height:115%;font-family:"Calibri","sans-serif""> <b>void</b> enableControls() {</span></div>
<div><p class="MsoNormal"> <b>if</b> (!<b>SwingUtilities</b>.isEventDispatchThread())
{</p>
<p class="MsoNormal"><b> throw</b> <b>new</b> <b>RuntimeException</b>("No
Event Dispatch Thread");</p>
<p class="MsoNormal">}</p></div><div> </div><div><br></div><div>¿Alguien tiene alguna idea de porqué me !SwingUtilities.isEventDispatchThread() en este caso?</div><div><br></div><div>Cualquier opinión, consejo o ayuda es más que bienvenido, porque esto me tiene un poco atascado!</div>
<div><br></div><div>Muchísimas gracias de antemano a todos!</div><div><br></div><div>Un saludo</div><div><br></div><div>Alberto</div><div><br></div><div><br></div>-- <br><i><font face="arial, helvetica, sans-serif" color="#666666">-- <br>
</font></i><div><p style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px"><i><font face="arial, helvetica, sans-serif" color="#666666"><span style="background-image:initial;background-color:white">Mr Alberto Calzada<br>
Full-time PhD Candidate</span><u></u><u></u></font></i></p><p style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px"><i><font face="arial, helvetica, sans-serif" color="#666666"><span style="background-image:initial;background-color:white">Room 16J25</span> </font></i>
</p></div><div><p style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px"><i><font face="arial, helvetica, sans-serif" color="#666666"><span style="background-image:initial;background-color:white">School of Computing and Mathematics<br>
Faculty of Computing and Engineering</span></font></i></p></div><div><p style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px"><i><font face="arial, helvetica, sans-serif" color="#666666"><span style="background-image:initial;background-color:white">University of Ulster at Jordanstown Campus<br>
Northern Ireland, UK<br>Email: </span><span style="background-image:initial;background-color:white;background-repeat:initial initial"><a href="mailto:Calzada-A@email.ulster.ac.uk" target="_blank">Calzada-A@email.ulster.ac.uk</a></span></font></i></p>
<p style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px"><i><font face="arial, helvetica, sans-serif" color="#666666"><span style="background-image:initial;background-color:white">Tel: </span>
<span style="background-color:rgb(255,255,255)">+44 28 90361114</span> </font></i></p></div><br>
</div>