Page 1 of 1
Eliminar TOOLS añadidas previamente
Posted: Wed Mar 05, 2014 1:16 pm
by 17765433
Hola.
Tengo un grafico cualquiera al que añado algunas TOOLS, pero como las elimino? hay algun metodo REMOVE para tools?
Code: Select all
var anotation = new Tee.Annotation(vchart, "", 2, 2)
vchart.tools.add(anotation);
t.onchange = function (p) {
var text = "Eje x: " + vchart.axes.bottom.fromSize(p.x).toFixed(2) + " , Eje y: " + vchart.axes.left.fromSize(p.y).toFixed(2);
anotation.text = text;
};
vchart.draw();
Re: Eliminar TOOLS añadidas previamente
Posted: Thu Mar 06, 2014 2:45 pm
by yeray
Hola,
QuickTrend wrote:Tengo un grafico cualquiera al que añado algunas TOOLS, pero como las elimino? hay algun metodo REMOVE para tools?
vchart.tools.items es un array de tools, así que puedes utilizar los
métodos de los arrays.
Para borrar elementos de un array tenemos
shift(),
pop() y
splice().
Re: Eliminar TOOLS añadidas previamente
Posted: Fri Mar 07, 2014 8:49 am
by 17765433
Tienes razón Yerai, así se eliminan.
Entonces el problema es otro, en mi caso, es un gráfico de burbujas ( si... ya se..), al que añado 3 tools, los tooltip, cursor tool y annotation tool. La de tooltip siempre esta, pero las otras dos las uso con un check (uno solo para las dos) para mostrar y no mostrar. Cuando muestro perfecto, funciona todo, pero cuando la quito, se queda "pintado" el cursor tool, pero sin funcionalidad. No se que hago mal. La elimino con "vchart.tools.items.splice()" (con los parametros correctos). La tool deja de estar en el Array, pero sigue pintada.
Code: Select all
change: function (vthis, newValue, oldValue, eOpts) {
if (newValue === true) {
vchart = Ext.getCmp(id).xchart;
var t = new Tee.CursorTool(vchart);
t.format.stroke.size = 2;
t.format.stroke.fill = "#BB0000";
t.render = "layer";
t.followMouse = false;
vchart.tools.add(t);
// Display axis positions when moving the mouse:
anotation = new Tee.Annotation(vchart, "", 2, 2)
vchart.tools.add(anotation);
t.onchange = function (p) {
var text = "Eje x: " + vchart.axes.bottom.fromSize(p.x).toFixed(2) + " , Eje y: " + vchart.axes.left.fromSize(p.y).toFixed(2);
anotation.text = text;
};
vchart.draw();
}
else {
if (vchart.tools.items.length == 3) {
// la de tooltip no la elimino, de ahí los indices 2 y 1
vchart.tools.items.splice(2, 1);
vchart.tools.items.splice(1, 1);
vchart.draw();
}
}
}
Re: Eliminar TOOLS añadidas previamente
Posted: Mon Mar 10, 2014 11:06 am
by yeray
Hola,
He puesto tu código en una pagina simple para probarlo. Básicamente sólo he tenido que comentar la línea:
porque sino no veía pintarse la cursor.
El único problema que observo yo es que al quitar la annotation y la cursor, cuando mueves el raton sobre el chart, éste vuelve a coger el último estilo que tuvo al arrastrar la cursor por última vez.
El problema es la propiedad oldCursor, que sigue como cuando la tool estaba activa y funcionando. Si la restauro después de borrar las tools ya no veo ningún efecto extraño:
Aquí el ejemplo sencillo con la corrección implementada:
Re: Eliminar TOOLS añadidas previamente
Posted: Fri Mar 21, 2014 12:10 pm
by 17765433
Hola Yeray.
he seguido tus consejos y mira lo que que ocurre si dejo la propiedad render de la herramienta cursor comentada.
https://www.youtube.com/watch?v=7qvLXd0yGc4
un saludo y gracias por todas las respuestas
PD: tenéis previsión de sacar la serie FLECHAS... la necesito como el comer
la anotasteis y tal... pero no hay mas información)
Re: Eliminar TOOLS añadidas previamente
Posted: Fri Mar 21, 2014 12:19 pm
by 17765433
me olvide comentarlo, pero también puedes ver los problemas que tengo con las etiquetas del eje x.
Re: Eliminar TOOLS añadidas previamente
Posted: Fri Mar 21, 2014 2:58 pm
by yeray
Hola,
Esos problemas yo no los veo con la pagina simple que
adjunté más arriba.
Tu lo reproduces con ese ejemplo simple?
Si no lo reproduces con el ejemplo de arriba, debe de ser que haces alguna cosa diferente. En ese caso seria de ayuda que modificases el ejemplo/pagina sencillo de arriba para que se pueda reproducir el problema.
Gracias de antemano.