[Gvsig_desarrolladores] problema PointCADTool

Jose Manuel Díaz Bossini jmdiaz en andago.com
Jue Ene 24 13:26:52 CET 2008


Hola a todos de nuevo y en especial a Vicente , muchas gracias por tu 
respuesta, he puesto un punto de ruptura y no entra en el método end , 
de todas maneras lo he sobrecargado y tampoco entra en el mío :( . Lo 
que he detectado también, que no se si puede tener relación  o no , 
haciendo otras pruebas es que esto :
  if (CADExtension.getEditionManager().getActiveLayerEdited()
devuelve siempre null en mi extension sin embargo en la extension 
PointCADTool si que devuelve datos y por tanto activa la herramienta etc 
( yo quite esa linea de mi método isEnabled) . La verdad es que es 
rarísimo y me ha hecho plantearme si estoy haciendo las cosas bien , os 
voy a poner mi planteamiento y si pudieráis decirme si es erroneo os lo 
agradecería :

Yo tengo mi extensión propia fuera de la carpeta de las extensiones CAD 
, ahí simplemente he copiado la insertPointExtension y he remplazado 
todas las llamadas a PointCADTool por llamadas a mi herramienta 
DatosPorPunto, esta herramienta es prácticamente idéntica a PointCADTool 
de hecho hereda de ella , y solo he sobreescrito el método addPoint y el 
método addGeometry, este último con una llamada al super.addGeometry() 
para que pinte mi punto en la capa y después con la construcción de un 
formulario dinámico que es añadido en un panel .

Problemas que encuentro :

    1.- En mi herramienta DatosPorPunto tengo declarada otra variable 
private PointCADToolContext _fsm = null; que inicializo en el método 
init ( con lo cual en la jerarquía total tengo dos variables iguales , 
una nula y la otra inicializada.

    2.-Al parecer todo se hace de manera idéntica que en la extension 
insertPointExtension , la herramienta se declara bien  en la pila , y el 
mapControl del editionManager tiene como herramienta actual el 
cadToolAdapter que tiene en la pila mi herramienta , ahora cliko con el 
raton en la capa y el mapControl ya no tiene mi herramienta sino el 
cadToolAdapter que tiene en la pila la herramienta _seleccion.

Pues eso que ojalá podáis ayudarme pq empiezo a estar desperado con este 
tema , no se que puedo hacer porque no veo en que momento se cambian las 
herramientas solas !!!

Un saludo

Vicente Caballero Navarro escribió:
> Hola Jose Manuel.
>
> Pon un punto de ruptura en el método end() de la clase DefaultCADTool, 
> creo que estás ejecutando por algún motivo este método, comprueba si 
> es así y si necesitas de reimplementarlo o hacer uso de tu herramienta 
> de otra forma.
>
> Jose Manuel Díaz Bossini escribió:
>> Hola a todos de nuevo y ante todo perdón por ser tan pesado pero es 
>> que lo que me pasa no tiene ni pies ni cabeza , como os dije estoy 
>> haciendo una herramienta que extienda de pointCADTool , y una 
>> extension para usarla , en principio mi extension hace lo que tiene 
>> que hacer agrega la herramienta a la pila y hasta ahí todo perfecto , 
>> el problema está cuando pincho en el icono de mi herramienta y hago 
>> click en el icono de mi herramienta , en principio mi extension añade 
>> ahi la herramienta a la pila ( he debugeado y lo hace perfectamente ( 
>> limpia la pila y añade mi herramienta ) ) pero después cuando voy 
>> hago click en la capa vectorial el evento de CADToolAdapter :
>>
>> /**
>>     * @see 
>> java.awt.event.MouseListener#mousePressed(java.awt.event.MouseEvent)
>>     */
>>    public void mousePressed(MouseEvent e) throws BehaviorException {
>>        if (e.getButton() == MouseEvent.BUTTON1) {
>>            ViewPort vp = getMapControl().getMapContext().getViewPort();
>>            Point2D p;
>>
>>            if (mapAdjustedPoint != null) {
>>                p = mapAdjustedPoint;
>>            } else {
>>                p = vp.toMapPoint(adjustedPoint);
>>            }
>>            transition(new double[] { p.getX(), p.getY() }, e, ABSOLUTE);
>>        }
>>    }
>>
>> Hace una llamada a transition que a su vez trata de sacar la 
>> herramienta de la pila :
>>
>>    CADTool ct = (CADTool) cadToolStack.peek();
>>
>> Y cual es mi sorpresa cuando en la pila ya no esta mi herramienta 
>> sino que vuelve a tener la herramienta SelectionCADTool que al 
>> registrar la mía en teoría se había machacado .
>>
>> ¿Tenéis idea de por que puede estar pasando esto ?  ¿ Es que acaso al 
>> clickar sobre un punto de la capa se inicializan otras herramientas 
>> de la extension CAD que machacan a la mía ?
>>
>> Muchas gracias por la ayuda
>> _______________________________________________
>> gvSIG_desarrolladores mailing list
>> gvSIG_desarrolladores en runas.cap.gva.es
>> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
>>
>>
>>
> Un saludo.
>


Más información sobre la lista de distribución gvSIG_desarrolladores