Вход Регистрация
Файл: fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js
Строк: 111
<?php

/*
 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
 * Copyright (C) 2003-2008 Frederico Caldeira Knabben
 *
 * == BEGIN LICENSE ==
 *
 * Licensed under the terms of any of the following licenses at your
 * choice:
 *
 *  - GNU General Public License Version 2 or later (the "GPL")
 *    http://www.gnu.org/licenses/gpl.html
 *
 *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
 *    http://www.gnu.org/licenses/lgpl.html
 *
 *  - Mozilla Public License Version 1.1 or later (the "MPL")
 *    http://www.mozilla.org/MPL/MPL-1.1.html
 *
 * == END LICENSE ==
 *
 * FCKToolbarSpecialCombo Class: This is a "abstract" base class to be used
 * by the special combo toolbar elements like font name, font size, paragraph format, etc...
 *
 * The following properties and methods must be implemented when inheriting from
 * this class:
 *     - Property:    CommandName                            [ The command name to be executed ]
 *     - Method:    GetLabel()                            [ Returns the label ]
 *     -            CreateItems( targetSpecialCombo )    [ Add all items in the special combo ]
 */

var FCKToolbarSpecialCombo = function()
{
    
this.SourceView            = false ;
    
this.ContextSensitive    = true ;
    
this.FieldWidth            = null ;
    
this.PanelWidth            = null ;
    
this.PanelMaxHeight        = null ;
    
//this._LastValue            = null ;
}


FCKToolbarSpecialCombo.prototype.DefaultLabel = '' ;

function 
FCKToolbarSpecialCombo_OnSelect( itemId, item )
{
    
FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName ).Execute( itemId, item ) ;
}

FCKToolbarSpecialCombo.prototype.Create = function( targetElement )
{
    
this._Combo = new FCKSpecialCombo( this.GetLabel(), this.FieldWidth, this.PanelWidth, this.PanelMaxHeight, FCKBrowserInfo.IsIE ? window : FCKTools.GetElementWindow( targetElement ).parent ) ;

    
/*
    this._Combo.FieldWidth        = this.FieldWidth        != null ? this.FieldWidth        : 100 ;
    this._Combo.PanelWidth        = this.PanelWidth        != null ? this.PanelWidth        : 150 ;
    this._Combo.PanelMaxHeight    = this.PanelMaxHeight    != null ? this.PanelMaxHeight    : 150 ;
    */

    //this._Combo.Command.Name = this.Command.Name;
//    this._Combo.Label    = this.Label ;
    
this._Combo.Tooltip    = this.Tooltip ;
    
this._Combo.Style    = this.Style ;

    
this.CreateItems( this._Combo ) ;

    
this._Combo.Create( targetElement ) ;

    
this._Combo.CommandName = this.CommandName ;

    
this._Combo.OnSelect = FCKToolbarSpecialCombo_OnSelect ;
}

function 
FCKToolbarSpecialCombo_RefreshActiveItems( combo, value )
{
    
combo.DeselectAll() ;
    
combo.SelectItem( value ) ;
    
combo.SetLabelById( value ) ;
}

FCKToolbarSpecialCombo.prototype.RefreshState = function()
{
    
// Gets the actual state.
    
var eState ;

//    if ( FCK.EditMode == FCK_EDITMODE_SOURCE && ! this.SourceView )
//        eState = FCK_TRISTATE_DISABLED ;
//    else
//    {
        
var sValue = FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName ).GetState() ;

//        FCKDebug.Output( 'RefreshState of Special Combo "' + this.TypeOf + '" - State: ' + sValue ) ;

        
if ( sValue != FCK_TRISTATE_DISABLED )
        {
            
eState = FCK_TRISTATE_ON ;

            if ( 
this.RefreshActiveItems )
                
this.RefreshActiveItems( this._Combo, sValue ) ;
            else
            {
                if ( 
this._LastValue !== sValue)
                {
                    
this._LastValue = sValue ;

                    if ( !
sValue || sValue.length == 0 )
                    {
                        
this._Combo.DeselectAll() ;
                        
this._Combo.SetLabel( this.DefaultLabel ) ;
                    }
                    else
                        
FCKToolbarSpecialCombo_RefreshActiveItems( this._Combo, sValue ) ;
                }
            }
        }
        else
            
eState = FCK_TRISTATE_DISABLED ;
//    }

    // If there are no state changes then do nothing and return.
    
if ( eState == this.State ) return ;

    if ( 
eState == FCK_TRISTATE_DISABLED )
    {
        
this._Combo.DeselectAll() ;
        
this._Combo.SetLabel( '' ) ;
    }

    
// Sets the actual state.
    
this.State = eState ;

    
// Updates the graphical state.
    
this._Combo.SetEnabled( eState != FCK_TRISTATE_DISABLED ) ;
}

FCKToolbarSpecialCombo.prototype.Enable = function()
{
    
this.RefreshState() ;
}

FCKToolbarSpecialCombo.prototype.Disable = function()
{
    
this.State = FCK_TRISTATE_DISABLED ;
    
this._Combo.DeselectAll() ;
    
this._Combo.SetLabel( '' ) ;
    
this._Combo.SetEnabled( false ) ;
}
?>
Онлайн: 2
Реклама