Subversion Repositories Applications.papyrus

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1075 ddelon 1
/*
2
 * FCKeditor - The text editor for internet
3
 * Copyright (C) 2003-2006 Frederico Caldeira Knabben
4
 *
5
 * Licensed under the terms of the GNU Lesser General Public License:
6
 * 		http://www.opensource.org/licenses/lgpl-license.php
7
 *
8
 * For further information visit:
9
 * 		http://www.fckeditor.net/
10
 *
11
 * "Support Open Source software. What about a donation today?"
12
 *
13
 * File Name: fcktoolbarspecialcombo.js
14
 * 	FCKToolbarSpecialCombo Class: This is a "abstract" base class to be used
15
 * 	by the special combo toolbar elements like font name, font size, paragraph format, etc...
16
 *
17
 * 	The following properties and methods must be implemented when inheriting from
18
 * 	this class:
19
 * 		- Property:	CommandName							[ The command name to be executed ]
20
 * 		- Method:	GetLabel()							[ Returns the label ]
21
 * 		-			CreateItems( targetSpecialCombo )	[ Add all items in the special combo ]
22
 *
23
 * File Authors:
24
 * 		Frederico Caldeira Knabben (fredck@fckeditor.net)
25
 */
26
 
27
var FCKToolbarSpecialCombo = function()
28
{
29
	this.SourceView			= false ;
30
	this.ContextSensitive	= true ;
31
}
32
 
33
 
34
function FCKToolbarSpecialCombo_OnSelect( itemId, item )
35
{
36
	FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName ).Execute( itemId, item ) ;
37
}
38
 
39
FCKToolbarSpecialCombo.prototype.Create = function( targetElement )
40
{
41
	this._Combo = new FCKSpecialCombo( this.GetLabel(), this.FieldWidth, this.PanelWidth, this.PanelMaxHeight, FCKBrowserInfo.IsIE ? window : FCKTools.GetElementWindow( targetElement ).parent ) ;
42
 
43
	/*
44
	this._Combo.FieldWidth		= this.FieldWidth		!= null ? this.FieldWidth		: 100 ;
45
	this._Combo.PanelWidth		= this.PanelWidth		!= null ? this.PanelWidth		: 150 ;
46
	this._Combo.PanelMaxHeight	= this.PanelMaxHeight	!= null ? this.PanelMaxHeight	: 150 ;
47
	*/
48
 
49
	//this._Combo.Command.Name = this.Command.Name;
50
//	this._Combo.Label	= this.Label ;
51
	this._Combo.Tooltip	= this.Tooltip ;
52
	this._Combo.Style	= this.Style ;
53
 
54
	this.CreateItems( this._Combo ) ;
55
 
56
	this._Combo.Create( targetElement ) ;
57
 
58
	this._Combo.CommandName = this.CommandName ;
59
 
60
	this._Combo.OnSelect = FCKToolbarSpecialCombo_OnSelect ;
61
}
62
 
63
function FCKToolbarSpecialCombo_RefreshActiveItems( combo, value )
64
{
65
	combo.DeselectAll() ;
66
	combo.SelectItem( value ) ;
67
	combo.SetLabelById( value ) ;
68
}
69
 
70
FCKToolbarSpecialCombo.prototype.RefreshState = function()
71
{
72
	// Gets the actual state.
73
	var eState ;
74
 
75
//	if ( FCK.EditMode == FCK_EDITMODE_SOURCE && ! this.SourceView )
76
//		eState = FCK_TRISTATE_DISABLED ;
77
//	else
78
//	{
79
		var sValue = FCK.ToolbarSet.CurrentInstance.Commands.GetCommand( this.CommandName ).GetState() ;
80
 
81
//		FCKDebug.Output( 'RefreshState of Special Combo "' + this.TypeOf + '" - State: ' + sValue ) ;
82
 
83
		if ( sValue != FCK_TRISTATE_DISABLED )
84
		{
85
			eState = FCK_TRISTATE_ON ;
86
 
87
			if ( this.RefreshActiveItems )
88
				this.RefreshActiveItems( this._Combo, sValue ) ;
89
			else
90
			{
91
				if ( this._LastValue != sValue )
92
				{
93
					this._LastValue = sValue ;
94
					FCKToolbarSpecialCombo_RefreshActiveItems( this._Combo, sValue ) ;
95
				}
96
			}
97
		}
98
		else
99
			eState = FCK_TRISTATE_DISABLED ;
100
//	}
101
 
102
	// If there are no state changes then do nothing and return.
103
	if ( eState == this.State ) return ;
104
 
105
	if ( eState == FCK_TRISTATE_DISABLED )
106
	{
107
		this._Combo.DeselectAll() ;
108
		this._Combo.SetLabel( '' ) ;
109
	}
110
 
111
	// Sets the actual state.
112
	this.State = eState ;
113
 
114
	// Updates the graphical state.
115
	this._Combo.SetEnabled( eState != FCK_TRISTATE_DISABLED ) ;
116
}
117
 
118
FCKToolbarSpecialCombo.prototype.Enable = function()
119
{
120
	this.RefreshState() ;
121
}
122
 
123
FCKToolbarSpecialCombo.prototype.Disable = function()
124
{
125
	this.State = FCK_TRISTATE_DISABLED ;
126
	this._Combo.DeselectAll() ;
127
	this._Combo.SetLabel( '' ) ;
128
	this._Combo.SetEnabled( false ) ;
129
}