JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.6.1
[ckeditor.git] / _source / plugins / stylescombo / plugin.js
index f3ebfd5..086f109 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.html or http://ckeditor.com/license\r
 */\r
 \r
@@ -14,7 +14,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                        var config = editor.config,\r
                                lang = editor.lang.stylesCombo,\r
                                styles = {},\r
-                               stylesList = [];\r
+                               stylesList = [],\r
+                               combo;\r
 \r
                        function loadStylesSet( callback )\r
                        {\r
@@ -26,7 +27,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                                                        styleName;\r
 \r
                                                // Put all styles into an Array.\r
-                                               for ( var i = 0 ; i < stylesDefinitions.length ; i++ )\r
+                                               for ( var i = 0, count = stylesDefinitions.length ; i < count ; i++ )\r
                                                {\r
                                                        var styleDefinition = stylesDefinitions[ i ];\r
 \r
@@ -62,21 +63,24 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
 \r
                                        init : function()\r
                                        {\r
-                                               var combo = this;\r
+                                               combo = this;\r
 \r
                                                loadStylesSet( function()\r
                                                        {\r
-                                                               var style, styleName;\r
+                                                               var style,\r
+                                                                       styleName,\r
+                                                                       lastType,\r
+                                                                       type,\r
+                                                                       i,\r
+                                                                       count;\r
 \r
                                                                // Loop over the Array, adding all items to the\r
                                                                // combo.\r
-                                                               var lastType;\r
-                                                               for ( var i = 0 ; i < stylesList.length ; i++ )\r
+                                                               for ( i = 0, count = stylesList.length ; i < count ; i++ )\r
                                                                {\r
                                                                        style = stylesList[ i ];\r
                                                                        styleName = style._name;\r
-\r
-                                                                       var type = style.type;\r
+                                                                       type = style.type;\r
 \r
                                                                        if ( type != lastType )\r
                                                                        {\r
@@ -92,7 +96,6 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
 \r
                                                                combo.commit();\r
 \r
-                                                               combo.onOpen();\r
                                                        });\r
                                        },\r
 \r
@@ -102,16 +105,10 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                                                editor.fire( 'saveSnapshot' );\r
 \r
                                                var style = styles[ value ],\r
-                                                       selection = editor.getSelection();\r
-\r
-                                               var elementPath = new CKEDITOR.dom.elementPath( selection.getStartElement() );\r
+                                                       selection = editor.getSelection(),\r
+                                                       elementPath = new CKEDITOR.dom.elementPath( selection.getStartElement() );\r
 \r
-                                               if ( style.type == CKEDITOR.STYLE_INLINE && style.checkActive( elementPath ) )\r
-                                                       style.remove( editor.document );\r
-                                               else if ( style.type == CKEDITOR.STYLE_OBJECT && style.checkActive( elementPath ) )\r
-                                                       style.remove( editor.document );\r
-                                               else\r
-                                                       style.apply( editor.document );\r
+                                               style[ style.checkActive( elementPath ) ? 'remove' : 'apply' ]( editor.document );\r
 \r
                                                editor.fire( 'saveSnapshot' );\r
                                        },\r
@@ -120,13 +117,12 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                                        {\r
                                                editor.on( 'selectionChange', function( ev )\r
                                                        {\r
-                                                               var currentValue = this.getValue();\r
-\r
-                                                               var elementPath = ev.data.path,\r
+                                                               var currentValue = this.getValue(),\r
+                                                                       elementPath = ev.data.path,\r
                                                                        elements = elementPath.elements;\r
 \r
                                                                // For each element into the elements path.\r
-                                                               for ( var i = 0, element ; i < elements.length ; i++ )\r
+                                                               for ( var i = 0, count = elements.length, element ; i < count ; i++ )\r
                                                                {\r
                                                                        element = elements[i];\r
 \r
@@ -154,12 +150,11 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                                                if ( CKEDITOR.env.ie || CKEDITOR.env.webkit )\r
                                                        editor.focus();\r
 \r
-                                               var selection = editor.getSelection();\r
+                                               var selection = editor.getSelection(),\r
+                                                       element = selection.getSelectedElement(),\r
+                                                       elementPath = new CKEDITOR.dom.elementPath( element || selection.getStartElement() ),\r
+                                                       counter = [ 0, 0, 0, 0 ];\r
 \r
-                                               var element = selection.getSelectedElement(),\r
-                                                       elementPath = new CKEDITOR.dom.elementPath( element || selection.getStartElement() );\r
-\r
-                                               var counter = [ 0, 0, 0, 0 ];\r
                                                this.showAll();\r
                                                this.unmarkAll();\r
                                                for ( var name in styles )\r
@@ -186,6 +181,22 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
 \r
                                                if ( !counter[ CKEDITOR.STYLE_OBJECT ] )\r
                                                        this.hideGroup( lang[ 'panelTitle' + String( CKEDITOR.STYLE_OBJECT ) ] );\r
+                                       },\r
+\r
+                                       // Force a reload of the data\r
+                                       reset: function()\r
+                                       {\r
+                                               if ( combo )\r
+                                               {\r
+                                                       delete combo._.panel;\r
+                                                       delete combo._.list;\r
+                                                       combo._.committed = 0;\r
+                                                       combo._.items = {};\r
+                                                       combo._.state = CKEDITOR.TRISTATE_OFF;\r
+                                               }\r
+                                               styles = {};\r
+                                               stylesList = [];\r
+                                               loadStylesSet();\r
                                        }\r
                                });\r
 \r