define( function() {
"use strict";
function Control()
{
};
Control.prototype.initialize = function( oControlHost, fnDoneInitializing )
{
this.m_oControlHost = oControlHost;
this.m_sControlName = this.getConfigurationValue( "Control name", "Block1" );
this.m_bVertical = this.getConfigurationValue( "Vertical", false );
fnDoneInitializing();
};
Control.prototype.destroy = function( oControlHost )
{
this.m_oControlHost = null;
};
Control.prototype.getConfigurationValue = function( sName, sDefaultValue )
{
var o = this.m_oControlHost.configuration;
return ( o && ( o[sName] !== undefined ) ) ? o[sName] : sDefaultValue;
};
Control.prototype.draw = function( oControlHost )
{
var elContainer = oControlHost.container;
var sUniqueSelector = 'myDisplayButton_' + elContainer.id;
var sBorderColor = this.getConfigurationValue( "Border color", null );
var sHoverBackgroundColor = this.getConfigurationValue( "Hover background color", null );
var sHoverColor = this.getConfigurationValue( "Hover foreground color", null );
elContainer.innerHTML =
'' +
'';
this.m_btn = elContainer.lastChild;
this.m_btn.onclick = this.onClick.bind( this );
this.updateButton();
};
Control.prototype.onClick = function()
{
this.m_oControlHost.page.getControlByName( this.m_sControlName ).toggleDisplay();
this.updateButton();
};
Control.prototype.updateButton = function()
{
var b = this.m_oControlHost.page.getControlByName( this.m_sControlName ).getDisplay();
this.m_btn.innerHTML = b ? ( this.m_bVertical ? '▼' : '◀' ) : ( this.m_bVertical ? '▲' : '▶' );
this.m_btn.title = b ? 'Hide' : 'Show';
};
return Control;
});