| Conditions | 17 |
| Total Lines | 85 |
| Code Lines | 52 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
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:
If many parameters/temporary variables are present:
Complex classes like MultimediaViewerPlugin.js ➔ MultimediaViewerPlugin often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.
Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.
| 1 | /** |
||
| 6 | function MultimediaViewerPlugin() { |
||
| 7 | "use strict"; |
||
| 8 | |||
| 9 | var videoElement = undefined, |
||
|
|
|||
| 10 | videoSource = undefined, |
||
| 11 | self = this; |
||
| 12 | |||
| 13 | this.initialize = function ( viewerElement, documentUrl ) { |
||
| 14 | if ( window.mimetype.indexOf("audio/") === 0 ) { |
||
| 15 | videoElement = document.createElement("audio"); |
||
| 16 | videoElement.setAttribute('poster', 'data:image/png;base64,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'); |
||
| 17 | } else { |
||
| 18 | videoElement = document.createElement("video"); |
||
| 19 | } |
||
| 20 | videoElement.setAttribute('preload', 'auto'); |
||
| 21 | videoElement.setAttribute('id', 'multimedia_viewer'); |
||
| 22 | videoElement.setAttribute('controls', 'controls'); |
||
| 23 | videoElement.setAttribute('class', 'video-js vjs-default-skin'); |
||
| 24 | |||
| 25 | videoSource = document.createElement("source"); |
||
| 26 | videoSource.setAttribute('src', documentUrl); |
||
| 27 | videoSource.setAttribute('type', window.mimetype); |
||
| 28 | videoElement.appendChild(videoSource); |
||
| 29 | |||
| 30 | viewerElement.appendChild(videoElement); |
||
| 31 | viewerElement.style.overflow = "auto"; |
||
| 32 | |||
| 33 | // init viewerjs |
||
| 34 | videojs(document.getElementById('multimedia_viewer'), { |
||
| 35 | controls: 'enabled', |
||
| 36 | techOrder: ['html5'] |
||
| 37 | }, function () { |
||
| 38 | // This is functionally the same as the previous example. |
||
| 39 | }); |
||
| 40 | |||
| 41 | self.onLoad(); |
||
| 42 | }; |
||
| 43 | |||
| 44 | this.isSlideshow = function () { |
||
| 45 | return false; |
||
| 46 | }; |
||
| 47 | |||
| 48 | this.onLoad = function () { |
||
| 49 | }; |
||
| 50 | |||
| 51 | this.fitToWidth = function ( width ) { |
||
| 52 | }; |
||
| 53 | |||
| 54 | this.fitToHeight = function ( height ) { |
||
| 55 | }; |
||
| 56 | |||
| 57 | this.fitToPage = function ( width, height ) { |
||
| 58 | }; |
||
| 59 | |||
| 60 | this.fitSmart = function ( width ) { |
||
| 61 | }; |
||
| 62 | |||
| 63 | this.getZoomLevel = function () { |
||
| 64 | }; |
||
| 65 | |||
| 66 | this.setZoomLevel = function ( value ) { |
||
| 67 | }; |
||
| 68 | |||
| 69 | // return a list of tuples (pagename, pagenode) |
||
| 70 | this.getPages = function () { |
||
| 71 | return [videoElement]; |
||
| 72 | }; |
||
| 73 | |||
| 74 | this.showPage = function ( n ) { |
||
| 75 | // hide middle toolbar |
||
| 76 | document.getElementById('toolbarMiddleContainer').style.visibility = "hidden"; |
||
| 77 | }; |
||
| 78 | |||
| 79 | this.getPluginName = function () { |
||
| 80 | return "MultimediaViewerPlugin"; |
||
| 81 | }; |
||
| 82 | |||
| 83 | this.getPluginVersion = function () { |
||
| 84 | return "From Source"; |
||
| 85 | }; |
||
| 86 | |||
| 87 | this.getPluginURL = function () { |
||
| 88 | return "https://grommunio.com"; |
||
| 89 | }; |
||
| 90 | } |
||
| 91 |