Details
-
Type:
Improvement
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: EE-3.3.0.GA_P04, 4.2
-
Fix Version/s: EE-3.3.0.GA_P06
-
Component/s: ACE-Components
-
Labels:None
-
Environment:ace
-
Assignee Priority:P1
-
Support Case References:Support Case 14149:- https://icesoft.my.salesforce.com/5007000001kw562
Description
In an ace:chart (pie chart) component in view page populated with String-Long type of key-value pairs. The chart is rendered fine, but when I clicking on a slice invoking the method registered in selectListener property, NumberFormatException is thrown saying that the label cannot be cast to int.
This mechanism resides in the ChartRenderer.processSelections API method when the seriesIndex and pointIndex variables are attempted to create.
private void processSelections(Chart chart, String[] select) {
int seriesIndex = Integer.parseInt(select[0]);
int pointIndex = Integer.parseInt(select[1]);
chart.queueEvent(new SeriesSelectionEvent(chart, seriesIndex, pointIndex));
}
the select[0] and select[1] values should first be checked for type of Object and then cast accordingly, rather than assumed it's an Integer value. (Support Case would like to be able to use a String for label of pie chart)
This mechanism resides in the ChartRenderer.processSelections API method when the seriesIndex and pointIndex variables are attempted to create.
private void processSelections(Chart chart, String[] select) {
int seriesIndex = Integer.parseInt(select[0]);
int pointIndex = Integer.parseInt(select[1]);
chart.queueEvent(new SeriesSelectionEvent(chart, seriesIndex, pointIndex));
}
the select[0] and select[1] values should first be checked for type of Object and then cast accordingly, rather than assumed it's an Integer value. (Support Case would like to be able to use a String for label of pie chart)
Activity
Field | Original Value | New Value |
---|---|---|
Assignee | Judy Guglielmin [ judy.guglielmin ] |
Fix Version/s | EE-3.3.0.GA_P05 [ 13082 ] | |
Fix Version/s | 4.3 [ 13096 ] |
Description |
In an ace:chart (pie chart) component in view page populated with String-Long type of key-value pairs. The chart is rendered fine, but when I clicking on a slice invoking the method registered in selectListener property, NumberFormatException is thrown saying that the label cannot be cast to int.
This mechanism resides in the ChartRenderer.processSelections API method when the seriesIndex and pointIndex variables are attempted to create. private void processSelections(Chart chart, String[] select) { int seriesIndex = Integer.parseInt(select[0]); int pointIndex = Integer.parseInt(select[1]); chart.queueEvent(new SeriesSelectionEvent(chart, seriesIndex, pointIndex)); } the select[0] and select[1] values should first be checked for type of Number and then cast accordingly, rather than assumed it's an Integer value. |
In an ace:chart (pie chart) component in view page populated with String-Long type of key-value pairs. The chart is rendered fine, but when I clicking on a slice invoking the method registered in selectListener property, NumberFormatException is thrown saying that the label cannot be cast to int.
This mechanism resides in the ChartRenderer.processSelections API method when the seriesIndex and pointIndex variables are attempted to create. private void processSelections(Chart chart, String[] select) { int seriesIndex = Integer.parseInt(select[0]); int pointIndex = Integer.parseInt(select[1]); chart.queueEvent(new SeriesSelectionEvent(chart, seriesIndex, pointIndex)); } the select[0] and select[1] values should first be checked for type of Object and then cast accordingly, rather than assumed it's an Integer value. (Support Case would like to be able to use a String for label of pie chart) |
Fix Version/s | EE-3.3.0.GA_P05 [ 13082 ] |
Assignee Priority | P1 [ 10010 ] |
Fix Version/s | EE-3.3.0.GA_P06 [ 13114 ] |
Repository | Revision | Date | User | Message |
ICEsoft Public SVN Repository | #51968 | Thu Sep 28 15:57:39 MDT 2017 | judy.guglielmin | |
Files Changed | ||||
![]() ![]() |
Attachment | chartDynamic.xhtml [ 22611 ] | |
Attachment | ChartDynamicBean.java [ 22612 ] |
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Fix Version/s | EE-3.3.0.GA_P07 [ 13118 ] | |
Fix Version/s | 4.3 [ 13096 ] | |
Fix Version/s | EE-3.3.0.GA_P06 [ 13114 ] |
Fix Version/s | EE-3.3.0.GA_P06 [ 13114 ] | |
Fix Version/s | EE-3.3.0.GA_P07 [ 13118 ] |
Status | Resolved [ 5 ] | Closed [ 6 ] |
The selectListener was assuming all data was going to be of type Integer. The SeriesSelectionEvent has been expanded such that if the parsing of the values to Integer fails, it just returns strings. So the user now can retrieve Strings (and parse however they would like ) from the event. Attributes of SeriesSelectionEvent are pointIndex and seriesIndex (both "int" values and kept for backwards compatability) and new attributes pointLabel and SeriesLabel which will are String values and can be parsed however the user would like.
Wiki has been updated.
rev 51968 for IF4.x
rev 51969 for IF 3.3.x
Modified the chartDynamic.xhtml page of showcase app to test the dragListener and no problems exist using float or double values in the chart & table. attaching the bean and xhtml in case QA wants to create a test for it.