summaryrefslogtreecommitdiff
path: root/core/resourcemanager.js
diff options
context:
space:
mode:
Diffstat (limited to 'core/resourcemanager.js')
-rw-r--r--core/resourcemanager.js215
1 files changed, 0 insertions, 215 deletions
diff --git a/core/resourcemanager.js b/core/resourcemanager.js
deleted file mode 100644
index bce061c..0000000
--- a/core/resourcemanager.js
+++ /dev/null
@@ -1,215 +0,0 @@
-/**
- * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.html or http://ckeditor.com/license
- */
-
-/**
- * @fileOverview Defines the {@link CKEDITOR.resourceManager} class, which is
- * the base for resource managers, like plugins.
- */
-
-/**
- * Base class for resource managers, like plugins. This class is not
- * intended to be used out of the CKEditor core code.
- *
- * @class
- * @constructor Creates a resourceManager class instance.
- * @param {String} basePath The path for the resources folder.
- * @param {String} fileName The name used for resource files.
- */
-CKEDITOR.resourceManager = function( basePath, fileName ) {
- /**
- * The base directory containing all resources.
- *
- * @property {String}
- */
- this.basePath = basePath;
-
- /**
- * The name used for resource files.
- *
- * @property {String}
- */
- this.fileName = fileName;
-
- /**
- * Contains references to all resources that have already been registered
- * with {@link #add}.
- */
- this.registered = {};
-
- /**
- * Contains references to all resources that have already been loaded
- * with {@link #load}.
- */
- this.loaded = {};
-
- /**
- * Contains references to all resources that have already been registered
- * with {@link #addExternal}.
- */
- this.externals = {};
-
- /**
- * @private
- */
- this._ = {
- // List of callbacks waiting for plugins to be loaded.
- waitingList: {}
- };
-};
-
-CKEDITOR.resourceManager.prototype = {
- /**
- * Registers a resource.
- *
- * CKEDITOR.plugins.add( 'sample', { ... plugin definition ... } );
- *
- * @param {String} name The resource name.
- * @param {Object} [definition] The resource definition.
- * @see CKEDITOR.pluginDefinition
- */
- add: function( name, definition ) {
- if ( this.registered[ name ] )
- throw '[CKEDITOR.resourceManager.add] The resource name "' + name + '" is already registered.';
-
- var resource = this.registered[ name ] = definition || {};
- resource.name = name;
- resource.path = this.getPath( name );
-
- CKEDITOR.fire( name + CKEDITOR.tools.capitalize( this.fileName ) + 'Ready', resource );
-
- return this.get( name );
- },
-
- /**
- * Gets the definition of a specific resource.
- *
- * var definition = CKEDITOR.plugins.get( 'sample' );
- *
- * @param {String} name The resource name.
- * @returns {Object} The registered object.
- */
- get: function( name ) {
- return this.registered[ name ] || null;
- },
-
- /**
- * Get the folder path for a specific loaded resource.
- *
- * alert( CKEDITOR.plugins.getPath( 'sample' ) ); // '<editor path>/plugins/sample/'
- *
- * @param {String} name The resource name.
- * @returns {String}
- */
- getPath: function( name ) {
- var external = this.externals[ name ];
- return CKEDITOR.getUrl( ( external && external.dir ) || this.basePath + name + '/' );
- },
-
- /**
- * Get the file path for a specific loaded resource.
- *
- * alert( CKEDITOR.plugins.getFilePath( 'sample' ) ); // '<editor path>/plugins/sample/plugin.js'
- *
- * @param {String} name The resource name.
- * @returns {String}
- */
- getFilePath: function( name ) {
- var external = this.externals[ name ];
- return CKEDITOR.getUrl( this.getPath( name ) + ( ( external && ( typeof external.file == 'string' ) ) ? external.file : this.fileName + '.js' ) );
- },
-
- /**
- * Registers one or more resources to be loaded from an external path
- * instead of the core base path.
- *
- * // Loads a plugin from '/myplugin/samples/plugin.js'.
- * CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/' );
- *
- * // Loads a plugin from '/myplugin/samples/my_plugin.js'.
- * CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/', 'my_plugin.js' );
- *
- * // Loads a plugin from '/myplugin/samples/my_plugin.js'.
- * CKEDITOR.plugins.addExternal( 'sample', '/myplugins/sample/my_plugin.js', '' );
- *
- * @param {String} names The resource names, separated by commas.
- * @param {String} path The path of the folder containing the resource.
- * @param {String} [fileName] The resource file name. If not provided, the
- * default name is used. If provided with a empty string, will implicitly indicates that `path` argument
- * is already the full path.
- */
- addExternal: function( names, path, fileName ) {
- names = names.split( ',' );
- for ( var i = 0; i < names.length; i++ ) {
- var name = names[ i ];
-
- this.externals[ name ] = {
- dir: path,
- file: fileName
- };
- }
- },
-
- /**
- * Loads one or more resources.
- *
- * CKEDITOR.plugins.load( 'myplugin', function( plugins ) {
- * alert( plugins[ 'myplugin' ] ); // object
- * } );
- *
- * @param {String/Array} name The name of the resource to load. It may be a
- * string with a single resource name, or an array with several names.
- * @param {Function} callback A function to be called when all resources
- * are loaded. The callback will receive an array containing all loaded names.
- * @param {Object} [scope] The scope object to be used for the callback call.
- */
- load: function( names, callback, scope ) {
- // Ensure that we have an array of names.
- if ( !CKEDITOR.tools.isArray( names ) )
- names = names ? [ names ] : [];
-
- var loaded = this.loaded,
- registered = this.registered,
- urls = [],
- urlsNames = {},
- resources = {};
-
- // Loop through all names.
- for ( var i = 0; i < names.length; i++ ) {
- var name = names[ i ];
-
- if ( !name )
- continue;
-
- // If not available yet.
- if ( !loaded[ name ] && !registered[ name ] ) {
- var url = this.getFilePath( name );
- urls.push( url );
- if ( !( url in urlsNames ) )
- urlsNames[ url ] = [];
- urlsNames[ url ].push( name );
- } else
- resources[ name ] = this.get( name );
- }
-
- CKEDITOR.scriptLoader.load( urls, function( completed, failed ) {
- if ( failed.length ) {
- throw '[CKEDITOR.resourceManager.load] Resource name "' + urlsNames[ failed[ 0 ] ].join( ',' )
- + '" was not found at "' + failed[ 0 ] + '".';
- }
-
- for ( var i = 0; i < completed.length; i++ ) {
- var nameList = urlsNames[ completed[ i ] ];
- for ( var j = 0; j < nameList.length; j++ ) {
- var name = nameList[ j ];
- resources[ name ] = this.get( name );
-
- loaded[ name ] = 1;
- }
- }
-
- callback.call( scope, resources );
- }, this );
- }
-};