返回首頁 

Greasy Fork is available in English.

settings-store.user.js

Exalea - Settings Store pour le P.D.O.

Ce script ne doit pas être installé directement. C'est une librairie destinée à être incluse dans d'autres scripts avec la méta-directive // @require https://update.greasyfork.org/scripts/4099/13111/settings-storeuserjs.js

/***  Prototype d'une SettingsStore (Singleton)*/{/***  Constructeur**  @returns {SettingsStore} this Instance courante (permet l'utilisation de méthodes chaînées)*  @constructor**  @author Exalea*/var SettingsStore = function () {/***  Liste des paramètres disponibles (de type SettingEntry)**  @returns {SettingsStore} this Instance courante (permet l'utilisation de méthodes chaînées)**  @author Exalea*/this.entries = {};return this;};/***  Ajout d'un paramètre de type SettingEntry au store**  @param {string} name Nom attribué au paramètre*  @param {SettingEntry} entry Paramètre à ajouter*  @returns {SettingsStore} this Instance courante (permet l'utilisation de méthodes chaînées)**  @author Exalea*/SettingsStore.prototype.addEntry = function (name, entry) {this.entries[name] = entry;return this;};/****  Ajout d'un paramètre via un nom, une clef (identifiant unique) de persistence et une valeur par défaut**  @param {string} name Nom attribué au paramètre*  @param {string} key Clef de persistence du paramètre*  @param {string} defaultValue Valeur par défaut du paramètre*  @returns {SettingsStore} this Instance courante (permet l'utilisation de méthodes chaînées)**  @author Exalea*/SettingsStore.prototype.add = function (name, key, defaultValue) {this.addEntry(name, new SettingEntry(key, defaultValue));return this;};/***  Initialisation (à leur valeur persistée si existante, sinon à leur valeur par défaut) de chacun des paramètres ajoutés au SettingsStore**  @returns {SettingsStore} this Instance courante (permet l'utilisation de méthodes chaînées)**  @author Exalea*/SettingsStore.prototype.init = function () {for (var index in this.entries) {var entry = this.entries[index];if (entry instanceof SettingEntry)entry.init();}return this;};/***  Implémentation du pattern Singleton**  @returns {SettingsStore}*/SettingsStore.getInstance = function () {if (SettingsStore.instance == null)SettingsStore.instance = new SettingsStore();return SettingsStore.instance;};/***  Sucre syntaxique : ajout d'un accès statique aux méthodes du Singleton*/{SettingsStore.addEntry = function (name, entry) {return SettingsStore.getInstance().addEntry(name, entry);};SettingsStore.add = function (name, key, defaultValue) {return SettingsStore.getInstance().add(name, key, defaultValue);};SettingsStore.init = function () {return SettingsStore.getInstance().init();};}}