This package contains all Vaadin web components (free and commercial).
See https://github.com/vaadin/web-components for more details.
Framework 8 version of Vaadin Charts
License: Other
This package contains all Vaadin web components (free and commercial).
See https://github.com/vaadin/web-components for more details.
Originally by @zch
Credits
has no style
property, even though this is supported by Highcharts
Imported from https://dev.vaadin.com/ issue #10622
Originally by @mstahv
Vaadin Charts don't currently support legendItemClick which is supported by the underlaying Highcharts library.
Imported from https://dev.vaadin.com/ issue #10755
Originally by @denis-anisimov
There is Exporting class which could be used in the
Configuration.setExporting() method.
But its unclear how exporting is triggered.
Javadoc for Exporting.setType() mentions "chart.exportChart()" but
I cannot find such method.
So it seems exporting is just missed.
Imported from https://dev.vaadin.com/ issue #10687
Originally by @zch
Credits.setPosition()
takes a StylePosition
that does not contain valid data for this parameter (for Highcharts).
The documentation states that “Supported properties are align, verticalAlign, x and y.”, while StylePosition
is an enum with values ABSOLUTE
and RELATIVE
…
Imported from https://dev.vaadin.com/ issue #10621
Originally by @mstahv
There is method setPlotOptions() in Configuration which sets the PlotOptions for all series in the chart (so it works globally).
It allows to avoid invocation setPlotOptions() method for each series.
With some options Series.setPlotOptions() has no effect once Configuration.setPlotOptions() has been invoked.
As a result it is impossible to override global PlotOptions setting for specific series. To have this option one has to use only Series.setPlotOptions().
Issues at least with removing global Stacking for one series (BAR or COLUMN chart type)
Originally by @denis-anisimov
com.vaadin.addon.charts.model.States class is just a bean container
for single bean State.
So State bean could be used instead of States without loss of
functionality.
States class is just unnecessary wrapper.
Imported from https://dev.vaadin.com/ issue #10662
Originally by @zch
Background
contains lots of weird properties with no explanation. For example, what is the inner radius of a background?
These should be validated and documented so that even I can understand what they are.
Imported from https://dev.vaadin.com/ issue #10620
Originally by @denis-anisimov
The issue is similar to ticket #10662 .
MarkerStates is just a wrapper for single State bean class.
Class State could be used directly instead of wrapping it with MarkerStates.
Imported from https://dev.vaadin.com/ issue #10667
Originally by @denis-anisimov
setFormatter() method has poor Javadoc description :
Sets the JavaScript function to format the label.
Description should contain mention of available JS object value (like this.value).
See f.e. Labels.setFormatter() method description :
Sets a JavaScript function to format the label. The value is given by this.value. Additional properties for this are axis, chart, isFirst and isLast. Defaults to: function(){ return this.value; } If the function is a simple one liner, it can be given in a shortened form, e.g.: this.value
Imported from https://dev.vaadin.com/ issue #10701
Originally by @zch
Bar charts put the y axis (value axis) horizontally by default and I'm not intelligent enough to figure out how to make it vertical by looking at JavaDoc.
This needs to be clearly documented.
Imported from https://dev.vaadin.com/ issue #10677
Originally by @denis-anisimov
I'm not able to get working setCursor() for non-stacking BAR, COLUMN, PIE.
I've used
options.setCursor(Cursor.POINTER);
to show pointer over series.
The mouse pointer has the same shape over series or out of series.
The only way to get it working is Stacking.NORMAL option.
Mouse pointer changes over stacking parts of bars.
Also options.setAllowPointSelect() doesn't have any effect. It could relates to the issue with cursor.
Again : it works with stacking.
The API issue: Cursor is enum with only two values: NONE and POINTER. So boolean type could be used for an argument in the method setCursor().
Imported from https://dev.vaadin.com/ issue #10679
Originally by @denis-anisimov
I have a polar chart with DataSeries.
Y axis has a correct scale with all ticks starting from 0.
But corresponding tick's circles starts somewhere from the middle of
the Y axis. (See attached picture).
I'm not sure whether this is bug or by design.
But it behaves differently if I set polygon instead of circle as
"equiscalar line":
yAxis.setGridLineInterpolation("polygon");
(that's the only change in the code)
See attached picture.
Imported from https://dev.vaadin.com/ issue #10660
Originally by @denis-anisimov
Demo App at "http://demo.vaadin.com/charts-demo" is out of date:
source code contains references to non-existing classes.
F.e. SimpleChartWithContainerSeries.createContainer() method
referes to AbstractContainerSeries and ContainerSeries types.
Current source code refers to ContainerDataSeries.
As a result there is a public demo is desynchronized with current API.
Imported from https://dev.vaadin.com/ issue #10661
Originally by @mstahv
Highchart supports this, but Vaadin Chart currently only supports "global" setting. See #10642.
Imported from https://dev.vaadin.com/ issue #10680
Originally by @zch
PlotOptionsBar inherits setLineColor
from AbstractPlotOptions. It is kind of confusing that a bar chart has a line color option.
Imported from https://dev.vaadin.com/ issue #10676
Originally by @zch
Dial
is missing several options and feels like it is only half-way there. Missing options include backgroundColor, borderColor, borderWidth, rearLength and topWidth.
Imported from https://dev.vaadin.com/ issue #10623
Originally by @denis-anisimov
The purpose of the method setSelected() is unclear.
It mentions some showCheckbox unknown reference.
Imported from https://dev.vaadin.com/ issue #10683
Originally by @mstahv
Highcharts 3 is not yet released but under development. We wish to support new chart types from the beginning.
Imported from https://dev.vaadin.com/ issue #10193
Originally by @zch
The JavaDoc stated
The crosshairs can be defined as a boolean, an array of booleans or an object.
Boolean If the crosshairs option is true, a single crosshair relating to
the x axis will be shown. Array of booleans In an array of booleans, the
first value turns on the x axis crosshair and the second value to the y
axis crosshair. Use [true, true] to show complete crosshairs. Array of
objects In an array of objects, the first value applies to the x axis
crosshair and the second value to the y axis crosshair. For each
dimension, a width, color, dashStyle and zIndex can be given.
I removed the parts mentioning arrays and objects to make the JavaDoc conform to the code.
Originally by @zch
Do we really need two copies? At least make one of them extend the other to remove duplicate code if both are needed.
LegendStyle
vs Legend
might be a "good" example if LegendStyle
weren't empty.
Originally by @zch
setGridLineInterpolation(String)
is extremely unclear and I cannot find any documentation for it from Highcharts either.
Imported from https://dev.vaadin.com/ issue #10643
Originally by @denis-anisimov
There are methods addPlotOptions() and setPlotOptions() in Configuration class.
There are couple of issues with these methods:
Imported from https://dev.vaadin.com/ issue #10645
Originally by @sapeka
Allow developer to configure used dashStyle for type of series using a graph, like line, spline, area and scatter (in case it has a lineWidth).
The value for the dashStyle include:
Solid
ShortDash
ShortDot
ShortDashDot
ShortDashDotDot
Dot
Dash
LongDash
DashDot
LongDashDot
LongDashDotDot
Originally by @denis-anisimov
Chart is Vaadin component has two constructors: no-argument and with ChartType parameter.
One argument constructor provokes to think about Chart as a "drawer" for preselected chart types. But this is not a true.
It is possible to draw series in their own chart type via PlotOptions.
There is a method AbstractSeries.setPlotOptions(AbstractPlotOptions )
which allows to draw each series with specified PlotOptions.
AbstractPlotOptions has 1:1 relationship with ChartType via
getChartType() method. Such relationship (along with possibility to draw series with different chart type simultaneously) is hidden until one wants to combine different chart types inside one component.
I would suggest to force series creation with specified PlotOptions
class type to force user knowledge about PlotOptions. The exact AbstractPlotOptions type would play a role of ChartType.
So the design could look like :
Imported from https://dev.vaadin.com/ issue #10649
Originally by @denis-anisimov
Method Axis.setLinkedTo has an argument with type Number.
The context of the number is unclear.
As I understand the argument's value is an index in the array of axis
attached to Configuration.
But Axis is not attached to a configuration from the very beginning.
So there is no indexing context for Axis. It has only sense when
Axis is added to the configuration along with referenced Axis.
Method's argument type could be changed to Axis. But there is still
no configuration context: Two Axes could be attached to different configurations. So there is no sense in method invocation.
It seems Axis is wrong place for the method. The method's context here is Configuration class. So it seems it is most suitable class
for the method.
Imported from https://dev.vaadin.com/ issue #10654
Originally by @zch
Axis.removePlotBand sounds like functionality that might be useful, e.g. allowing the user to turn on/off plot bands for different series.
Imported from https://dev.vaadin.com/ issue #10639
Originally by @zch
Current versions of Highcharts allows the legend's drop shadow to be configured in more ways than the simple boolean on/off provided by vaadin charts.
"The shadow can be an object configuration containing color, offsetX, offsetY, opacity and width."
Imported from https://dev.vaadin.com/ issue #10628
Originally by @zch
All other enumerations are represented as Enums, but Axis.setTickPosition
and Axis.setMinorTickPosition
both take a string that is either “inside”
or “outside”
. This should also be an Enum in order to be consistent with the rest of the API.
Imported from https://dev.vaadin.com/ issue #10619
Originally by @zch
See RangeSeries.setyAxis(Number)
for an example. All other Series classes have the same method.
The method should only accept Integers, as the parameter is an index into a finite array, but currently any Number is accepted, which is a bit confusing although will probably work in practice.
There are many methods like this.
Imported from https://dev.vaadin.com/ issue #10641
Originally by @johndevs
Currently the Timeline calculates the amount of points to display using the algorithm D = amount of points in container / pixel width and then simply iterates over the container and picks each Dth point. This unfortunatly means that if the graph has peaks between the Dth point they won't be visible in the resulting graph.
Another, and possible better, approach would be to use the Ramer–Douglas–Peucker-algorithm to generate the final graph.
Imported from https://dev.vaadin.com/ issue #9116
Originally by @zch
Highcharts supports lots of more properties than the ones present in the Lang
class.
See http://api.highcharts.com/highcharts#lang
Imported from https://dev.vaadin.com/ issue #10627
Originally by @zch
Different configuration classes handle properties that can be specified as either a Number or a String differently. Some classes define two different setters (see Axis.setMinorTickInterval(Number)
and Axis.setMinorTickInterval(String)
) and others define one setter that takes an Object (see PlotOptionsPie.setSize(Object)
These should be normalized to avoid confusing API.
Imported from https://dev.vaadin.com/ issue #10640
Originally by @denis-anisimov
It is possible to get zooming for Chart via Chart.setZoomType() method.
Zooming works but the way how it works is unclear.
It seems zoom value depends on axis dragging values not length of dragging interval (which I would expect).
Anyway the exact way how zoom works should be documented.
Imported from https://dev.vaadin.com/ issue #10668
Originally by @zch
Timeline fails with an internal error due to #10702
Imported from https://dev.vaadin.com/ issue #10703
Originally by @jouni
Using timeline.removeAllGraphDataSources() clears the "browser" view (the scroller at the bottom), but the main graph area is not cleared in Opera. Adding one new graph data source resolves the issue, and only that graph is shown.
Opera version: 12.11
Vaadin version: 7.0.0-beta9
Charts version: svn checkout built on 2012-11-12
Imported from https://dev.vaadin.com/ issue #10521
Originally by @hezamu
Trying to add a Timeline instance to a layout in a GAE app results in:
NoClassDefFoundError: java.awt.Color is a restricted class. Please see the Google App Engine developer's guide for more details.
Imported from https://dev.vaadin.com/ issue #4618
Originally by @magi42
Provide basic documentation for the new Vaadin Charts add-on in the book.
Imported from https://dev.vaadin.com/ issue #10173
Originally by @mstahv
Vaadin Charts basic test suit should verify all Highcharts demos can be implemented with typed server side Java api.
Originally by @johannest
For example the following will not change the date time formats of the labels of x axis.
configuration.getxAxis().getDateTimeLabelFormats().setDay("%a %e %b");
After this configuration labels should be like this "Fri 1 Jan, Sun 3 Jan, ...."
Imported from https://dev.vaadin.com/ issue #10715
Originally by @denis-anisimov
Demo application doesn't contain timeline samples.
There is a package com.vaadin.addon.charts.demoandtestapp.timeline but it's empty.
Imported from https://dev.vaadin.com/ issue #10706
Originally by @denis-anisimov
It would be nice to have Javadoc at least for two main packages :
com.vaadin.addon.charts
and
com.vaadin.addon.timeline
with minimal information how the API could be used.
Imported from https://dev.vaadin.com/ issue #10650
Originally by @zch
Marker.setStates(MarkerStates)
says that the method sets states for hover and select events, but the MarkerStates
class only holds a state relating to the hover event.
Imported from https://dev.vaadin.com/ issue #10629
Originally by @denis-anisimov
There is a compilation error on building tests:
[ERROR] \Users\denis\workspace\vaadin-charts\addon\src\test\java\com\vaadin\addon\charts\demoandtestapp\other\Clock.java
:[101,22] error: method setRearLength in class Dial cannot be applied to given types;
[ERROR] \Users\denis\workspace\vaadin-charts\addon\src\test\java\com\vaadin\addon\charts\demoandtestapp\other\Clock.java
:[108,24] error: method setRearLength in class Dial cannot be applied to given types;
Dial.setRearLength() has a String argument. But tests pass a number as an argument.
So build procedure is broken.
Imported from https://dev.vaadin.com/ issue #10644
Originally by @denis-anisimov
Configuration has method setDataSeriesEventListener(DataSeriesEventListener listener).
This method has semantic to set (not add) listener
to the configuration.
I see from the implementation that it really sets the listener.
On the other hand Chart component sets its own (implementation specific) listener via this method.
As a result user is able to set other listener to Configuration.
It means that no data series events from Configuration would be
received by Chart component.
So the method should be either implementation specific (invisible for user like package local) or it should be addDataSeriesEventListener() with add semantic instead of set.
Imported from https://dev.vaadin.com/ issue #10684
Originally by @mstahv
Available in yet to be released Highcharts 3
http://jsfiddle.net/highcharts/YVmBJ/
Imported from https://dev.vaadin.com/ issue #10192
Originally by @denis-anisimov
The issue is similar to the ticket #10654.
Pane's index is Configuration's context based.
So there is no sense to set Pane's index without the context.
Imported from https://dev.vaadin.com/ issue #10655
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.