Hola Francisco, <br><br>Ahora mismo no tengo mucho tiempo para 
investigar este asunto, pero si mandas un parche lo probamos, y en caso 
de que vaya todo bien por supuesto que se puede integrar. Aunque no esté
 en la lista de proyectos asignados a mantenedores, supongo que soy el 
mantenedor de ese módulo también. La semana que viene estaré más libre 
para dedicarle un poco de tiempo a esto. <br>
<br>Un saludo. <br><br><div class="gmail_quote">El 6 de julio de 2011 11:18, Francisco Puga <span dir="ltr">&lt;<a href="mailto:fpuga@cartolab.es">fpuga@cartolab.es</a>&gt;</span> escribió:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hola,<br>
<br>
Estoy comprobando la compatibilidad del docking skin [1] desarrollado<br>
por la gente de gvsig-3d con algunas extensiones y me he encontrado un<br>
problema.<br>
<br>
Para crear el efecto de que un botón está pulsado usamos un código<br>
similar a este en algunas extensiones como la que lanza<br>
automáticamente navtable al terminar de digitalizar [2]<br>
<br>
if (!pushed) {<br>
    ((MDIFrame)PluginServices.getMainFrame()).setSelectedTool(&quot;auto-navtable&quot;,<br>
&quot;empty&quot;);<br>
} else {<br>
    ((MDIFrame)PluginServices.getMainFrame()).setSelectedTool(&quot;auto-navtable&quot;,<br>
&quot;auto-navtable&quot;);<br>
}<br>
<br>
Ese código lo tenemos en el postInitialize para la configuración<br>
inicial y con el skin normal de gvSIG funciona correctamente, pero<br>
cuando usamos el DockingSkin se lanza un NullPointerException en el<br>
setSelectedTool porque el campo selectedTool todavía no está<br>
inicializado.<br>
<br>
Me ha dado la impresión de que este campo se inicializa en<br>
NewSkin.FrameListener.internalFrameActivated.<br>
<br>
Después de todo este rollo mi pregunta viene siendo si se podría<br>
parchear DockingSkin para que inicializara selectedTool como se hace<br>
en el NewSkin o si en el setSelectedTool habría que añadir un código<br>
tipo<br>
<br>
if (wi.getSelectedTools()==null) {<br>
                // this is the first time this window is activated<br>
                wi.setSelectedTools(new<br>
HashMap(mainFrame.getInitialSelectedTools()));<br>
}<br>
<br>
u otra solución que no se nos haya ocurrido vamos.<br>
<br>
Yo optaría por la segunda solución en el caso de que más gente se haya<br>
visto con problemas parecidos al crear sus extensiones.<br>
<br>
[1] <a href="http://gvsig3d.blogspot.com/2010/01/docking-skin-video-tutorial.html" target="_blank">http://gvsig3d.blogspot.com/2010/01/docking-skin-video-tutorial.html</a><br>
[2] <a href="http://forge.osor.eu/plugins/scmsvn/viewcvs.php/trunk/extNTOpenCADPlugin/src/es/udc/cartolab/gvsig/navtable/AutoNavTableExtension.java?root=navtable&amp;view=markup" target="_blank">http://forge.osor.eu/plugins/scmsvn/viewcvs.php/trunk/extNTOpenCADPlugin/src/es/udc/cartolab/gvsig/navtable/AutoNavTableExtension.java?root=navtable&amp;view=markup</a><br>

<br>
Gracias.<br>
--<br>
Francisco Puga<br>
Grupo de Desarrollo<br>
Cartolab - Laboratorio de Ingeniería Cartográfica.<br>
<a href="http://www.cartolab.es" target="_blank">http://www.cartolab.es</a><br>
<br>
ETS Ingeniería de Caminos, Canales y Puertos<br>
Universidade da Coruña<br>
Campus de Elviña - 15071 A Coruña (España)<br>
(34)981167000 ext. 5493<br>
</blockquote></div><br><br clear="all"><br>-- <br>Jordi Torres Fabra<br><br>gvSIG 3D blog<br><a href="http://gvsig3d.blogspot.com">http://gvsig3d.blogspot.com</a><br>Instituto de Automática e Informática Industrial <br><a href="http://www.ai2.upv.es">http://www.ai2.upv.es</a><br>