Giter Site home page Giter Site logo

charts's Introduction

charts's People

Contributors

alvarezguille avatar ansku avatar artur- avatar caalador avatar dependabot[bot] avatar diegocardoso avatar emarc avatar jarski avatar johannesh2 avatar jouni avatar katrihaapalinna avatar landis22b avatar magi42 avatar makoivis avatar manolo avatar manor avatar markathomas avatar mheicke avatar mstahv avatar oluwasayo avatar peppe avatar petrixh avatar rogozinds avatar samulivaadin avatar svenruppert avatar tatulund avatar thevaadinman avatar vaadin-miki avatar zch avatar zhesun88 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

charts's Issues

Exporting feature is unclear

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

Credits.setPosition accepts invalid parameter

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

It's impossible to override Stacking options for selected series

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)

StackLabels.setFormatter requires javadoc describing available object values

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

AbstractPlotOptions.setCursor() issues

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

Scale cirles doesn't start from the beginning for polar chart

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

Tooltip.setCrosshairs only accepts Boolean

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.

Add methods for setting dashStyle property (plotOptions.series)

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

Confusing chart types API design

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 :

  • Chart has only no-arg CTOR. Chart becomes plain Vaadin component and it doesn't manage drawing.
  • No AbstractSeries.setPlotOptions() method. Only getPlotOptions() which returns instantiated instance of specific PlotOptions:
    class AbstactSeries {
    T getPlotOptions();
    }
  • No need to instantiate concrete PlotOptions type (no CTORS for subclasses AbstractPlotOptions types).
  • Series could be constructed via Factory(ies): Factory class per specific Series class or one common Factory.
    F.e.
    class ListSeriesFactory {
    ListSeries createListSeries(Class optionsClass);
    }
  • Remove add/setPlotOptions method from Configuration.
  • ChartType enum could be hidden as implementation specific.

Imported from https://dev.vaadin.com/ issue #10649

Confusing Axis.setLinkedTo() metod's signature

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

The legend's drop shadow can be configured

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

Improve the point reducing alghoritm

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

Different handling of number-or-percentage parameters

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

Zoom functionality should be documented

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

Couldn't build last version of addon (revision 25268).

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

Curent Configuration API allows to break data update functionality

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.