|
44 | 44 | this._on({ |
45 | 45 | "mousedown .ui-menu-item > a":function(e){e.preventDefault()}, |
46 | 46 | "click .ui-state-disabled > a":function(e){e.preventDefault()}, |
47 | | - "click .ui-menu-item:has(a)":function(t){var r=e(t.target).closest(".ui-menu-item");!n&&r.not(".ui-state-disabled").length&&(n=!0,this.select(t),r.has(".ui-menu").length?this.expand(t):this.element.is(":focus")||(this.element.trigger("focus",[!0]),this.active&&this.active.parents(".ui-menu").length===1&&clearTimeout(this.timer)))}, |
| 47 | + "click .ui-menu-item:has(a)":function(t){ |
| 48 | + |
| 49 | + |
| 50 | +// BH 12/20/2018 adds persistence for JMenu clicks |
| 51 | + |
| 52 | +if (this.active && this.active[0].attributes.name && this.active[0].attributes.name.value == "javax.swing.JMenu") { |
| 53 | +clearTimeout(this.timer); |
| 54 | +return |
| 55 | +} |
| 56 | + |
| 57 | +var r=e(t.target).closest(".ui-menu-item"); |
| 58 | + |
| 59 | +!n&&r.not(".ui-state-disabled").length&&(n=!0,this.select(t),r.has(".ui-menu").length?this.expand(t):this.element.is(":focus")||(this.element.trigger("focus",[!0]),this.active&&this.active.parents(".ui-menu").length===1&&clearTimeout(this.timer))) |
| 60 | + |
| 61 | +; $(".ui-menu").hide(); |
| 62 | + |
| 63 | + |
| 64 | + |
| 65 | +}, |
48 | 66 | "mouseenter .ui-menu-item":function(t){var n=e(t.currentTarget);n.siblings().children(".ui-state-active").removeClass("ui-state-active"),this.focus(t,n)}, |
49 | 67 | mouseleave:"collapseAll", |
50 | 68 | "mouseleave .ui-menu": "collapseAll", |
|
72 | 90 | .data("ui-menu-submenu-carat",!0); |
73 | 91 | r.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",r.attr("id"))}),t=r.add(this.element),t.children(":not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","presentation").children("a").uniqueId().addClass("ui-corner-all").attr({tabIndex:-1,role:this._itemRole()}),t.children(":not(.ui-menu-item)").each(function(){var t=e(this);/[^\-+�G��G��+�G��G��\s]/.test(t.text())||t.addClass("ui-widget-content ui-menu-divider")}),t.children(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()}, |
74 | 92 | _itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]}, |
75 | | - focus:function(e,t){var n,r;this.blur(e,e&&e.type==="focus"),this._scrollIntoView(t),this.active=t.first(),r=this.active.children("a").addClass("ui-state-focus"),this.options.role&&this.element.attr("aria-activedescendant",r.attr("id")),this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active"),e&&e.type==="keydown"?this._close():this.timer=this._delay(function(){this._close()},this.delay),n=t.children(".ui-menu"),n.length&&/^mouse/.test(e.type)&&this._startOpening(n),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})}, |
| 93 | + focus:function(e,t){var n,r;this.blur(e,e&&e.type==="focus"),this._scrollIntoView(t),this.active=t.first(),r=this.active.children("a").addClass("ui-state-focus"),this.options.role&&this.element.attr("aria-activedescendant",r.attr("id")),this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active"),e&&e.type==="keydown"?this._close(): |
| 94 | +this.timer=this._delay(function(){this._close()},this.delay),n=t.children(".ui-menu"),n.length&&/^mouse/.test(e.type)&&this._startOpening(n),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})}, |
76 | 95 | _scrollIntoView:function(t){var n,r,i,s,o,u;this._hasScroll()&&(n=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,r=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,i=t.offset().top-this.activeMenu.offset().top-n-r,s=this.activeMenu.scrollTop(),o=this.activeMenu.height(),u=t.height(),i<0?this.activeMenu.scrollTop(s+i):i+u>o&&this.activeMenu.scrollTop(s+i-o+u))}, |
77 | 96 | blur:function(e,t){ |
78 | 97 |
|
|
94 | 113 | this.activeMenu=r |
95 | 114 | }, this.delay) |
96 | 115 | }, |
97 | | - _close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")}, |
| 116 | + _close:function(e){ |
| 117 | + |
| 118 | +var e0= e; |
| 119 | +e||(e=this.active?this.active.parent():this.element), |
| 120 | +e.find(".ui-menu") |
| 121 | +.hide() |
| 122 | +.attr("aria-hidden","true") |
| 123 | +.attr("aria-expanded","false") |
| 124 | +.end() |
| 125 | +.find("a.ui-state-active") |
| 126 | +.removeClass("ui-state-active") |
| 127 | + |
| 128 | + |
| 129 | +}, |
98 | 130 | collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))}, |
99 | 131 | expand:function(e){var t=this.active&&this.active.children(".ui-menu ").children(".ui-menu-item").first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))}, |
100 | 132 | next:function(e){this._move("next","first",e)}, |
@@ -158,11 +190,19 @@ var bindMenuActionCommands = function(eventType, menu, isBind) { |
158 | 190 | var children = (menu.uiClassID ? menu.ui.getChildren() : menu.getComponents()); |
159 | 191 | for(var i = children.length; --i >= 0;) |
160 | 192 | bindMenuActionCommands(eventType, children[i], isBind); |
| 193 | + |
| 194 | + |
| 195 | + |
| 196 | + |
161 | 197 | if (!menu.uiClassID || !menu["data-ui"]) |
162 | 198 | return; |
163 | 199 | J2S.$documentOff(eventType, menu.id); |
164 | 200 | if (isBind) |
165 | 201 | J2S.$documentOn(eventType, menu.id, function(event) { |
| 202 | + |
| 203 | + |
| 204 | + |
| 205 | + |
166 | 206 | if (menu.uiClassID) { |
167 | 207 | System.out.println(["menu " + menu.ui.id , " clicked " , event.target.id , event.target.tagName, event.target["data-component"]]); |
168 | 208 | Swing.hideMenus(menu._applet); |
|
0 commit comments