ziya 1.0.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest.txt +74 -28
- data/README.txt +91 -14
- data/Rakefile +1 -1
- data/bin/ziyafy +2 -0
- data/charts/AC_RunActiveContent.js +292 -0
- data/charts/charts.swf +0 -0
- data/charts/charts_library/ar3d.swf +0 -0
- data/charts/charts_library/arno.swf +0 -0
- data/charts/charts_library/ars3.swf +0 -0
- data/charts/charts_library/arst.swf +0 -0
- data/charts/charts_library/brfl.swf +0 -0
- data/charts/charts_library/brno.swf +0 -0
- data/charts/charts_library/brst.swf +0 -0
- data/charts/charts_library/buno.swf +0 -0
- data/charts/charts_library/cl3d.swf +0 -0
- data/charts/charts_library/clfl.swf +0 -0
- data/charts/charts_library/clno.swf +0 -0
- data/charts/charts_library/clp3.swf +0 -0
- data/charts/charts_library/cls3.swf +0 -0
- data/charts/charts_library/clst.swf +0 -0
- data/charts/charts_library/cnno.swf +0 -0
- data/charts/charts_library/lnno.swf +0 -0
- data/charts/charts_library/mxno.swf +0 -0
- data/charts/charts_library/pi3d.swf +0 -0
- data/charts/charts_library/pino.swf +0 -0
- data/charts/charts_library/pono.swf +0 -0
- data/charts/charts_library/scno.swf +0 -0
- data/charts/full_screen.swf +0 -0
- data/charts/sliders/black.swf +0 -0
- data/charts/sliders/preview_handle_1.swf +0 -0
- data/charts/sliders/preview_handle_2.swf +0 -0
- data/fred.rb +36 -0
- data/gauges/designs/circle.yml +18 -0
- data/gauges/designs/signal.yml +14 -0
- data/gauges/designs/thermo.yml +119 -0
- data/gauges/designs/title.yml +11 -0
- data/gauges/gauge.swf +0 -0
- data/lib/ziya.rb +17 -5
- data/lib/ziya/charts/area.rb +6 -1
- data/lib/ziya/charts/area_threed.rb +16 -0
- data/lib/ziya/charts/bar.rb +8 -3
- data/lib/ziya/charts/base.rb +210 -153
- data/lib/ziya/charts/bubble.rb +18 -0
- data/lib/ziya/charts/candle_stick.rb +6 -1
- data/lib/ziya/charts/column.rb +7 -2
- data/lib/ziya/charts/column_threed.rb +6 -1
- data/lib/ziya/charts/floating_bar.rb +6 -1
- data/lib/ziya/charts/floating_column.rb +7 -2
- data/lib/ziya/charts/line.rb +7 -2
- data/lib/ziya/charts/mixed.rb +5 -0
- data/lib/ziya/charts/parallel_threed_column.rb +6 -1
- data/lib/ziya/charts/pie.rb +7 -2
- data/lib/ziya/charts/pie_threed.rb +7 -2
- data/lib/ziya/charts/polar.rb +6 -1
- data/lib/ziya/charts/scatter.rb +6 -1
- data/lib/ziya/charts/stacked_area.rb +5 -0
- data/lib/ziya/charts/stacked_bar.rb +5 -0
- data/lib/ziya/charts/stacked_column.rb +7 -2
- data/lib/ziya/charts/stacked_threed_area.rb +16 -0
- data/lib/ziya/charts/stacked_threed_column.rb +6 -1
- data/lib/ziya/components/area.rb +5 -2
- data/lib/ziya/components/axis_category.rb +8 -60
- data/lib/ziya/components/axis_ticks.rb +25 -27
- data/lib/ziya/components/axis_value.rb +5 -48
- data/lib/ziya/components/base.rb +59 -17
- data/lib/ziya/components/bevel.rb +15 -0
- data/lib/ziya/components/blur.rb +13 -0
- data/lib/ziya/components/chart_border.rb +4 -23
- data/lib/ziya/components/chart_grid_h.rb +17 -19
- data/lib/ziya/components/chart_grid_v.rb +18 -19
- data/lib/ziya/components/chart_guide.rb +16 -0
- data/lib/ziya/components/chart_label.rb +16 -0
- data/lib/ziya/components/chart_pref.rb +12 -12
- data/lib/ziya/components/chart_rect.rb +27 -26
- data/lib/ziya/components/chart_transition.rb +15 -16
- data/lib/ziya/components/circle.rb +5 -2
- data/lib/ziya/components/draw.rb +12 -11
- data/lib/ziya/components/draw_base.rb +10 -0
- data/lib/ziya/components/filter.rb +26 -0
- data/lib/ziya/components/glow.rb +14 -0
- data/lib/ziya/components/image.rb +5 -1
- data/lib/ziya/components/legend.rb +18 -0
- data/lib/ziya/components/line.rb +6 -2
- data/lib/ziya/components/link.rb +9 -9
- data/lib/ziya/components/link_data.rb +9 -10
- data/lib/ziya/components/rect.rb +7 -2
- data/lib/ziya/components/scroll.rb +26 -0
- data/lib/ziya/components/shadow.rb +14 -0
- data/lib/ziya/components/text.rb +5 -1
- data/lib/ziya/components/update.rb +19 -0
- data/lib/ziya/gauges/base.rb +172 -0
- data/lib/ziya/gauges/radial.rb +18 -0
- data/lib/ziya/gauges/signal.rb +138 -0
- data/lib/ziya/gauges/support/area.rb +13 -0
- data/lib/ziya/gauges/support/base.rb +33 -0
- data/lib/ziya/gauges/support/circle.rb +14 -0
- data/lib/ziya/gauges/support/design.rb +5 -0
- data/lib/ziya/gauges/support/image.rb +12 -0
- data/lib/ziya/gauges/support/line.rb +12 -0
- data/lib/ziya/gauges/support/link.rb +24 -0
- data/lib/ziya/gauges/support/move.rb +15 -0
- data/lib/ziya/gauges/support/point.rb +12 -0
- data/lib/ziya/gauges/support/polygon.rb +13 -0
- data/lib/ziya/gauges/support/radial_base.rb +21 -0
- data/lib/ziya/gauges/support/radial_numbers.rb +41 -0
- data/lib/ziya/gauges/support/radial_ticks.rb +29 -0
- data/lib/ziya/gauges/support/rect.rb +14 -0
- data/lib/ziya/gauges/support/rotate.rb +15 -0
- data/lib/ziya/gauges/support/scale.rb +15 -0
- data/lib/ziya/gauges/support/text.rb +21 -0
- data/lib/ziya/gauges/support/update.rb +12 -0
- data/lib/ziya/gauges/thermo.rb +121 -0
- data/lib/ziya/helpers/base_helper.rb +39 -6
- data/lib/ziya/utils/text.rb +6 -0
- data/lib/ziya/version.rb +1 -1
- data/lib/ziya/ziya_helper.rb +289 -62
- data/spec/charts/base_spec.rb +35 -21
- data/spec/charts/chart_type_spec.rb +24 -3
- data/spec/components/area_spec.rb +9 -2
- data/spec/components/draw_spec.rb +1 -2
- data/spec/components/filter_spec.rb +27 -0
- data/spec/components/link_spec.rb +1 -2
- data/spec/components/series_color_spec.rb +1 -2
- data/spec/components/series_explode_spec.rb +1 -2
- data/spec/components/series_switch_spec.rb +1 -2
- data/spec/designs/circle.yml +7 -0
- data/spec/designs/crapping_out.yml +8 -0
- data/spec/designs/gauge_1.yml +43 -0
- data/spec/designs/gauge_2.yml +11 -0
- data/spec/designs/gauge_no_name.yml +43 -0
- data/spec/designs/gauge_raw.yml +5 -0
- data/spec/designs/thermo.yml +13 -0
- data/spec/gauges/base_spec.rb +90 -0
- data/spec/gauges/signal_spec.rb +36 -0
- data/spec/gauges/support/area_spec.rb +40 -0
- data/spec/gauges/support/circle_spec.rb +78 -0
- data/spec/gauges/support/image_spec.rb +35 -0
- data/spec/gauges/support/line_spec.rb +34 -0
- data/spec/gauges/support/link_spec.rb +35 -0
- data/spec/gauges/support/move_spec.rb +45 -0
- data/spec/gauges/support/polygon_spec.rb +36 -0
- data/spec/gauges/support/radial_numbers_spec.rb +35 -0
- data/spec/gauges/support/radial_ticks_spec.rb +30 -0
- data/spec/gauges/support/rotate_spec.rb +45 -0
- data/spec/gauges/support/scale_spec.rb +46 -0
- data/spec/gauges/support/text_spec.rb +40 -0
- data/spec/gauges/thermo_spec.rb +49 -0
- data/spec/helpers/base_helper_spec.rb +20 -6
- data/spec/spec_helper.rb +4 -1
- data/spec/test_helpers/gauge_2_helper.rb +17 -0
- data/spec/utils/logger_spec.rb +1 -3
- data/spec/utils/text_spec.rb +1 -2
- data/spec/ziya_helper_spec.rb +88 -11
- data/spec/ziya_spec.rb +1 -1
- data/tasks/gem.rake +1 -1
- metadata +79 -32
- data/charts/themes/commando/bar_chart.yml +0 -9
- data/charts/themes/commando/base_chart.yml +0 -65
- data/charts/themes/commando/column_chart.yml +0 -13
- data/charts/themes/commando/column_threed_chart.yml +0 -25
- data/charts/themes/commando/parallel_threed_column_chart.yml +0 -17
- data/charts/themes/commando/pie_chart.yml +0 -22
- data/charts/themes/commando/pie_threed_chart.yml +0 -28
- data/charts/themes/commando/polar_chart.yml +0 -11
- data/charts/themes/commando/stacked_bar_chart.yml +0 -9
- data/charts/themes/commando/stacked_column_chart.yml +0 -14
- data/charts/themes/commando/stacked_threed_column_chart.yml +0 -17
- data/charts/themes/default/bar_chart.yml +0 -3
- data/charts/themes/default/base_chart.yml +0 -67
- data/charts/themes/default/column_chart.yml +0 -13
- data/charts/themes/default/column_threed_chart.yml +0 -25
- data/charts/themes/default/parallel_threed_column_chart.yml +0 -17
- data/charts/themes/default/pie_chart.yml +0 -29
- data/charts/themes/default/pie_threed_chart.yml +0 -28
- data/charts/themes/default/polar_chart.yml +0 -12
- data/charts/themes/default/stacked_bar_chart.yml +0 -3
- data/charts/themes/default/stacked_column_chart.yml +0 -14
- data/charts/themes/default/stacked_threed_column_chart.yml +0 -17
- data/charts/themes/default/test.yml +0 -4
- data/lib/ziya/components/chart_value.rb +0 -71
- data/lib/ziya/components/legend_label.rb +0 -18
- data/lib/ziya/components/legend_rect.rb +0 -19
- data/lib/ziya/components/legend_transition.rb +0 -18
- data/lib/ziya/components/live_update.rb +0 -21
@@ -0,0 +1,18 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
# Abstract class representing a radial based gauge
|
3
|
+
#
|
4
|
+
# Author: Fernand
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
module Ziya::Gauges
|
7
|
+
class Radial < Base
|
8
|
+
|
9
|
+
# =========================================================================
|
10
|
+
protected
|
11
|
+
|
12
|
+
# converts degrees to radiants
|
13
|
+
def deg2rad( degrees )
|
14
|
+
degrees * Math::PI / 180
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,138 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
# Meter gauge
|
3
|
+
#
|
4
|
+
# Records current value from 0..10 and variance of changes of value between
|
5
|
+
# ticks.
|
6
|
+
#
|
7
|
+
# Author: Fernand
|
8
|
+
# -----------------------------------------------------------------------------
|
9
|
+
module Ziya::Gauges
|
10
|
+
class Signal < Radial
|
11
|
+
|
12
|
+
# -------------------------------------------------------------------------
|
13
|
+
# ctor
|
14
|
+
def initialize( license, design_id="signal" )
|
15
|
+
super( license, design_id )
|
16
|
+
options[:delta] = options[:signal] - options[:previous]
|
17
|
+
end
|
18
|
+
|
19
|
+
# -------------------------------------------------------------------------
|
20
|
+
# set signal prefs
|
21
|
+
def set_preferences( opts={} )
|
22
|
+
super( opts )
|
23
|
+
options[:delta] = options[:signal] - options[:previous]
|
24
|
+
end
|
25
|
+
|
26
|
+
# =========================================================================
|
27
|
+
protected
|
28
|
+
|
29
|
+
# -----------------------------------------------------------------------
|
30
|
+
# setup signal gauge default options
|
31
|
+
def default_options
|
32
|
+
{
|
33
|
+
:x => 20,
|
34
|
+
:y => 20,
|
35
|
+
:signal => 5,
|
36
|
+
:previous => 0,
|
37
|
+
:average => nil,
|
38
|
+
:gauge_colors => %w[17ff00 49ff00 7cff00 aeff00 e1ff00 ffea00 ffb700 ff8300 ff5000 ff1c00 ff0000]
|
39
|
+
}
|
40
|
+
end
|
41
|
+
|
42
|
+
# =========================================================================
|
43
|
+
private
|
44
|
+
|
45
|
+
# draws signal polygons
|
46
|
+
def signal_indicator( x, y, radius, width, length, start_angle, end_angle, tick_count, thickness, color )
|
47
|
+
buff = []
|
48
|
+
rank = options[:signal]
|
49
|
+
avg = options[:average]
|
50
|
+
i = start_angle
|
51
|
+
j = start_angle + width
|
52
|
+
count = 1
|
53
|
+
while( i < end_angle ) do
|
54
|
+
fill_alpha = (rank < count) ? 40 : 100
|
55
|
+
fill_color = colorizer( rank )
|
56
|
+
if ( avg and avg == count )
|
57
|
+
fill_color = "0CFF00"
|
58
|
+
fill_alpha = 70
|
59
|
+
end
|
60
|
+
x1, y1 = x+Math::sin(deg2rad(i))*(radius) , y-Math::cos(deg2rad(i))*(radius)
|
61
|
+
x2, y2 = x+Math::sin(deg2rad(i))*(radius+length), y-Math::cos(deg2rad(i))*(radius+length)
|
62
|
+
x3, y3 = x+Math::sin(deg2rad(j))*(radius+length), y-Math::cos(deg2rad(j))*(radius+length)
|
63
|
+
x4, y4 = x+Math::sin(deg2rad(j))*(radius) , y-Math::cos(deg2rad(j))*(radius)
|
64
|
+
|
65
|
+
polygon = Ziya::Gauges::Support::Polygon.new(
|
66
|
+
:fill_color => fill_color, :fill_alpha => fill_alpha,
|
67
|
+
:line_color => fill_color, :line_alpha => fill_alpha,
|
68
|
+
:components => YAML::Omap[
|
69
|
+
"rpt_#{count}_1".to_sym, Ziya::Gauges::Support::Point.new( :x => x1, :y => y1 ),
|
70
|
+
"rpt_#{count}_2".to_sym, Ziya::Gauges::Support::Point.new( :x => x2, :y => y2 ),
|
71
|
+
"rpt_#{count}_3".to_sym, Ziya::Gauges::Support::Point.new( :x => x3, :y => y3 ),
|
72
|
+
"rpt_#{count}_4".to_sym, Ziya::Gauges::Support::Point.new( :x => x4, :y => y4 )
|
73
|
+
]
|
74
|
+
)
|
75
|
+
# dump polygon to yaml rep
|
76
|
+
buff << "#{indent}#{polygon.to_comp_yaml( "r_poly_#{count}", 2 )}"
|
77
|
+
i += (end_angle-start_angle)/(tick_count)
|
78
|
+
j = i + width
|
79
|
+
count += 1
|
80
|
+
end
|
81
|
+
buff.join( "\n" )
|
82
|
+
end
|
83
|
+
|
84
|
+
# -----------------------------------------------------------------------
|
85
|
+
# draws signal change indicator
|
86
|
+
def delta_indicator( x, y )
|
87
|
+
buff = []
|
88
|
+
fill_color = 'ff0000'
|
89
|
+
fill_alpha = 50
|
90
|
+
spacer = 10.0
|
91
|
+
height = 7.0
|
92
|
+
start = y
|
93
|
+
fill_alphas = calc_change_alpha( options[:delta] )
|
94
|
+
6.times do |i|
|
95
|
+
fill_color = ( i < 3 ) ? 'ff0000' : '00ff00'
|
96
|
+
fill_alpha = fill_alphas[i]
|
97
|
+
|
98
|
+
x1, y1 = x, start
|
99
|
+
if i < 3
|
100
|
+
x2, y2 = x+height/2, start-height
|
101
|
+
else
|
102
|
+
x2, y2 = x+height/2, start+height
|
103
|
+
end
|
104
|
+
x3, y3 = x+height, start
|
105
|
+
|
106
|
+
polygon = Ziya::Gauges::Support::Polygon.new(
|
107
|
+
:fill_color => fill_color, :fill_alpha => fill_alpha,
|
108
|
+
:line_color => fill_color, :line_alpha => fill_alpha,
|
109
|
+
:components => YAML::Omap[
|
110
|
+
"mpt_#{i}_1".to_sym, Ziya::Gauges::Support::Point.new( :x => x1, :y => y1 ),
|
111
|
+
"mpt_#{i}_2".to_sym, Ziya::Gauges::Support::Point.new( :x => x2, :y => y2 ),
|
112
|
+
"mpt_#{i}_3".to_sym, Ziya::Gauges::Support::Point.new( :x => x3, :y => y3 )
|
113
|
+
]
|
114
|
+
)
|
115
|
+
buff << "#{indent}#{polygon.to_comp_yaml( "m_poly_#{i}", 2 )}"
|
116
|
+
start += (i+1) == 3 ? 5 : spacer
|
117
|
+
end
|
118
|
+
buff.join( "\n" )
|
119
|
+
end
|
120
|
+
|
121
|
+
# calculates the change delta for this one to previous
|
122
|
+
def calc_change_alpha( change )
|
123
|
+
alphas = []
|
124
|
+
indexes = case change.abs
|
125
|
+
when 0..1 : change >= 0 ? [2] : [3]
|
126
|
+
when 1..5 : change >= 0 ? [1, 2] : [3,4]
|
127
|
+
when 5...10 : change >= 0 ? [0, 1, 2] : [3,4,5]
|
128
|
+
end
|
129
|
+
6.times { |i| alphas[i] = indexes.include?(i) ? 100 : 10 }
|
130
|
+
alphas
|
131
|
+
end
|
132
|
+
|
133
|
+
# colororize color wheel
|
134
|
+
def colorizer( rank )
|
135
|
+
options[:gauge_colors][rank]
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
# Draws a clickable area for a gauge
|
3
|
+
#
|
4
|
+
# Author:: Fernand Galiana
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
require 'ziya/gauges/support/base'
|
7
|
+
|
8
|
+
module Ziya::Gauges::Support
|
9
|
+
class Area < Base
|
10
|
+
has_attribute :x, :y, :width, :height, :url, :target, :text, :font, :bold, :size,
|
11
|
+
:color, :background_color, :alpha, :stop_sound
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Ziya::Gauges::Support
|
2
|
+
class Base < Ziya::Components::Base
|
3
|
+
include Ziya::Helpers::BaseHelper
|
4
|
+
|
5
|
+
# -----------------------------------------------------------------------
|
6
|
+
# converts component to yaml style component for yaml parser consumption
|
7
|
+
def to_comp_yaml( name, indent_multiplier=1 )
|
8
|
+
buff = []
|
9
|
+
tab = indent( indent_multiplier )
|
10
|
+
buff << "#{dial( demodulize( self.class.name ), name )}"
|
11
|
+
options.each_pair do |k,v|
|
12
|
+
if v.is_a? YAML::Omap
|
13
|
+
buff << "#{tab}#{indent}#{dials}"
|
14
|
+
v.each do |name, comp|
|
15
|
+
buff << "#{tab}#{indent(2)}#{dial( demodulize(comp.class.name), name )}"
|
16
|
+
comp.options.each_pair { |k,v| buff << "#{tab}#{indent(4)}#{k}: #{v}"}
|
17
|
+
end
|
18
|
+
else
|
19
|
+
buff << "#{tab}#{indent(1)}#{k}: #{v}" if options[k] and !options[k].to_s.empty?
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# if ( self.respond_to? :dials )
|
24
|
+
# buff << "#{tab}dials:"
|
25
|
+
# for dial in dials do
|
26
|
+
# buff << "#{tab}#{dial( demodulize( dial.class.name ) )}"
|
27
|
+
# dial.options.each_pair { |k,v| buff << "#{tab}#{tab}#{k}: #{v}"}
|
28
|
+
# end
|
29
|
+
# end
|
30
|
+
buff.join( "\n" )
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
# Draws a circle for a gauge
|
3
|
+
#
|
4
|
+
# Author:: Fernand Galiana
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
require 'ziya/gauges/support/base'
|
7
|
+
|
8
|
+
module Ziya::Gauges::Support
|
9
|
+
class Circle < Base
|
10
|
+
has_attribute :x, :y, :radius, :start, :end,
|
11
|
+
:fill_color, :fill_alpha, :line_color, :line_alpha,
|
12
|
+
:line_thickness
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
# Draws an image for a gauge
|
3
|
+
#
|
4
|
+
# Author:: Fernand Galiana
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
require 'ziya/gauges/support/base'
|
7
|
+
|
8
|
+
module Ziya::Gauges::Support
|
9
|
+
class Image < Base
|
10
|
+
has_attribute :url, :x, :y, :width, :height, :rotation, :alpha, :retry, :timeout
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
# Draws a line for a gauge
|
3
|
+
#
|
4
|
+
# Author:: Fernand Galiana
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
require 'ziya/gauges/support/base'
|
7
|
+
|
8
|
+
module Ziya::Gauges::Support
|
9
|
+
class Line < Base
|
10
|
+
has_attribute :x1, :y1, :x2, :y2, :color, :alpha, :thickness
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
# Create a link on a component
|
3
|
+
#
|
4
|
+
# Author:: Fernand Galiana
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
require 'ziya/gauges/support/base'
|
7
|
+
|
8
|
+
module Ziya::Gauges::Support
|
9
|
+
class Link < Base
|
10
|
+
has_attribute :components
|
11
|
+
|
12
|
+
# has_attribute :areas
|
13
|
+
# attr_accessor :areas
|
14
|
+
|
15
|
+
# -------------------------------------------------------------------------
|
16
|
+
# Dump has_attribute into xml element
|
17
|
+
# def flatten( xml )
|
18
|
+
# xml.link do
|
19
|
+
# areas.each { |area| area.flatten( xml ) } if areas and !areas.empty?
|
20
|
+
# end
|
21
|
+
# end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
# Create an animation to move a component
|
3
|
+
#
|
4
|
+
# Author:: Fernand Galiana
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
require 'ziya/gauges/support/base'
|
7
|
+
|
8
|
+
module Ziya::Gauges::Support
|
9
|
+
class Move < Base
|
10
|
+
has_attribute :start_x_offset, :start_y_offset, :end_x_offset, :end_y_offset, :step,
|
11
|
+
:shake_span, :shake_frequency, :shake_snap,
|
12
|
+
:shadow_alpha, :shadow_x_offset, :shadow_y_offset,
|
13
|
+
:components
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
# Draws a point for a gauge
|
3
|
+
#
|
4
|
+
# Author:: Fernand Galiana
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
require 'ziya/gauges/support/base'
|
7
|
+
|
8
|
+
module Ziya::Gauges::Support
|
9
|
+
class Point < Base
|
10
|
+
has_attribute :x, :y
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
# Draws a polygon for a gauge
|
3
|
+
#
|
4
|
+
# Author:: Fernand Galiana
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
require 'ziya/gauges/support/base'
|
7
|
+
|
8
|
+
module Ziya::Gauges::Support
|
9
|
+
class Polygon < Base
|
10
|
+
has_attribute :fill_color, :fill_alpha, :line_color, :line_alpha,
|
11
|
+
:line_thickness, :components
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
# Draws things in a circular layout. This is an abstract class and should not
|
3
|
+
# be used directly.
|
4
|
+
#
|
5
|
+
# Author:: Fernand Galiana
|
6
|
+
# -----------------------------------------------------------------------------
|
7
|
+
require 'ziya/gauges/support/base'
|
8
|
+
|
9
|
+
module Ziya::Gauges::Support
|
10
|
+
class RadialBase < Base
|
11
|
+
has_attribute :x, :y, :radius, :start_angle, :end_angle, :ticks, :color, :alpha
|
12
|
+
|
13
|
+
# =========================================================================
|
14
|
+
protected
|
15
|
+
|
16
|
+
# converts degrees to radiant
|
17
|
+
def deg2rad( degrees )
|
18
|
+
degrees * Math::PI / 180
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
# Draws a set of numbers in a circular layout
|
3
|
+
#
|
4
|
+
# BOZO !! use components to render ??
|
5
|
+
#
|
6
|
+
# Author:: Fernand Galiana
|
7
|
+
# -----------------------------------------------------------------------------
|
8
|
+
require 'ziya/gauges/support/radial_base'
|
9
|
+
|
10
|
+
module Ziya::Gauges::Support
|
11
|
+
class RadialNumbers < RadialBase
|
12
|
+
has_attribute :start_num, :end_num,
|
13
|
+
:font, :size, :bold, :width, :height, :align
|
14
|
+
|
15
|
+
# overrides flatten to generate a series of radial tick marksß
|
16
|
+
def flatten( xml )
|
17
|
+
number = start_num
|
18
|
+
i = start_angle
|
19
|
+
while( i <= end_angle ) do
|
20
|
+
angle = deg2rad( i )
|
21
|
+
hash = { :x => (x + Math::sin( angle ) * radius).to_i,
|
22
|
+
:y => (y - Math::cos( angle ) * radius).to_i,
|
23
|
+
:width => width || 20,
|
24
|
+
:height => height || 20,
|
25
|
+
:font => font || "Arial",
|
26
|
+
:size => size || 10,
|
27
|
+
:bold => bold || true,
|
28
|
+
:alpha => alpha,
|
29
|
+
:rotation => i,
|
30
|
+
:align => align || "left",
|
31
|
+
:color => color }
|
32
|
+
xml.text( hash ) do
|
33
|
+
xml.text! number.to_s
|
34
|
+
end
|
35
|
+
i += (end_angle-start_angle)/(ticks-1)
|
36
|
+
number += (end_num-start_num)/(ticks-1)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
# Draws a circle with ticks
|
3
|
+
#
|
4
|
+
# Author:: Fernand Galiana
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
require 'ziya/gauges/support/radial_base'
|
7
|
+
|
8
|
+
module Ziya::Gauges::Support
|
9
|
+
class RadialTicks < RadialBase
|
10
|
+
has_attribute :length, :thickness
|
11
|
+
|
12
|
+
# overrides flatten to generate a series of radial tick marks
|
13
|
+
def flatten( xml )
|
14
|
+
i = start_angle
|
15
|
+
while( i <= end_angle ) do
|
16
|
+
angle = deg2rad( i )
|
17
|
+
hash = { :x1 => (x + Math::sin( angle ) * radius).to_i,
|
18
|
+
:y1 => (y - Math::cos( angle ) * radius).to_i,
|
19
|
+
:x2 => (x + Math::sin( angle ) * (radius + length)).to_i,
|
20
|
+
:y2 => (y - Math::cos( angle ) * (radius + length)).to_i,
|
21
|
+
:thickness => thickness,
|
22
|
+
:color => color }
|
23
|
+
xml.line( hash )
|
24
|
+
i += (end_angle-start_angle)/(ticks-1)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
# Draws a rectangle for a gauge
|
3
|
+
#
|
4
|
+
# Author:: Fernand Galiana
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
require 'ziya/gauges/support/base'
|
7
|
+
|
8
|
+
module Ziya::Gauges::Support
|
9
|
+
class Rect < Base
|
10
|
+
has_attribute :x, :y, :width, :height, :rotation,
|
11
|
+
:fill_color, :fill_alpha, :line_color, :line_alpha,
|
12
|
+
:line_thickness
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# -----------------------------------------------------------------------------
|
2
|
+
# Create an animation to rotate a component
|
3
|
+
#
|
4
|
+
# Author:: Fernand Galiana
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
require 'ziya/gauges/support/base'
|
7
|
+
|
8
|
+
module Ziya::Gauges::Support
|
9
|
+
class Rotate < Base
|
10
|
+
has_attribute :x, :y, :start, :step, :span,
|
11
|
+
:shake_span, :shake_frequency, :shake_snap,
|
12
|
+
:shadow_alpha, :shadow_x_offset, :shadow_y_offset,
|
13
|
+
:components
|
14
|
+
end
|
15
|
+
end
|