[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