package gov.va.med.edp.widget { import mx.controls.PopUpButton; import flash.events.MouseEvent; import mx.controls.PopUpMenuButton; import mx.core.mx_internal; use namespace mx_internal; /** * This class contains a workaround for the default behavior of PopUpMenuButton which is to fire an itemClick event * when a click event occurs on the main button. PopUpMenuButton doesn't respect preventDefault on the click event * object, so we override default behavior by setting openAlways to true and only firing itemClicks on normal menu * selections by making parent class think that all clicks are above the arrow button. */ public class OpenAlwaysPopUpMenuButton extends PopUpMenuButton { public function OpenAlwaysPopUpMenuButton() { super(); super.openAlways = true; } public override function set openAlways(b:Boolean):void { // NOOP } mx_internal override function overArrowButton(event:MouseEvent):Boolean { return true; } } }