Changeset 5269


Ignore:
Timestamp:
03/22/10 18:15:36 (5 years ago)
Author:
alfonsoml
Message:

#5290 create a unified editor.getStylesSet

Location:
CKEditor/trunk
Files:
2 added
1 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/trunk/CHANGES.html

    r5265 r5269  
    4444                <li><a href="http://dev.fckeditor.net/ticket/4810">#4810</a> : Adding configuration option for image dialog preview area filling text.</li> 
    4545                <li><a href="http://dev.fckeditor.net/ticket/536">#536</a> : Object style now could be applied on any parent element of current selection.</li> 
     46                <li><a href="http://dev.fckeditor.net/ticket/5290">#5290</a> : Unified stylesSet loading removing dependecies from the styles combo.  
     47                                        Now the configuration entry is named 'config.stylesSet' instead of config.stylesCombo_stylesSet and the default location  
     48                                        is under the 'styles' plugin instead of 'stylescombo'.</li> 
    4649        </ul> 
    4750        <p> 
  • CKEditor/trunk/_source/plugins/div/dialogs/div.js

    r5206 r5269  
    437437                                // Preparing for the 'elementStyle' field. 
    438438                                var dialog = this, 
    439                                          stylesField = this.getContentElement( 'info', 'elementStyle' ), 
    440                                          // Reuse the 'stylescombo' plugin's styles definition. 
    441                                          customStylesConfig =  editor.config.stylesCombo_stylesSet, 
    442                                          stylesSetName = customStylesConfig && customStylesConfig.split( ':' )[ 0 ]; 
    443  
    444                                 if ( stylesSetName ) 
    445                                 { 
    446                                         CKEDITOR.stylesSet.load( stylesSetName, 
    447                                                 function( stylesSet ) 
     439                                         stylesField = this.getContentElement( 'info', 'elementStyle' ); 
     440 
     441                                 // Reuse the 'stylescombo' plugin's styles definition. 
     442                                editor.getStylesSet( function( stylesDefinitions ) 
     443                                { 
     444                                        var styleName; 
     445 
     446                                        if ( stylesDefinitions ) 
     447                                        { 
     448                                                // Digg only those styles that apply to 'div'. 
     449                                                for ( var i = 0 ; i < stylesDefinitions.length ; i++ ) 
    448450                                                { 
    449                                                         var stylesDefinitions = stylesSet[ stylesSetName ], 
    450                                                                 styleName; 
    451  
    452                                                         if ( stylesDefinitions ) 
    453                                                         { 
    454                                                                 // Digg only those styles that apply to 'div'. 
    455                                                                 for ( var i = 0 ; i < stylesDefinitions.length ; i++ ) 
    456                                                                 { 
    457                                                                         var styleDefinition = stylesDefinitions[ i ]; 
    458                                                                         if ( styleDefinition.element && styleDefinition.element == 'div' ) 
    459                                                                         { 
    460                                                                                 styleName = styleDefinition.name; 
    461                                                                                 styles[ styleName ] = new CKEDITOR.style( styleDefinition ); 
    462  
    463                                                                                 // Populate the styles field options with style name. 
    464                                                                                 stylesField.items.push( [ styleName, styleName ] ); 
    465                                                                                 stylesField.add( styleName, styleName ); 
    466                                                                         } 
    467                                                                 } 
     451                                                        var styleDefinition = stylesDefinitions[ i ]; 
     452                                                        if ( styleDefinition.element && styleDefinition.element == 'div' ) 
     453                                                        { 
     454                                                                styleName = styleDefinition.name; 
     455                                                                styles[ styleName ] = new CKEDITOR.style( styleDefinition ); 
     456 
     457                                                                // Populate the styles field options with style name. 
     458                                                                stylesField.items.push( [ styleName, styleName ] ); 
     459                                                                stylesField.add( styleName, styleName ); 
    468460                                                        } 
    469  
    470  
    471                                                         // We should disable the content element 
    472                                                         // it if no options are available at all. 
    473                                                         stylesField[ stylesField.items.length > 1 ? 'enable' : 'disable' ](); 
    474  
    475                                                         // Now setup the field value manually. 
    476                                                         setTimeout( function() { stylesField.setup( dialog._element ); }, 0 ); 
    477                                                 } ); 
    478                                 } 
     461                                                } 
     462                                        } 
     463 
     464                                        // We should disable the content element 
     465                                        // it if no options are available at all. 
     466                                        stylesField[ stylesField.items.length > 1 ? 'enable' : 'disable' ](); 
     467 
     468                                        // Now setup the field value manually. 
     469                                        setTimeout( function() { stylesField.setup( dialog._element ); }, 0 ); 
     470                                } ); 
    479471                        }, 
    480472                        onShow : function() 
  • CKEditor/trunk/_source/plugins/styles/plugin.js

    r5265 r5269  
    211211                        return false; 
    212212                }, 
    213                  
     213 
    214214                checkApplicable : function( elementPath ) 
    215215                { 
     
    13111311                CKEDITOR.stylesSet.load( name, callback ); 
    13121312        }; 
     1313 
     1314 
     1315/** 
     1316 * Gets the current styleSet for this instance 
     1317 * @param {Function} The function to be called with the styles data. 
     1318 * @example 
     1319 * editor.getStylesSet( function( stylesDefinitions ) {} ); 
     1320 */ 
     1321CKEDITOR.editor.prototype.getStylesSet = function( callback ) 
     1322{ 
     1323        if ( !this._.stylesDefinitions ) 
     1324        { 
     1325                var editor = this, 
     1326                        // Respect the backwards compatible definition entry 
     1327                        configStyleSet = editor.config.stylesCombo_stylesSet || editor.config.stylesSet, 
     1328                        partsStylesSet = configStyleSet.split( ':' ), 
     1329                        styleSetName = partsStylesSet[ 0 ], 
     1330                        externalPath = partsStylesSet[ 1 ], 
     1331                        pluginPath = CKEDITOR.plugins.registered.styles.path; 
     1332 
     1333                CKEDITOR.stylesSet.addExternal( styleSetName, 
     1334                                externalPath ? 
     1335                                        partsStylesSet.slice( 1 ).join( ':' ) : 
     1336                                        pluginPath + 'styles/' + styleSetName + '.js', '' ); 
     1337 
     1338 
     1339                CKEDITOR.stylesSet.load( styleSetName, function( stylesSet ) 
     1340                        { 
     1341                                editor._.stylesDefinitions = stylesSet[ styleSetName ]; 
     1342                                callback( editor._.stylesDefinitions ); 
     1343                        } ) ; 
     1344        } 
     1345        else 
     1346                callback( this._.stylesDefinitions ); 
     1347}; 
     1348 
     1349/** 
     1350 * The "styles definition set" to use in the editor. They will be used in the 
     1351 * styles combo and the Style selector of the div container. <br> 
     1352 * The styles may be defined in the page containing the editor, or can be 
     1353 * loaded on demand from an external file. In the second case, if this setting 
     1354 * contains only a name, the styles definition file will be loaded from the 
     1355 * "styles" folder inside the styles plugin folder. 
     1356 * Otherwise, this setting has the "name:url" syntax, making it 
     1357 * possible to set the URL from which loading the styles file.<br> 
     1358 * Previously this setting was available as config.stylesCombo_stylesSet<br> 
     1359 * @type string 
     1360 * @default 'default' 
     1361 * @since 3.3 
     1362 * @example 
     1363 * // Load from the styles' styles folder (mystyles.js file). 
     1364 * config.stylesSet = 'mystyles'; 
     1365 * @example 
     1366 * // Load from a relative URL. 
     1367 * config.stylesSet = 'mystyles:/editorstyles/styles.js'; 
     1368 * @example 
     1369 * // Load from a full URL. 
     1370 * config.stylesSet = 'mystyles:http://www.example.com/editorstyles/styles.js'; 
     1371 */ 
     1372CKEDITOR.config.stylesSet = 'default'; 
  • CKEditor/trunk/_source/plugins/stylescombo/plugin.js

    r5243 r5269  
    66(function() 
    77{ 
    8         var stylesManager; 
    9  
    108        CKEDITOR.plugins.add( 'stylescombo', 
    119        { 
     
    1614                        var config = editor.config, 
    1715                                lang = editor.lang.stylesCombo, 
    18                                 pluginPath = this.path, 
    1916                                styles = {}, 
    2017                                stylesList = []; 
    2118 
    22                         if ( !stylesManager ) 
    23                                 stylesManager = CKEDITOR.stylesSet; 
    24  
    25                         var comboStylesSet = config.stylesCombo_stylesSet.split( ':' ), 
    26                                 styleSetName = comboStylesSet[ 0 ], 
    27                                 externalPath = comboStylesSet[ 1 ]; 
    28  
    29                         stylesManager.addExternal( styleSetName, 
    30                                         externalPath ? 
    31                                                 comboStylesSet.slice( 1 ).join( ':' ) : 
    32                                                 pluginPath + 'styles/' + styleSetName + '.js', '' ); 
    33  
    3419                        function loadStylesSet( callback ) 
    35                    { 
    36                            CKEDITOR.stylesSet.load( styleSetName, function( stylesSet ) 
    37                                    { 
    38                                            if ( !stylesList.length ) 
    39                                            { 
    40                                                    var stylesDefinitions = stylesSet[ styleSetName ], 
    41                                                            style, 
    42                                                            styleName; 
    43  
    44                                                    // Put all styles into an Array. 
    45                                                    for ( var i = 0 ; i < stylesDefinitions.length ; i++ ) 
    46                                                    { 
    47                                                            var styleDefinition = stylesDefinitions[ i ]; 
    48  
    49                                                            styleName = styleDefinition.name; 
    50  
    51                                                            style = styles[ styleName ] = new CKEDITOR.style( styleDefinition ); 
    52                                                            style._name = styleName; 
    53  
    54                                                            stylesList.push( style ); 
    55                                                    } 
    56  
    57                                                    // Sorts the Array, so the styles get grouped 
    58                                                    // by type. 
    59                                                    stylesList.sort( sortStyles ); 
    60                                            } 
    61  
    62                                            callback && callback(); 
    63                                    }); 
    64                    } 
     20                        { 
     21                                editor.getStylesSet( function( stylesDefinitions ) 
     22                                { 
     23                                        if ( !stylesList.length ) 
     24                                        { 
     25                                                var style, 
     26                                                        styleName; 
     27 
     28                                                // Put all styles into an Array. 
     29                                                for ( var i = 0 ; i < stylesDefinitions.length ; i++ ) 
     30                                                { 
     31                                                        var styleDefinition = stylesDefinitions[ i ]; 
     32 
     33                                                        styleName = styleDefinition.name; 
     34 
     35                                                        style = styles[ styleName ] = new CKEDITOR.style( styleDefinition ); 
     36                                                        style._name = styleName; 
     37 
     38                                                        stylesList.push( style ); 
     39                                                } 
     40 
     41                                                // Sorts the Array, so the styles get grouped by type. 
     42                                                stylesList.sort( sortStyles ); 
     43                                        } 
     44 
     45                                        callback && callback(); 
     46                                }); 
     47                        } 
    6548 
    6649                        editor.ui.addRichCombo( 'Styles', 
     
    252235        } 
    253236})(); 
    254  
    255 /** 
    256  * The "styles definition set" to load into the styles combo. The styles may 
    257  * be defined in the page containing the editor, or can be loaded on demand 
    258  * from an external file when opening the styles combo for the fist time. In 
    259  * the second case, if this setting contains only a name, the styles definition 
    260  * file will be loaded from the "styles" folder inside the stylescombo plugin 
    261  * folder. Otherwise, this setting has the "name:url" syntax, making it 
    262  * possible to set the URL from which loading the styles file. 
    263  * @type string 
    264  * @default 'default' 
    265  * @example 
    266  * // Load from the stylescombo styles folder (mystyles.js file). 
    267  * config.stylesCombo_stylesSet = 'mystyles'; 
    268  * @example 
    269  * // Load from a relative URL. 
    270  * config.stylesCombo_stylesSet = 'mystyles:/editorstyles/styles.js'; 
    271  * @example 
    272  * // Load from a full URL. 
    273  * config.stylesCombo_stylesSet = 'mystyles:http://www.example.com/editorstyles/styles.js'; 
    274  */ 
    275 CKEDITOR.config.stylesCombo_stylesSet = 'default'; 
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy