11package de .symeda .sormas .ui .dashboard .campaigns ;
22
3- import com .vaadin .ui .VerticalLayout ;
4- import de .symeda .sormas .api .campaign .diagram .CampaignDiagramDataDto ;
5- import de .symeda .sormas .api .campaign .diagram .CampaignDiagramDefinitionDto ;
6- import de .symeda .sormas .api .campaign .diagram .CampaignDiagramSeries ;
7- import de .symeda .sormas .api .i18n .Captions ;
8- import de .symeda .sormas .api .i18n .I18nProperties ;
9- import de .symeda .sormas .ui .highcharts .HighChart ;
10- import org .apache .commons .text .StringEscapeUtils ;
11-
123import java .math .BigDecimal ;
134import java .math .RoundingMode ;
145import java .util .ArrayList ;
2011import java .util .function .Function ;
2112import java .util .stream .Collectors ;
2213
14+ import org .apache .commons .text .StringEscapeUtils ;
15+
16+ import com .vaadin .ui .VerticalLayout ;
17+
18+ import de .symeda .sormas .api .campaign .diagram .CampaignDiagramDataDto ;
19+ import de .symeda .sormas .api .campaign .diagram .CampaignDiagramDefinitionDto ;
20+ import de .symeda .sormas .api .campaign .diagram .CampaignDiagramSeries ;
21+ import de .symeda .sormas .api .i18n .Captions ;
22+ import de .symeda .sormas .api .i18n .I18nProperties ;
23+ import de .symeda .sormas .ui .highcharts .HighChart ;
24+
2325@ SuppressWarnings ("serial" )
2426public class CampaignDashboardDiagramComponent extends VerticalLayout {
2527
@@ -105,19 +107,20 @@ public void buildDiagramChart(String title) {
105107 ", menuItems: ['viewFullscreen', 'printChart', 'separator', 'downloadPNG', 'downloadJPEG', 'downloadPDF', 'downloadSVG', 'separator', 'downloadCSV', 'downloadXLS', 'viewData', 'separator', 'togglePercentages']" );
106108 }
107109
108- //@formatter:off
109- hcjs .append ("} } },"
110- + "legend: { backgroundColor: 'transparent', margin: 30 },"
111- + "colors: ['#4472C4', '#ED7D31', '#A5A5A5', '#FFC000', '#5B9BD5', '#70AD47', '#FF0000', '#6691C4','#ffba08','#519e8a','#ed254e','#39a0ed','#FF8C00','#344055','#D36135','#82d173'],"
112- + "title:{ text: '" + StringEscapeUtils .escapeEcmaScript (title ) + "', style: { fontSize: '15px' } }," );
113- //@formatter:on
114-
115110 Map <String , Long > stackMap = diagramDefinition .getCampaignDiagramSeries ()
116111 .stream ()
117112 .filter (campaignDiagramSeries -> campaignDiagramSeries .getStack () != null )
118113 .map (CampaignDiagramSeries ::getStack )
119114 .collect (Collectors .groupingBy (Function .identity (), Collectors .counting ()));
120115
116+ //@formatter:off
117+ final int legendMargin = stackMap .size () > 1 ? 60 : 30 ;
118+ hcjs .append ("} } },"
119+ + "legend: { backgroundColor: 'transparent', margin: " + legendMargin + " },"
120+ + "colors: ['#4472C4', '#ED7D31', '#A5A5A5', '#FFC000', '#5B9BD5', '#70AD47', '#FF0000', '#6691C4','#ffba08','#519e8a','#ed254e','#39a0ed','#FF8C00','#344055','#D36135','#82d173'],"
121+ + "title:{ text: '" + StringEscapeUtils .escapeEcmaScript (title ) + "', style: { fontSize: '15px' } }," );
122+ //@formatter:on
123+
121124 hcjs .append ("xAxis: {" );
122125 if (stackMap .size () > 1 ) {
123126 hcjs .append ("opposite: true," );
@@ -135,7 +138,7 @@ public void buildDiagramChart(String title) {
135138 }
136139 if (stackMap .size () > 1 ) {
137140 hcjs .append (
138- ", stackLabels: {enabled: true,verticalAlign: 'bottom',crop: false,overflow: 'none',y: 20,formatter: function() { return this.stack;},style: { color: 'grey'}}" );
141+ ", stackLabels: {enabled: true,verticalAlign: 'bottom',crop: false, rotation: 45, x:20,y: 20, overflow: 'none',y: 20,formatter: function() { return this.stack;},style: { color: 'grey'}}" );
139142 }
140143 hcjs .append ("}," );
141144 //@formatter:on
0 commit comments