OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2014 Google Inc. All rights reserved. | 2 * Copyright 2014 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style | 4 * Use of this source code is governed by a BSD-style |
5 * license that can be found in the LICENSE file or at | 5 * license that can be found in the LICENSE file or at |
6 * https://developers.google.com/open-source/licenses/bsd | 6 * https://developers.google.com/open-source/licenses/bsd |
7 */ | 7 */ |
8 | 8 |
9 part of charted.charts; | 9 part of charted.charts; |
10 | 10 |
(...skipping 19 matching lines...) Expand all Loading... |
30 const ['#C5D9FB', '#4184F3', '#2955C5'], | 30 const ['#C5D9FB', '#4184F3', '#2955C5'], |
31 const ['#F3C6C2', '#DB4437', '#A52714'], | 31 const ['#F3C6C2', '#DB4437', '#A52714'], |
32 const ['#FBE7B1', '#F4B400', '#EF9200'], | 32 const ['#FBE7B1', '#F4B400', '#EF9200'], |
33 const ['#B6E0CC', '#0F9D58', '#0A7F42'], | 33 const ['#B6E0CC', '#0F9D58', '#0A7F42'], |
34 const ['#E0BDE6', '#AA46BB', '#691A99'], | 34 const ['#E0BDE6', '#AA46BB', '#691A99'], |
35 const ['#B1EAF1', '#00ABC0', '#00828E'], | 35 const ['#B1EAF1', '#00ABC0', '#00828E'], |
36 const ['#FFCBBB', '#FF6F42', '#E54918'], | 36 const ['#FFCBBB', '#FF6F42', '#E54918'], |
37 const ['#EFF3C2', '#9D9C23', '#817616'] | 37 const ['#EFF3C2', '#9D9C23', '#817616'] |
38 ]; | 38 ]; |
39 | 39 |
| 40 static final _MEASURE_AXIS_THEME = |
| 41 new QuantumChartAxisTheme(ChartAxisTheme.FILL_RENDER_AREA, 5); |
| 42 static final _ORDINAL_DIMENSION_AXIS_THEME = |
| 43 new QuantumChartAxisTheme(0, 10); |
| 44 static final _DEFAULT_DIMENSION_AXIS_THEME = |
| 45 new QuantumChartAxisTheme(4, 10); |
| 46 |
40 final OrdinalScale _scale = new OrdinalScale()..range = COLORS; | 47 final OrdinalScale _scale = new OrdinalScale()..range = COLORS; |
41 | 48 |
42 @override | 49 @override |
43 String getColorForKey(key, [int state = 0]) { | 50 String getColorForKey(key, [int state = 0]) { |
44 var result = _scale.scale(key); | 51 var result = _scale.scale(key); |
45 return result is Iterable ? colorForState(result, state) : result; | 52 return result is Iterable ? colorForState(result, state) : result; |
46 } | 53 } |
47 | 54 |
48 colorForState(Iterable colors, int state) { | 55 colorForState(Iterable colors, int state) { |
49 // Inactive color when another key is active or selected. | 56 // Inactive color when another key is active or selected. |
(...skipping 17 matching lines...) Expand all Loading... |
67 state & ChartState.VAL_HOVERED != 0 || | 74 state & ChartState.VAL_HOVERED != 0 || |
68 state & ChartState.COL_SELECTED != 0 || | 75 state & ChartState.COL_SELECTED != 0 || |
69 state & ChartState.VAL_HIGHLIGHTED != 0 ? 'url(#drop-shadow)' : ''; | 76 state & ChartState.VAL_HIGHLIGHTED != 0 ? 'url(#drop-shadow)' : ''; |
70 | 77 |
71 @override | 78 @override |
72 String getOtherColor([int state = 0]) => OTHER_COLORS is Iterable | 79 String getOtherColor([int state = 0]) => OTHER_COLORS is Iterable |
73 ? colorForState(OTHER_COLORS, state) | 80 ? colorForState(OTHER_COLORS, state) |
74 : OTHER_COLORS; | 81 : OTHER_COLORS; |
75 | 82 |
76 @override | 83 @override |
77 ChartAxisTheme getMeasureAxisTheme([Scale _]) => | 84 ChartAxisTheme getMeasureAxisTheme([Scale _]) => _MEASURE_AXIS_THEME; |
78 const QuantumChartAxisTheme(ChartAxisTheme.FILL_RENDER_AREA, 5); | |
79 | 85 |
80 @override | 86 @override |
81 ChartAxisTheme getDimensionAxisTheme([Scale scale]) => | 87 ChartAxisTheme getDimensionAxisTheme([Scale scale]) => |
82 scale == null || scale is OrdinalScale | 88 scale == null || scale is OrdinalScale |
83 ? const QuantumChartAxisTheme(0, 10) | 89 ? _ORDINAL_DIMENSION_AXIS_THEME |
84 : const QuantumChartAxisTheme(4, 10); | 90 : _DEFAULT_DIMENSION_AXIS_THEME; |
85 | 91 |
86 @override | 92 @override |
87 AbsoluteRect get padding => const AbsoluteRect(10, 40, 0, 0); | 93 AbsoluteRect get padding => const AbsoluteRect(10, 40, 0, 0); |
88 | 94 |
89 @override | 95 @override |
90 String get filters => ''' | 96 String get filters => ''' |
91 <filter id="drop-shadow" height="300%" width="300%" y="-100%" x="-100%"> | 97 <filter id="drop-shadow" height="300%" width="300%" y="-100%" x="-100%"> |
92 <feGaussianBlur stdDeviation="2" in="SourceAlpha"></feGaussianBlur> | 98 <feGaussianBlur stdDeviation="2" in="SourceAlpha"></feGaussianBlur> |
93 <feOffset dy="1" dx="0"></feOffset> | 99 <feOffset dy="1" dx="0"></feOffset> |
94 <feComponentTransfer> | 100 <feComponentTransfer> |
95 <feFuncA slope="0.4" type="linear"></feFuncA> | 101 <feFuncA slope="0.4" type="linear"></feFuncA> |
96 </feComponentTransfer> | 102 </feComponentTransfer> |
97 <feMerge> | 103 <feMerge> |
98 <feMergeNode></feMergeNode> | 104 <feMergeNode></feMergeNode> |
99 <feMergeNode in="SourceGraphic"></feMergeNode> | 105 <feMergeNode in="SourceGraphic"></feMergeNode> |
100 </feMerge> | 106 </feMerge> |
101 </filter> | 107 </filter> |
102 '''; | 108 '''; |
103 | 109 |
104 @override | 110 @override |
105 String get defaultFont => '14px Roboto'; | 111 String get defaultFont => '14px Roboto'; |
106 } | 112 } |
107 | 113 |
108 class QuantumChartAxisTheme implements ChartAxisTheme { | 114 class QuantumChartAxisTheme implements ChartAxisTheme { |
109 @override | 115 @override |
110 final axisOuterPadding = 0.1; | 116 final double axisOuterPadding; |
111 | 117 |
112 @override | 118 @override |
113 final axisBandInnerPadding = 0.35; | 119 final double axisBandInnerPadding; |
114 | 120 |
115 @override | 121 @override |
116 final axisBandOuterPadding = 0.175; | 122 final double axisBandOuterPadding; |
117 | 123 |
118 @override | 124 @override |
119 final axisTickPadding = 6; | 125 final int axisTickPadding; |
120 | 126 |
121 @override | 127 @override |
122 final axisTickSize; | 128 final int axisTickSize; |
123 | 129 |
124 @override | 130 @override |
125 final axisTickCount; | 131 final int axisTickCount; |
126 | 132 |
127 @override | 133 @override |
128 final verticalAxisAutoResize = true; | 134 final bool verticalAxisAutoResize; |
129 | 135 |
130 @override | 136 @override |
131 final verticalAxisWidth = 75; | 137 final int verticalAxisWidth; |
132 | 138 |
133 @override | 139 @override |
134 final horizontalAxisAutoResize = false; | 140 final bool horizontalAxisAutoResize; |
135 | 141 |
136 @override | 142 @override |
137 final horizontalAxisHeight = 50; | 143 final int horizontalAxisHeight; |
138 | 144 |
139 @override | 145 @override |
140 final ticksFont = '12px Roboto'; | 146 final String ticksFont; |
141 | 147 |
142 const QuantumChartAxisTheme(this.axisTickSize, this.axisTickCount); | 148 QuantumChartAxisTheme(this.axisTickSize, this.axisTickCount, |
| 149 {this.axisOuterPadding: 12.0, |
| 150 this.axisBandInnerPadding: 0.35, |
| 151 this.axisBandOuterPadding: 12.0, |
| 152 this.axisTickPadding: 6, |
| 153 this.verticalAxisAutoResize: true, |
| 154 this.verticalAxisWidth: 75, |
| 155 this.horizontalAxisAutoResize: false, |
| 156 this.horizontalAxisHeight: 50, |
| 157 this.ticksFont: '12px Roboto'}); |
143 } | 158 } |
OLD | NEW |