diff --git a/uhr.js b/uhr.js index 158f00f..850f48e 100644 --- a/uhr.js +++ b/uhr.js @@ -34,7 +34,7 @@ along with this program. If not, see . if (name === undefined) { name = styleClass; } - window._uhr.themes.push({'class': styleClass, 'name': name}); + window._uhr.themes.push({'styleClass': styleClass, 'name': name}); } } // fall-back if no theme was included @@ -46,7 +46,7 @@ along with this program. If not, see . width: '100%', status: 'on', language: 'de_CH', - theme: window._uhr.themes[0].class, + theme: window._uhr.themes[0].styleClass, force: false, controls: true }, @@ -248,7 +248,7 @@ along with this program. If not, see . var themeChooser = $(''); for (var i = 0; i < window._uhr.themes.length; i++) { var theme = window._uhr.themes[i]; - themeChooser.append(''); + themeChooser.append(''); } e.after(themeChooser); } @@ -297,14 +297,14 @@ along with this program. If not, see . } var found = false; for (var i = 0; i < window._uhr.themes.length; i++) { - var styleClass = window._uhr.themes[i].class; + var styleClass = window._uhr.themes[i].styleClass; if (selectedTheme == styleClass) { found = true; break; } } if (!found) { - var fallback = window._uhr.themes[0].class; + var fallback = window._uhr.themes[0].styleClass; console.warn("Theme " + selectedTheme + " not found! Using fallback: " + fallback); selectedTheme = fallback; } @@ -313,120 +313,120 @@ along with this program. If not, see . this.theme(selectedTheme); } }); + /** + * Hilfsklasse zum Rendern der Uhr. + * @param layout Layout-Objekt, das gerendert werden soll. + * @param renderarea Das jQuery-gewrappte HTML-Element, auf dem gerendert werden soll. + */ + function UhrRenderer(layout, renderarea) { + this.layout = layout; + this.renderarea = renderarea; + } + UhrRenderer.prototype.render = function(uhr, beforeshow) { + var renderer = this; + if (this.layout._parsed === undefined) { + switch (this.layout.version) { + case 2: + var delegate = new _UhrRendererV2Delegate(this.layout); + this.layout._parsed = delegate.parse(); + break; + default: + console.warn("Unknown layout version: '" + this.layout.version + "'"); + return; + } + } + var letters = this.layout._parsed; + this.renderarea.fadeOut('fast', function() { + renderer.renderarea.empty(); + for (var y = 0; y < letters.length; y++) { + for (var x = 0; x < letters[y].length; x++) { + var letter = letters[y][x]; + renderer.renderarea.append(letter.toString()); + } + if (y < letters.length - 1) { + renderer.renderarea.append('
'); + } + } + if (typeof beforeshow === 'function') { + beforeshow(); + } + renderer.renderarea.fadeIn('fast'); + }); + }; + function _UhrRendererV2Delegate(layout) { + this.layout = layout; + this._parseArrayOrObject = function(letters, styleClass, input) { + if (Array.isArray(input)) { + for (var i = 0; i < input.length; i++) { + this._parseObject(letters, styleClass, input[i]); + } + } else { + this._parseObject(letters, styleClass, input); + } + } + this._parseObject = function(letters, styleClass, object) { + for (var line in object) { + if (object.hasOwnProperty(line)) { + var highlightLetters = object[line]; + for (var i = 0; i < highlightLetters.length; i++) { + var x = highlightLetters[i] - 1; + letters[line - 1][x].addStyle(styleClass); + } + } + } + } + this._parseTimeDefinition = function(letters, styleClass, definition) { + for (var listString in definition) { + if (definition.hasOwnProperty(listString)) { + var array = listString.split(','); + var highlightLetters = definition[listString]; + for (var index = 0; index < array.length; index++) { + this._parseArrayOrObject(letters, styleClass + array[index], highlightLetters); + } + } + } + } + } + _UhrRendererV2Delegate.prototype.parse = function() { + var letters = []; + for (var i = 0; i < this.layout.letters.length; i++) { + var line = []; + var string = this.layout.letters[i]; + for (var c = 0; c < string.length; c++) { + var character = new Letter(string[c]); + line.push(character); + } + letters.push(line); + } + this._parseArrayOrObject(letters, 'on', this.layout.permanent); + this._parseTimeDefinition(letters, 'minute', this.layout.minutes); + this._parseTimeDefinition(letters, 'hour', this.layout.hours); + return letters; + }; + /** + * Ein Buchstabe. Hilfsklasse für den Renderer und Inhalt der Layout-Arrays. + * @param value Der Buchstabe, der Dargestellt werden soll. + * @param style Die CSS-Styleklassen des Buchstabens. + */ + function Letter(value, style) { + this.value = value; + this.style = style || ''; + this.getStyle = function() { + return 'item letter ' + this.style; + }; + this.getValue = function() { + return value; + } + this.addStyle = function(style) { + if (this.style == '') { + this.style = style; + } else { + this.style += ' ' + style; + } + } + } + Letter.prototype.toString = function letterToString() { + return '' + this.getValue() + ''; + }; })(jQuery); -/** - * Hilfsklasse zum Rendern der Uhr. - * @param layout Layout-Objekt, das gerendert werden soll. - * @param renderarea Das jQuery-gewrappte HTML-Element, auf dem gerendert werden soll. - */ -function UhrRenderer(layout, renderarea) { - this.layout = layout; - this.renderarea = renderarea; -} -UhrRenderer.prototype.render = function(uhr, beforeshow) { - var renderer = this; - if (this.layout._parsed === undefined) { - switch (this.layout.version) { - case 2: - var delegate = new _UhrRendererV2Delegate(this.layout); - this.layout._parsed = delegate.parse(); - break; - default: - console.warn("Unknown layout version: '" + this.layout.version + "'"); - return; - } - } - var letters = this.layout._parsed; - this.renderarea.fadeOut('fast', function() { - renderer.renderarea.empty(); - for (var y = 0; y < letters.length; y++) { - for (var x = 0; x < letters[y].length; x++) { - var letter = letters[y][x]; - renderer.renderarea.append(letter.toString()); - } - if (y < letters.length - 1) { - renderer.renderarea.append('
'); - } - } - if (typeof beforeshow === 'function') { - beforeshow(); - } - renderer.renderarea.fadeIn('fast'); - }); -}; -function _UhrRendererV2Delegate(layout) { - this.layout = layout; - this._parseArrayOrObject = function(letters, styleClass, input) { - if (Array.isArray(input)) { - for (var i = 0; i < input.length; i++) { - this._parseObject(letters, styleClass, input[i]); - } - } else { - this._parseObject(letters, styleClass, input); - } - } - this._parseObject = function(letters, styleClass, object) { - for (line in object) { - if (object.hasOwnProperty(line)) { - var highlightLetters = object[line]; - for (var i = 0; i < highlightLetters.length; i++) { - var x = highlightLetters[i] - 1; - letters[line - 1][x].addStyle(styleClass); - } - } - } - } - this._parseTimeDefinition = function(letters, styleClass, definition) { - for (listString in definition) { - if (definition.hasOwnProperty(listString)) { - var array = listString.split(','); - var highlightLetters = definition[listString]; - for (var index = 0; index < array.length; index++) { - this._parseArrayOrObject(letters, styleClass + array[index], highlightLetters); - } - } - } - } -} -_UhrRendererV2Delegate.prototype.parse = function() { - var letters = []; - for (var i = 0; i < this.layout.letters.length; i++) { - var line = []; - var string = this.layout.letters[i]; - for (var c = 0; c < string.length; c++) { - var character = new Letter(string[c]); - line.push(character); - } - letters.push(line); - } - this._parseArrayOrObject(letters, 'on', this.layout.permanent); - this._parseTimeDefinition(letters, 'minute', this.layout.minutes); - this._parseTimeDefinition(letters, 'hour', this.layout.hours); - return letters; -}; -/** - * Ein Buchstabe. Hilfsklasse für den Renderer und Inhalt der Layout-Arrays. - * @param value Der Buchstabe, der Dargestellt werden soll. - * @param style Die CSS-Styleklassen des Buchstabens. - */ -function Letter(value, style) { - this.value = value; - this.style = style || ''; - this.getStyle = function() { - return 'item letter ' + this.style; - }; - this.getValue = function() { - return value; - } - this.addStyle = function(style) { - if (this.style == '') { - this.style = style; - } else { - this.style += ' ' + style; - } - } -} -Letter.prototype.toString = function letterToString() { - return '' + this.getValue() + ''; -};