Personalización de los botones selectores de rango de Stockchart de la biblioteca HighCharts en GWT (y Javascript en general)
Frecuentes
Visto 8,201 veces
6
Estoy usando la biblioteca HighCharts para GWT y tengo un problema.
Estoy intentando algo como esto: ejemplo de gráfico de cotizaciones. Lo único que me interesa para esta pregunta es el buttons
propiedad dentro rangeSelector
, en el que quiero personalizar los textos de los botones). En javascript el código es así:
rangeSelector: {
buttons: [{
type: 'day',
count: 3,
text: '3dias'
}, {
type: 'week',
count: 1,
text: '1w'
}, {
type: 'month',
count: 1,
text: '1m'
}, {
type: 'month',
count: 6,
text: '6MS'
}, {
type: 'year',
count: 1,
text: '1ano'
}, {
type: 'all',
text: 'All'
}],
selected: 3
}
Ahora estoy tratando de hacer lo mismo en GWT, usando el método setOption() en el gráfico. Pero nada parece funcionar.
Creo que estoy teniendo problemas porque el buttons
property necesita una serie de propiedades, y eso es lo que no puedo resolver.
Algo que probé:
chart.setOption("/rangeSelector/buttons",
new String[]{"{type: 'day', count: 1, text: '1dia'}", "{type: 'day', count: 1, text: '1dia'}"});`
Esto es lo mejor que se me ocurrió, que crea dos botones vacíos y sin acciones.
Cualquier ayuda sería apreciada. Muchas gracias.
ACTUALIZACIÓN: (13 de diciembre de 2012)
Después de dar la respuesta aceptada, necesitaba configurar el ancho del botón. Para eso solo usa:
buttonTheme: {
width: 80
}
algo como:
rangeSelector: {
selected: 2,
inputBoxStyle: {
top: '40px',
right: '10px'},
buttons: [{
type: 'week',
count: 1,
text: '1 semana'
}],
buttonTheme: {
width: 80
}
}
1 Respuestas
4
¿Podría intentar lo siguiente:
String rangeSelectorConfig = " {\n" +
" buttons: [{\n" +
" type: 'day',\n" +
" count: 3,\n" +
" text: '3dias'\n" +
" }, {\n" +
" type: 'week',\n" +
" count: 1,\n" +
" text: '1w'\n" +
" }]" +
" }" ;
JSONValue config = JSONParser.parseLenient(rangeSelectorConfig);
chart.setOption("/rangeSelector", config);
Chart
clase (con la ayuda de Configurable
) no analiza los objetos JSON por usted, por lo que los botones en su código se pasaron como cadenas literales a HightCharts JS nativo.
Respondido 29 ago 12, 16:08
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas javascript gwt highcharts highstock or haz tu propia pregunta.
¡Eso funciono! Muchísimas gracias. Sin embargo, solo una pregunta, ¿por qué pusiste el "\n" allí? ¿Algún motivo en especial? Lo pregunto porque funciona sin ellos. - Nuno Gonçalves
Es solo una sugerencia de formato de mi IDEA :), al copiar/pegar literales de cadena en código Java. No hay razones para agregarlos. - událmik
Ah, ok, pensé que podría ser cualquier tipo de patrón, o una buena práctica o algo así. Sólo una pregunta más, si sabes. ¿Es posible cambiar la longitud de los botones? Porque ahora, si agrego textos más largos, será complicado. - Nuno Gonçalves
No estoy seguro, en realidad. Pero, ¿ha intentado simplemente pasar el atributo 'ancho' por 'botón'? - událmik