1 Clazz.declarePackage ("javax.swing");
\r
2 Clazz.load (["java.awt.Panel", "javax.swing.Popup", "$.SwingHeavyWeight", "java.awt.BorderLayout"], "javax.swing.PopupFactory", ["java.lang.Boolean", "$.IllegalArgumentException", "java.util.ArrayList", "$.HashMap", "java.applet.Applet", "java.awt.Container", "$.Insets", "$.Rectangle", "$.Toolkit", "$.Window", "java.awt.event.WindowAdapter", "javax.swing.ClientPropertyKey", "$.JApplet", "$.JComponent", "$.JDialog", "$.JFrame", "$.JLayeredPane", "$.JPanel", "$.JPopupMenu", "$.JRootPane", "$.JSeparator", "$.JToolTip", "$.JWindow", "$.MenuElement", "javax.swing.Popup.DefaultFrame", "$.HeavyWeightWindow", "javax.swing.RootPaneContainer", "$.SwingUtilities"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
5 Clazz.instantialize (this, arguments);
\r
6 }, javax.swing, "PopupFactory");
\r
7 c$.setSharedInstance = Clazz.defineMethod (c$, "setSharedInstance",
\r
9 if (factory == null) {
\r
10 throw new IllegalArgumentException ("PopupFactory can not be null");
\r
11 }javax.swing.SwingUtilities.appContextPut (javax.swing.PopupFactory.SharedInstanceKey, factory);
\r
12 }, "javax.swing.PopupFactory");
\r
13 c$.getSharedInstance = Clazz.defineMethod (c$, "getSharedInstance",
\r
15 var factory = javax.swing.SwingUtilities.appContextGet (javax.swing.PopupFactory.SharedInstanceKey);
\r
16 if (factory == null) {
\r
17 factory = new javax.swing.PopupFactory ();
\r
18 javax.swing.PopupFactory.setSharedInstance (factory);
\r
21 Clazz.defineMethod (c$, "setPopupType",
\r
23 this.popupType = type;
\r
25 Clazz.defineMethod (c$, "getPopupType",
\r
27 return this.popupType;
\r
29 Clazz.defineMethod (c$, "getPopup",
\r
30 function (owner, contents, x, y) {
\r
31 if (contents == null) {
\r
32 throw new IllegalArgumentException ("Popup.getPopup must be passed non-null contents");
\r
33 }var popupType = this.getPopupType (owner, contents, x, y);
\r
34 var popup = this.getPopup (owner, contents, x, y, popupType);
\r
35 if (popup == null) {
\r
36 popup = this.getPopup (owner, contents, x, y, 2);
\r
38 }, "java.awt.Component,java.awt.Component,~N,~N");
\r
39 Clazz.defineMethod (c$, "getPopupType",
\r
40 function (owner, contents, ownerX, ownerY) {
\r
41 var popupType = this.getPopupType ();
\r
42 if (owner == null || this.invokerInHeavyWeightPopup (owner)) {
\r
44 } else if (popupType == 0 && !(Clazz.instanceOf (contents, javax.swing.JToolTip)) && !(Clazz.instanceOf (contents, javax.swing.JPopupMenu))) {
\r
48 if (Clazz.instanceOf (c, javax.swing.JComponent)) {
\r
49 if ((c).getClientProperty (javax.swing.ClientPropertyKey.PopupFactory_FORCE_HEAVYWEIGHT_POPUP) === Boolean.TRUE) {
\r
52 }}c = c.getParent ();
\r
55 }, "java.awt.Component,java.awt.Component,~N,~N");
\r
56 Clazz.defineMethod (c$, "getPopup",
\r
57 function (owner, contents, ownerX, ownerY, popupType) {
\r
58 switch (popupType) {
\r
60 return this.getLightWeightPopup (owner, contents, ownerX, ownerY);
\r
62 return this.getMediumWeightPopup (owner, contents, ownerX, ownerY);
\r
64 return this.getHeavyWeightPopup (owner, contents, ownerX, ownerY);
\r
67 }, "java.awt.Component,java.awt.Component,~N,~N,~N");
\r
68 Clazz.defineMethod (c$, "getLightWeightPopup",
\r
69 function (owner, contents, ownerX, ownerY) {
\r
70 return javax.swing.PopupFactory.LightWeightPopup.getLightWeightPopup (owner, contents, ownerX, ownerY);
\r
71 }, "java.awt.Component,java.awt.Component,~N,~N");
\r
72 Clazz.defineMethod (c$, "getMediumWeightPopup",
\r
73 function (owner, contents, ownerX, ownerY) {
\r
74 return javax.swing.PopupFactory.MediumWeightPopup.getMediumWeightPopup (owner, contents, ownerX, ownerY);
\r
75 }, "java.awt.Component,java.awt.Component,~N,~N");
\r
76 Clazz.defineMethod (c$, "getHeavyWeightPopup",
\r
77 function (owner, contents, ownerX, ownerY) {
\r
78 return javax.swing.PopupFactory.HeavyWeightPopup.getHeavyWeightPopup (owner, contents, ownerX, ownerY);
\r
79 }, "java.awt.Component,java.awt.Component,~N,~N");
\r
80 Clazz.defineMethod (c$, "invokerInHeavyWeightPopup",
\r
84 for (parent = i.getParent (); parent != null; parent = parent.getParent ()) {
\r
85 if (Clazz.instanceOf (parent, javax.swing.Popup.HeavyWeightWindow)) {
\r
89 }, "java.awt.Component");
\r
90 Clazz.pu$h(self.c$);
\r
91 c$ = Clazz.declareType (javax.swing.PopupFactory, "HeavyWeightPopup", javax.swing.Popup);
\r
92 c$.getHeavyWeightPopup = Clazz.defineMethod (c$, "getHeavyWeightPopup",
\r
93 function (a, b, c, d) {
\r
94 var e = (a != null) ? javax.swing.SwingUtilities.getWindowAncestor (a) : null;
\r
97 f = javax.swing.PopupFactory.HeavyWeightPopup.getRecycledHeavyWeightPopup (e);
\r
99 if (b != null && b.isFocusable ()) {
\r
100 if (Clazz.instanceOf (b, javax.swing.JPopupMenu)) {
\r
102 var i = h.getComponents ();
\r
103 for (var j = 0; j < i.length; j++) {
\r
104 if (!(Clazz.instanceOf (i[j], javax.swing.MenuElement)) && !(Clazz.instanceOf (i[j], javax.swing.JSeparator))) {
\r
108 }}if (f == null || (f.getComponent ()).getFocusableWindowState () != g) {
\r
111 }f = new javax.swing.PopupFactory.HeavyWeightPopup ();
\r
112 }f.reset (a, b, c, d);
\r
114 var h = f.getComponent ();
\r
115 h.setFocusableWindowState (true);
\r
116 h.setName ("###focusableSwingPopup###");
\r
118 }, "java.awt.Component,java.awt.Component,~N,~N");
\r
119 c$.getRecycledHeavyWeightPopup = Clazz.defineMethod (c$, "getRecycledHeavyWeightPopup",
\r
123 var c = javax.swing.PopupFactory.HeavyWeightPopup.getHeavyWeightPopupCache ();
\r
124 if (c.containsKey (a)) {
\r
129 if ((d = b.size ()) > 0) {
\r
134 }}, "java.awt.Window");
\r
135 c$.getHeavyWeightPopupCache = Clazz.defineMethod (c$, "getHeavyWeightPopupCache",
\r
138 var a = javax.swing.SwingUtilities.appContextGet (javax.swing.PopupFactory.HeavyWeightPopup.heavyWeightPopupCacheKey);
\r
140 a = new java.util.HashMap (2);
\r
141 javax.swing.SwingUtilities.appContextPut (javax.swing.PopupFactory.HeavyWeightPopup.heavyWeightPopupCacheKey, a);
\r
144 c$.recycleHeavyWeightPopup = Clazz.defineMethod (c$, "recycleHeavyWeightPopup",
\r
148 var c = javax.swing.SwingUtilities.getWindowAncestor (a.getComponent ());
\r
149 var d = javax.swing.PopupFactory.HeavyWeightPopup.getHeavyWeightPopupCache ();
\r
150 if (Clazz.instanceOf (c, javax.swing.Popup.DefaultFrame) || !(c).isVisible ()) {
\r
153 } else if (d.containsKey (c)) {
\r
156 b = new java.util.ArrayList ();
\r
159 e.addWindowListener (((Clazz.isClassDefined ("javax.swing.PopupFactory$HeavyWeightPopup$1") ? 0 : javax.swing.PopupFactory.HeavyWeightPopup.$PopupFactory$HeavyWeightPopup$1$ ()), Clazz.innerTypeInstance (javax.swing.PopupFactory$HeavyWeightPopup$1, this, Clazz.cloneFinals ("e", e))));
\r
160 }if (b.size () < 5) {
\r
164 }}}, "javax.swing.PopupFactory.HeavyWeightPopup");
\r
165 Clazz.defineMethod (c$, "hide",
\r
167 Clazz.superCall (this, javax.swing.PopupFactory.HeavyWeightPopup, "hide", []);
\r
168 javax.swing.PopupFactory.HeavyWeightPopup.recycleHeavyWeightPopup (this);
\r
170 Clazz.defineMethod (c$, "dispose",
\r
173 Clazz.defineMethod (c$, "_dispose",
\r
175 Clazz.superCall (this, javax.swing.PopupFactory.HeavyWeightPopup, "dispose", []);
\r
177 c$.$PopupFactory$HeavyWeightPopup$1$ = function () {
\r
178 Clazz.pu$h(self.c$);
\r
179 c$ = Clazz.declareAnonymous (javax.swing, "PopupFactory$HeavyWeightPopup$1", java.awt.event.WindowAdapter);
\r
180 Clazz.overrideMethod (c$, "windowClosed",
\r
184 var c = javax.swing.PopupFactory.HeavyWeightPopup.getHeavyWeightPopupCache ();
\r
185 b = c.remove (this.f$.e);
\r
187 for (var c = b.size () - 1; c >= 0; c--) {
\r
188 (b.get (c))._dispose ();
\r
190 }}, "java.awt.event.WindowEvent");
\r
193 c$.heavyWeightPopupCacheKey = c$.prototype.heavyWeightPopupCacheKey = new Clazz._O ();
\r
195 Clazz.pu$h(self.c$);
\r
196 c$ = Clazz.decorateAsClass (function () {
\r
200 Clazz.instantialize (this, arguments);
\r
201 }, javax.swing.PopupFactory, "ContainerPopup", javax.swing.Popup);
\r
202 Clazz.overrideMethod (c$, "hide",
\r
204 var a = this.getComponent ();
\r
206 var b = a.getParent ();
\r
208 var c = a.getBounds ();
\r
210 b.repaint (c.x, c.y, c.width, c.height);
\r
211 }}this.owner = null;
\r
213 Clazz.overrideMethod (c$, "pack",
\r
215 var a = this.getComponent ();
\r
217 a.setSize (a.getPreferredSize ());
\r
219 Clazz.defineMethod (c$, "reset",
\r
220 function (a, b, c, d) {
\r
221 if ((Clazz.instanceOf (a, javax.swing.JFrame)) || (Clazz.instanceOf (a, javax.swing.JDialog)) || (Clazz.instanceOf (a, javax.swing.JWindow))) {
\r
222 a = (a).getLayeredPane ();
\r
223 }Clazz.superCall (this, javax.swing.PopupFactory.ContainerPopup, "reset", [a, b, c, d]);
\r
227 }, "java.awt.Component,java.awt.Component,~N,~N");
\r
228 Clazz.defineMethod (c$, "overlappedByOwnedWindow",
\r
230 var a = this.getComponent ();
\r
231 if (this.owner != null && a != null) {
\r
232 var b = javax.swing.SwingUtilities.getWindowAncestor (this.owner);
\r
235 }var c = b.getOwnedWindows ();
\r
237 var d = a.getBounds ();
\r
238 for (var e = 0; e < c.length; e++) {
\r
240 if (f.isVisible () && d.intersects (f.getBounds ())) {
\r
245 Clazz.defineMethod (c$, "fitsOnScreen",
\r
247 var a = this.getComponent ();
\r
248 if (this.owner != null && a != null) {
\r
250 var c = a.getWidth ();
\r
251 var d = a.getHeight ();
\r
252 for (b = this.owner.getParent (); b != null; b = b.getParent ()) {
\r
253 if (Clazz.instanceOf (b, javax.swing.JFrame) || Clazz.instanceOf (b, javax.swing.JDialog) || Clazz.instanceOf (b, javax.swing.JWindow)) {
\r
254 var e = b.getBounds ();
\r
255 var f = b.getInsets ();
\r
258 e.width -= (f.left + f.right);
\r
259 e.height -= (f.top + f.bottom);
\r
260 var g = b.getGraphicsConfiguration ();
\r
261 var h = this.getContainerPopupArea (g);
\r
262 return e.intersection (h).contains (this.x, this.y, c, d);
\r
263 } else if (Clazz.instanceOf (b, javax.swing.JApplet)) {
\r
264 var e = b.getBounds ();
\r
265 var f = b.getLocationOnScreen ();
\r
268 return e.contains (this.x, this.y, c, d);
\r
269 } else if (Clazz.instanceOf (b, java.awt.Window) || Clazz.instanceOf (b, java.applet.Applet)) {
\r
274 Clazz.defineMethod (c$, "getContainerPopupArea",
\r
277 var c = java.awt.Toolkit.getDefaultToolkit ();
\r
280 b = a.getBounds ();
\r
281 d = c.getScreenInsets (a);
\r
283 b = new java.awt.Rectangle (c.getScreenSize ());
\r
284 d = new java.awt.Insets (0, 0, 0, 0);
\r
287 b.width -= (d.left + d.right);
\r
288 b.height -= (d.top + d.bottom);
\r
290 }, "java.awt.GraphicsConfiguration");
\r
292 Clazz.pu$h(self.c$);
\r
293 c$ = Clazz.declareType (javax.swing.PopupFactory, "LightWeightPopup", javax.swing.PopupFactory.ContainerPopup);
\r
294 c$.getLightWeightPopup = Clazz.defineMethod (c$, "getLightWeightPopup",
\r
295 function (a, b, c, d) {
\r
298 e = new javax.swing.PopupFactory.LightWeightPopup ();
\r
299 }e.reset (a, b, c, d);
\r
300 if (!e.fitsOnScreen () || e.overlappedByOwnedWindow ()) {
\r
304 }, "java.awt.Component,java.awt.Component,~N,~N");
\r
305 Clazz.defineMethod (c$, "hide",
\r
307 Clazz.superCall (this, javax.swing.PopupFactory.LightWeightPopup, "hide", []);
\r
308 var a = this.getComponent ();
\r
311 Clazz.overrideMethod (c$, "show",
\r
314 if (this.owner != null) {
\r
315 a = (Clazz.instanceOf (this.owner, java.awt.Container) ? this.owner : this.owner.getParent ());
\r
316 }for (var b = a; b != null; b = b.getParent ()) {
\r
317 if (Clazz.instanceOf (b, javax.swing.JRootPane)) {
\r
318 a = (b).getLayeredPane ();
\r
319 } else if (Clazz.instanceOf (b, java.awt.Window)) {
\r
323 } else if (Clazz.instanceOf (b, javax.swing.JApplet)) {
\r
326 var c = javax.swing.SwingUtilities.convertScreenLocationToParent (a, this.x, this.y);
\r
327 var d = this.getComponent ();
\r
328 d.setLocation (c.x, c.y);
\r
329 if (Clazz.instanceOf (a, javax.swing.JLayeredPane)) {
\r
330 (a).add (d, javax.swing.JLayeredPane.POPUP_LAYER, 0);
\r
334 Clazz.overrideMethod (c$, "createComponent",
\r
336 var b = new javax.swing.JPanel ( new java.awt.BorderLayout (), true);
\r
337 b.setOpaque (true);
\r
339 }, "java.awt.Component");
\r
340 Clazz.defineMethod (c$, "reset",
\r
341 function (a, b, c, d) {
\r
342 Clazz.superCall (this, javax.swing.PopupFactory.LightWeightPopup, "reset", [a, b, c, d]);
\r
343 var e = this.getComponent ();
\r
344 e.setOpaque (b.isOpaque ());
\r
345 e.setLocation (c, d);
\r
346 e.add (b, "Center");
\r
349 }, "java.awt.Component,java.awt.Component,~N,~N");
\r
350 c$.lightWeightPopupCacheKey = c$.prototype.lightWeightPopupCacheKey = new Clazz._O ();
\r
352 Clazz.pu$h(self.c$);
\r
353 c$ = Clazz.decorateAsClass (function () {
\r
354 this.rootPane = null;
\r
355 Clazz.instantialize (this, arguments);
\r
356 }, javax.swing.PopupFactory, "MediumWeightPopup", javax.swing.PopupFactory.ContainerPopup);
\r
357 c$.getMediumWeightPopup = Clazz.defineMethod (c$, "getMediumWeightPopup",
\r
358 function (a, b, c, d) {
\r
359 var e = javax.swing.PopupFactory.MediumWeightPopup.getRecycledMediumWeightPopup ();
\r
361 e = new javax.swing.PopupFactory.MediumWeightPopup ();
\r
362 }e.reset (a, b, c, d);
\r
363 if (!e.fitsOnScreen () || e.overlappedByOwnedWindow ()) {
\r
367 }, "java.awt.Component,java.awt.Component,~N,~N");
\r
368 c$.getMediumWeightPopupCache = Clazz.defineMethod (c$, "getMediumWeightPopupCache",
\r
370 var a = javax.swing.SwingUtilities.appContextGet (javax.swing.PopupFactory.MediumWeightPopup.mediumWeightPopupCacheKey);
\r
372 a = new java.util.ArrayList ();
\r
373 javax.swing.SwingUtilities.appContextPut (javax.swing.PopupFactory.MediumWeightPopup.mediumWeightPopupCacheKey, a);
\r
376 c$.recycleMediumWeightPopup = Clazz.defineMethod (c$, "recycleMediumWeightPopup",
\r
379 var b = javax.swing.PopupFactory.MediumWeightPopup.getMediumWeightPopupCache ();
\r
380 if (b.size () < 5) {
\r
382 }}}, "javax.swing.PopupFactory.MediumWeightPopup");
\r
383 c$.getRecycledMediumWeightPopup = Clazz.defineMethod (c$, "getRecycledMediumWeightPopup",
\r
386 var a = javax.swing.PopupFactory.MediumWeightPopup.getMediumWeightPopupCache ();
\r
388 if ((b = a.size ()) > 0) {
\r
394 Clazz.defineMethod (c$, "hide",
\r
396 Clazz.superCall (this, javax.swing.PopupFactory.MediumWeightPopup, "hide", []);
\r
397 this.rootPane.getContentPane ().removeAll ();
\r
398 javax.swing.PopupFactory.MediumWeightPopup.recycleMediumWeightPopup (this);
\r
400 Clazz.overrideMethod (c$, "show",
\r
402 var a = this.getComponent ();
\r
404 if (this.owner != null) {
\r
405 b = this.owner.getParent ();
\r
406 }while (!(Clazz.instanceOf (b, java.awt.Window) || Clazz.instanceOf (b, java.applet.Applet)) && (b != null)) {
\r
407 b = b.getParent ();
\r
409 if (Clazz.instanceOf (b, javax.swing.RootPaneContainer)) {
\r
410 b = (b).getLayeredPane ();
\r
411 var c = javax.swing.SwingUtilities.convertScreenLocationToParent (b, this.x, this.y);
\r
412 a.setVisible (false);
\r
413 a.setLocation (c.x, c.y);
\r
414 (b).add (a, javax.swing.JLayeredPane.POPUP_LAYER, 0);
\r
416 var c = javax.swing.SwingUtilities.convertScreenLocationToParent (b, this.x, this.y);
\r
417 a.setLocation (c.x, c.y);
\r
418 a.setVisible (false);
\r
420 }a.setVisible (true);
\r
422 Clazz.overrideMethod (c$, "createComponent",
\r
424 var b = new javax.swing.PopupFactory.MediumWeightPopup.MediumWeightComponent ();
\r
425 this.rootPane = new javax.swing.JRootPane ();
\r
426 this.rootPane.setOpaque (true);
\r
427 b.add (this.rootPane, "Center");
\r
429 }, "java.awt.Component");
\r
430 Clazz.defineMethod (c$, "reset",
\r
431 function (a, b, c, d) {
\r
432 Clazz.superCall (this, javax.swing.PopupFactory.MediumWeightPopup, "reset", [a, b, c, d]);
\r
433 var e = this.getComponent ();
\r
434 e.setLocation (c, d);
\r
435 this.rootPane.getContentPane ().add (b, "Center");
\r
439 }, "java.awt.Component,java.awt.Component,~N,~N");
\r
440 Clazz.pu$h(self.c$);
\r
441 c$ = Clazz.declareType (javax.swing.PopupFactory.MediumWeightPopup, "MediumWeightComponent", java.awt.Panel, javax.swing.SwingHeavyWeight);
\r
442 Clazz.makeConstructor (c$,
\r
444 Clazz.superConstructor (this, javax.swing.PopupFactory.MediumWeightPopup.MediumWeightComponent, [ new java.awt.BorderLayout ()]);
\r
447 c$.mediumWeightPopupCacheKey = c$.prototype.mediumWeightPopupCacheKey = new Clazz._O ();
\r
449 c$.SharedInstanceKey = c$.prototype.SharedInstanceKey = new Clazz._O ();
\r
450 Clazz.defineStatics (c$,
\r
451 "MAX_CACHE_SIZE", 5,
\r
452 "LIGHT_WEIGHT_POPUP", 0,
\r
453 "MEDIUM_WEIGHT_POPUP", 1,
\r
454 "HEAVY_WEIGHT_POPUP", 2);
\r