Completed
Push — master ( 743f6e...5e0a7d )
by
unknown
01:39 queued 01:26
created

uiAnimation::getFunctions()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 140
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 140
rs 8.2857
ccs 0
cts 133
cp 0
cc 1
eloc 5
nc 1
nop 0
crap 2

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
namespace eXpansion\Framework\Gui\Components;
4
5
use FML\Controls\Control;
6
use FML\Controls\Frame;
7
use FML\Controls\Label;
8
use FML\Controls\Quad;
9
use FML\Script\Features\ScriptFeature;
10
use FML\Script\Script;
11
use FML\Types\Container;
12
use FML\Types\ScriptFeatureable;
13
14
class uiAnimation extends abstractUiElement implements ScriptFeatureable
15
{
16
17
    protected $element;
18
19
    /**
20
     * uiTooltip constructor.
21
     */
22
    public function __construct()
23
    {
24
25
    }
26
27
    /**
28
     * @param $control
29
     * @param $animations
30
     * @param $duration
31
     * @param $delay
32
     * @param $easing
33
     * @internal param $text
34
     */
35
    public function addAnimation($control, $animations, $duration, $delay, $easing)
36
    {
37
        if ($control instanceof Control) {
38
            $control->addClass("uiAnimation");
39
            $control->addDataAttribute("animate", $animations);
40
            $control->addDataAttribute("duration", $duration);
41
            $control->addDataAttribute("delay", $delay);
42
            $control->addDataAttribute("easing", $easing);
43
        }
44
    }
45
46
    /**
47
     * Prepare the given Script for rendering by adding the needed Labels, etc.
48
     *
49
     * @param Script $script Script to prepare
50
     * @return static
51
     */
52
    public function prepare(Script $script)
53
    {
54
        $script->addScriptFunction("exp_AnimationFunctions", $this->getFunctions());
55
    }
56
57
58
    public function getFunctions()
59
    {
60
61
        return /** @lang textmate */
62
            <<<EOL
63
            CAnimManager::EAnimManagerEasing convertEasing(Text text) {
64
	switch (text) {
65
		case "QuadIn":  {
66
						return  CAnimManager::EAnimManagerEasing::QuadIn;
67
						}
68
		case "QuadOut":  {
69
						return  CAnimManager::EAnimManagerEasing::QuadOut;
70
						}		
71
		case "QuadInOut":  {
72
						return  CAnimManager::EAnimManagerEasing::QuadInOut;
73
						}
74
		case "CubicIn":  {
75
						return  CAnimManager::EAnimManagerEasing::CubicIn;
76
						}
77
		case "CubicOut":  {
78
						return  CAnimManager::EAnimManagerEasing::CubicOut;
79
						}		
80
		case "CubicInOut":  {
81
						return  CAnimManager::EAnimManagerEasing::CubicInOut;
82
						}
83
			case "QuartIn":  {
84
						return  CAnimManager::EAnimManagerEasing::QuartIn;
85
						}
86
		case "QuartOut":  {
87
						return  CAnimManager::EAnimManagerEasing::QuartOut;
88
						}		
89
		case "QuartInOut":  {
90
						return  CAnimManager::EAnimManagerEasing::QuartInOut;
91
						}
92
		case "QuintIn":  {
93
						return  CAnimManager::EAnimManagerEasing::QuintIn;
94
						}
95
		case "QuintOut":  {
96
						return  CAnimManager::EAnimManagerEasing::QuintOut;
97
						}		
98
		case "QuintInOut":  {
99
						return  CAnimManager::EAnimManagerEasing::QuintInOut;
100
		}
101
		case "QuintIn":  {
102
						return  CAnimManager::EAnimManagerEasing::QuintIn;
103
						}
104
		case "QuintOut":  {
105
						return  CAnimManager::EAnimManagerEasing::QuintOut;
106
						}		
107
		case "QuintInOut":  {
108
						return  CAnimManager::EAnimManagerEasing::QuintInOut;
109
			}	
110
		case "SineIn":  {
111
						return  CAnimManager::EAnimManagerEasing::SineIn;
112
						}
113
		case "SineOut":  {
114
						return  CAnimManager::EAnimManagerEasing::SineOut;
115
						}		
116
		case "SineInOut":  {
117
						return  CAnimManager::EAnimManagerEasing::SineInOut;
118
			}			 
119
		case "ExpIn":  {
120
						return  CAnimManager::EAnimManagerEasing::ExpIn;
121
						}
122
		case "ExpOut":  {
123
						return  CAnimManager::EAnimManagerEasing::ExpOut;
124
						}		
125
		case "ExpInOut":  {
126
						return  CAnimManager::EAnimManagerEasing::ExpInOut;
127
		}		
128
129
		case "CircIn":  {
130
						return  CAnimManager::EAnimManagerEasing::CircIn;
131
						}
132
		case "CircOut":  {
133
						return  CAnimManager::EAnimManagerEasing::CircOut;
134
						}		
135
		case "CircInOut":  {
136
						return  CAnimManager::EAnimManagerEasing::CircInOut;
137
		}		
138
		case "BackOut":  {
139
						return  CAnimManager::EAnimManagerEasing::BackOut;
140
						}
141
		case "BackIn":  {
142
						return  CAnimManager::EAnimManagerEasing::BackIn;
143
		}		
144
		case "BackInOut":  {
145
						return  CAnimManager::EAnimManagerEasing::BackInOut;
146
		}		
147
		case "ElasticIn": {
148
						return  CAnimManager::EAnimManagerEasing::ElasticIn;
149
		}
150
		case "ElasticOut": {
151
						return  CAnimManager::EAnimManagerEasing::ElasticOut;
152
		}
153
		case "ElasticInOut": {
154
						return  CAnimManager::EAnimManagerEasing::ElasticInOut;
155
		}
156
		case "ElasticIn2": {
157
						return  CAnimManager::EAnimManagerEasing::ElasticIn2;
158
		}
159
		case "ElasticOut2": {
160
						return  CAnimManager::EAnimManagerEasing::ElasticOut2;
161
		}
162
		case "ElasticInOut2": {
163
						return  CAnimManager::EAnimManagerEasing::ElasticInOut2;
164
		}		
165
		case "BounceIn": {
166
						return  CAnimManager::EAnimManagerEasing::BounceIn;
167
		}
168
		case "BounceOut": {
169
						return  CAnimManager::EAnimManagerEasing::BounceOut;
170
		}
171
		case "BounceInOut": {
172
						return  CAnimManager::EAnimManagerEasing::BounceInOut;
173
		}
174
		
175
	}
176
	return CAnimManager::EAnimManagerEasing::Linear;
177
}
178
179
       ***FML_OnInit***
180
       ***
181
            declare Boolean doAnimation = True;
182
	
183
	        if (doAnimation) {
184
			Page.GetClassChildren ("uiAnimation", Page.MainFrame, True);
185
			foreach (control in Page.GetClassChildren_Result) {
186
				declare Text xmlString = "<elem " ^ TextLib::ReplaceChars(control.DataAttributeGet("animate"), "'", "\"") ^ "/>";
187
				declare Integer duration = TextLib::ToInteger(control.DataAttributeGet("duration"));
188
				declare Integer delay = TextLib::ToInteger(control.DataAttributeGet("delay"));
189
				declare Text easing = control.DataAttributeGet("easing");
190
				 AnimMgr.Add(control, xmlString, Now + delay, duration, convertEasing(easing));	
191
			}
192
		}
193
194
       ***                         
195
EOL;
196
197
    }
198
199
200
    /**
201
     * Get the Script Features
202
     *
203
     * @return ScriptFeature[]
204
     */
205
    public function getScriptFeatures()
206
    {
207
        return ScriptFeature::collect($this);
208
    }
209
210
    /**
211
     * Render the XML element
212
     *
213
     * @param \DOMDocument $domDocument DOMDocument for which the XML element should be rendered
214
     * @return \DOMElement
215
     */
216
    public function render(\DOMDocument $domDocument)
217
    {
218
        $quad = new Quad();
219
        $quad->setVisible(false);
220
        return $quad->render($domDocument);
221
    }
222
}
223