1 |
- (function(){Nokia.Button=Nokia.RoundedCornerWidget.extend({initialize:function(b){var a=this;var c={element:"",label:" ",disabled:false,keeppressed:false,pressed:false,roundedCorners:true,width:"auto",height:"auto",click:function(){},disable:function(){},enable:function(){},press:function(){},unpress:function(){}};a.options=jQuery.extend(c,b);a.element=jQuery(a.options.element);a.label=a.options.label;a.disabled=a.options.disabled;a.pressed=a.options.pressed;a._super.apply(a,[a.options]);a.registerData("button");a.wrappers=[];a._create();a._attachEvents();a.registerVibrationOn([]);a.fireCallback("create")},_attachEvents:function(){var a=this,b=a.options,c=a.element,f=c.parent(),d=a.Styles;var e=function(g){if(a.disabled){return false}Nokia.util.addClass(c[0],d.stateHighlight);Nokia.util.addBorderClass(f,d.nokiaStateHighlight);setTimeout(function(){Nokia.util.removeClass(c[0],d.stateHighlight);Nokia.util.removeBorderClass(f,d.nokiaStateHighlight)},200);if(b.keeppressed){if(a.pressed){a.unpress()}else{a.press()}}a.fireCallback("click",g);return false};f.bind("click",e);Nokia.util.bindEnter(f,e);f.hover(function(){if(a.disabled){return}Nokia.util.addBorderClass(f,d.nokiaStateHover);Nokia.util.addClass(c[0],d.stateHover);if(a.pressed){Nokia.util.removeClass(c[0],d.stateActive);Nokia.util.removeBorderClass(f,d.nokiaStateActive)}a.fireCallback("focus")},function(){Nokia.util.removeBorderClass(f,d.nokiaStateHover);Nokia.util.removeClass(c[0],d.stateHover);if(a.pressed){Nokia.util.addClass(c[0],d.stateActive);Nokia.util.addBorderClass(f,d.nokiaStateActive)}a.fireCallback("unfocus")})},_clear:function(){var a=this;a.element.unbind("click");a.element.unbind("mouseup");a.element.unbind("mousedown")},_create:function(){var b=this;var c=b.options;var d=b.element;var f=b.Styles;var e=c.width;var a=c.height;jQuery.each(d,function(h,j){var g=j.className;var k=Nokia.dom.parseHTML('<a href="javascript:void(0);" class="'+f.nokiaButton+'"></a>');Nokia.dom.wrap(k,j);b.wrappers.push(jQuery(j).parents("div:first"));j.className=[f.nokiaButtonElement,g,f.stateDefault].join(" ");j.innerHTML=c.label;k.width(e);d.height(a);if(c.roundedCorners){Nokia.util.applyRoundedCorners(j)}if(c.disabled){Nokia.util.addClass(j,f.stateDisabled);Nokia.util.addBorderClass(k,f.nokiaStateDisabled)}if(c.pressed){b.press()}Nokia.util.disableSelection(j)})},_changeBorderColors:function(f,e){var a=this;var c=a.element;var h=c.parent();var d=a.Styles;var g=h.find(".nokia-border-top");var b=h.find(".nokia-border-bottom");if(f){Nokia.util.addClass(g[0],e);Nokia.util.addClass(b[0],e)}else{Nokia.util.removeClass(g[0],e);Nokia.util.removeClass(b[0],e)}},_setState:function(e,f){var a=this;var d=a.Styles;var c=a.element;var h=a.element.parent();var g=e=="press"?d.stateActive:d.stateDisabled;var b=e=="press"?d.nokiaStateActive:d.nokiaStateDisabled;jQuery.each(c,function(j,k){if(f){Nokia.util.addClass(k,g);Nokia.util.addBorderClass(h,b);if(e=="press"){if(c.hasClass(d.stateHover)){Nokia.util.removeClass(k,g)}a._changeBorderColors(f,d.nokiaStateActive)}}else{Nokia.util.removeClass(k,g);Nokia.util.removeBorderClass(h,b);if(e=="press"){a._changeBorderColors(f,d.nokiaStateActive)}}})},show:function(){var a=this;a.element.parent().show()},hide:function(){var a=this;a.element.parent().hide()},disable:function(){var a=this;a.disabled=true;a._setState("disabled",a.disabled);a.fireCallback("disabled")},enable:function(){var a=this;a.disabled=false;a._setState("disabled",a.disabled);a.fireCallback("enable")},getLabel:function(){var a=this;var b=a.label;return b},press:function(){var a=this;a.pressed=true;a._setState("press",a.pressed);a.fireCallback("press")},setBorderColor:function(b){var a=this;var c=a.element.parent();a._super(c,b)},setLabel:function(b){var a=this;var c=a.element;a.label=b;c.html(b)},unpress:function(){var a=this;a.pressed=false;a._setState("press",a.pressed);a.fireCallback("unpress")},Styles:{nokiaButton:"nokia-button",nokiaButtonElement:"nokia-button-element",nokiaStateDefault:"nokia-border-state-default",nokiaStateDisabled:"nokia-border-state-disabled",nokiaStateActive:"nokia-border-state-active",nokiaStateHighlight:"nokia-border-state-highlight",nokiaStateHover:"nokia-border-state-hover",stateActive:"ui-state-active",stateDisabled:"ui-state-disabled",stateDefault:"ui-state-default",stateHighlight:"ui-state-highlight",stateHover:"ui-state-hover"}})})();
|