GIF89a;
Direktori : /home/serb/public_html/fckeditor/editor/_source/classes/ |
Current File : /home/serb/public_html/fckeditor/editor/_source/classes/fcktoolbarcombo.js |
/* * FCKeditor - The text editor for internet * Copyright (C) 2003-2004 Frederico Caldeira Knabben * * Licensed under the terms of the GNU Lesser General Public License: * http://www.opensource.org/licenses/lgpl-license.php * * For further information visit: * http://www.fckeditor.net/ * * File Name: fcktoolbarcombo.js * FCKToolbarCombo Class: represents a combo in the toolbar. * * Version: 2.0 RC3 * Modified: 2004-11-10 17:14:48 * * File Authors: * Frederico Caldeira Knabben (fredck@fckeditor.net) */ var FCKToolbarCombo = function( commandName, label, itemsValues, itemsNames, tooltip, style, firstIsBlank, itemsSeparator, sourceView ) { this.Command = FCKCommands.GetCommand( commandName ) ; this.Label = label ? label : commandName ; this.Tooltip = tooltip ? tooltip : ( label ? label : commandName) ; this.Style = style ? style : FCK_TOOLBARITEM_ICONTEXT ; this.SourceView = sourceView ? true : false ; this.State = FCK_UNKNOWN ; this.ItemsValues = itemsValues ; this.ItemsNames = itemsNames ? itemsNames : itemsValues ; this.ItemsSeparator = itemsSeparator ? itemsSeparator : ';' ; this.FirstIsBlank = firstIsBlank != null ? firstIsBlank : true ; } FCKToolbarCombo.prototype.CreateInstance = function( parentToolbar ) { /* <td class="TB_Combo_Disabled" unselectable="on"> <table class="ButtonType_IconText" cellspacing="0" cellpadding="0" border="0"> <tr> <td class="TB_Text" unselectable="on">Style</td> <td><select title="Style"><option>Style 1</option><option>Style 2</option></select></td> </tr> </table> </td> */ this.DOMDiv = document.createElement( 'div' ) ; this.DOMDiv.className = 'TB_Combo_Off' ; // Gets the correct CSS class to use for the specified style (param). var sClass ; switch ( this.Style ) { case FCK_TOOLBARITEM_ONLYICON : sClass = 'TB_ButtonType_Icon' ; break ; case FCK_TOOLBARITEM_ONLYTEXT : sClass = 'TB_ButtonType_Text' ; break ; case FCK_TOOLBARITEM_ICONTEXT : sClass = '' ; break ; } this.DOMDiv.innerHTML = '<table class="' + sClass + '" cellspacing="0" cellpadding="0" border="0" unselectable="on">' + '<tr>' + '<td class="TB_Text" unselectable="on" nowrap>' + this.Label + '</td>' + '<td unselectable="on"><select title="' + this.Tooltip + '"></select></td>' + '</tr>' + '</table>' ; // Gets the SELECT element. this.SelectElement = this.DOMDiv.firstChild.firstChild.firstChild.childNodes.item(1).firstChild ; this.SelectElement.FCKToolbarCombo = this ; this.SelectElement.onchange = function() { this.FCKToolbarCombo.Command.Execute( this.value ) ; return false ; } var oCell = parentToolbar.DOMRow.insertCell(-1) ; oCell.appendChild( this.DOMDiv ) ; // Loads all combo items. this.RefreshItems() ; // Sets its initial state (probably disabled). this.RefreshState() ; } FCKToolbarCombo.prototype.RefreshItems = function() { // Create the empty arrays of items to add (names and values) var aNames = FCKTools.GetResultingArray( this.ItemsNames, this.ItemsSeparator ) ; var aValues = FCKTools.GetResultingArray( this.ItemsValues, this.ItemsSeparator ) ; // Clean up the combo. FCKTools.RemoveAllSelectOptions( this.SelectElement ) ; // Verifies if the first item in the combo must be blank. if ( this.FirstIsBlank ) FCKTools.AddSelectOption( document, this.SelectElement, '', '' ) ; // Add all items to the combo. for ( var i = 0 ; i < aValues.length ; i++ ) { FCKTools.AddSelectOption( document, this.SelectElement, aNames[i], aValues[i] ) ; } } FCKToolbarCombo.prototype.RefreshState = function() { // Gets the actual state. var eState ; if ( FCK.EditMode == FCK_EDITMODE_SOURCE && ! this.SourceView ) { eState = FCK_TRISTATE_DISABLED ; // Cleans the actual selection. this.SelectElement.value = '' ; } else { var sValue = this.Command.GetState() ; // Sets the combo value. FCKTools.SelectNoCase( this.SelectElement, sValue ? sValue : '', '' ) ; // Gets the actual state. eState = sValue == null ? FCK_TRISTATE_DISABLED : FCK_TRISTATE_ON ; } // If there are no state changes then do nothing and return. if ( eState == this.State ) return ; // Sets the actual state. this.State = eState ; // Updates the graphical state. this.DOMDiv.className = ( eState == FCK_TRISTATE_ON ? 'TB_Combo_Off' : 'TB_Combo_Disabled' ) ; this.SelectElement.disabled = ( eState == FCK_TRISTATE_DISABLED ) ; }