![JAR search and dependency download from the Maven repository](/logo.png)
rwt.widgets.Button.js Maven / Gradle / Ivy
/*******************************************************************************
* Copyright (c) 2009, 2015 EclipseSource and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* EclipseSource - initial API and implementation
******************************************************************************/
rwt.qx.Class.define( "rwt.widgets.Button", {
extend : rwt.widgets.base.BasicButton,
construct : function( buttonType ) {
this.base( arguments, buttonType );
this._alignment = buttonType === "arrow" ? "up" : "center";
switch( buttonType ) {
case "arrow":
this.addState( "rwt_UP" );
this.setAppearance( "push-button" );
break;
case "push":
case "toggle":
this.setAppearance( "push-button" );
break;
case "check":
this.setAppearance( "check-box" );
break;
case "radio":
this.setAppearance( "radio-button" );
}
this.initTabIndex();
this._rawText = null;
this._mnemonicIndex = null;
this._markupEnabled = false;
},
destruct : function() {
this.setMnemonicIndex( null );
},
properties : {
tabIndex : {
refine : true,
init : 1
}
},
members : {
setMarkupEnabled : function( value ) {
this._markupEnabled = value;
},
setText : function( value ) {
this._rawText = value;
this._mnemonicIndex = null;
this._applyText( false );
this.dispatchSimpleEvent( "changeText", this ); // used by Synchronizer.js
},
setMnemonicIndex : function( value ) {
this._mnemonicIndex = value;
var mnemonicHandler = rwt.widgets.util.MnemonicHandler.getInstance();
if( ( typeof value === "number" ) && ( value >= 0 ) ) {
mnemonicHandler.add( this, this._onMnemonic );
} else {
mnemonicHandler.remove( this );
}
},
getMnemonicIndex : function() {
return this._mnemonicIndex;
},
setAlignment : function( value ) {
if( this.hasState( "rwt_ARROW" ) ) {
this.removeState( "rwt_" + this._alignment.toUpperCase() );
this.addState( "rwt_" + value.toUpperCase() );
} else {
this.setHorizontalChildrenAlign( value );
}
this._alignment = value;
},
setWrap : function( value ) {
if( value ) {
this.setFlexibleCell( 2 );
this.setWordWrap( true );
}
},
getToolTipTargetBounds : function() {
if( this.getSelectionIndicator() ) {
var styleTop = parseInt( this.getCellNode( 0 ).style.top, 10 );
return {
"left" : this._cachedBorderLeft + this.getPaddingLeft(),
"top" : this._cachedBorderTop + styleTop,
"width" : this.getSelectionIndicator()[ 1 ],
"height" : this.getSelectionIndicator()[ 2 ]
};
} else {
return {
"left" : 0,
"top" : 0,
"width" : this.getBoxWidth(),
"height" : this.getBoxHeight()
};
}
},
computeBadgePosition : function() {
return [ -3, -5, "auto", "auto" ];
},
_onMnemonic : function( event ) {
switch( event.type ) {
case "show":
this._applyText( true );
break;
case "hide":
this._applyText( false );
break;
case "trigger":
var charCode = this._rawText.toUpperCase().charCodeAt( this._mnemonicIndex );
if( event.charCode === charCode ) {
this.setFocused( true );
this.execute();
event.success = true;
}
break;
}
},
_applyText : function( mnemonic ) {
var EncodingUtil = rwt.util.Encoding;
if( this._rawText ) {
var text = this._rawText;
if( !this._markupEnabled ) {
var mnemonicIndex = mnemonic ? this._mnemonicIndex : undefined;
text = EncodingUtil.escapeText( this._rawText, mnemonicIndex );
text = EncodingUtil.replaceNewLines( text, "
" );
}
this.setCellContent( 2, text );
} else {
this.setCellContent( 2, null );
}
},
//overwritten:
_applyEnabled : function( value ) {
this.base( arguments, value );
if( this._mnemonicIndex !== null && !value ) {
this._applyText( false );
}
},
//overwritten:
_afterRenderLayout : function() {
if( this.getFocused() ) {
this._showFocusIndicator();
}
},
_ontabfocus : function() {
this._showFocusIndicator();
},
_showFocusIndicator : function() {
if( !rwt.widgets.util.FocusHandler.mouseFocus ) {
var focusIndicator = rwt.widgets.util.FocusIndicator.getInstance();
var node = this.getCellNode( 2 ) != null ? this.getCellNode( 2 ) : this.getCellNode( 1 );
focusIndicator.show( this, "Button-FocusIndicator", node );
}
},
_visualizeBlur : function() {
this.base( arguments );
rwt.widgets.util.FocusIndicator.getInstance().hide( this );
},
// overwritten:
_notifySelected : function() {
rwt.remote.EventUtil.notifySelected( this );
}
}
} );
© 2015 - 2025 Weber Informatics LLC | Privacy Policy