1 Clazz.declarePackage ("javax.swing");
\r
2 Clazz.load (["java.awt.event.ComponentAdapter", "javax.swing.JComponent"], "javax.swing.JViewport", ["java.lang.IllegalArgumentException", "java.applet.Applet", "java.awt.Dimension", "$.Insets", "$.Point", "$.Rectangle", "$.Window", "javax.swing.CellRendererPane", "$.RepaintManager", "$.SwingUtilities", "$.UIManager", "$.ViewportLayout", "javax.swing.event.ChangeEvent", "$.ChangeListener"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
4 this.isViewSizeSet = false;
\r
5 this.lastPaintPosition = null;
\r
6 this.backingStore = false;
\r
7 this.backingStoreImage = null;
\r
8 this.scrollUnderway = false;
\r
9 this.viewListener = null;
\r
10 this.changeEvent = null;
\r
11 this.scrollMode = 1;
\r
12 this.repaintAll = false;
\r
13 this.waitingForRepaint = false;
\r
14 this.inBlitPaint = false;
\r
15 this.hasHadValidView = false;
\r
16 if (!Clazz.isClassDefined ("javax.swing.JViewport.ViewListener")) {
\r
17 javax.swing.JViewport.$JViewport$ViewListener$ ();
\r
19 Clazz.instantialize (this, arguments);
\r
20 }, javax.swing, "JViewport", javax.swing.JComponent);
\r
21 Clazz.makeConstructor (c$,
\r
23 Clazz.superConstructor (this, javax.swing.JViewport);
\r
24 this.setLayout (this.createLayoutManager ());
\r
25 this.setOpaque (true);
\r
27 this.setInheritsPopupMenu (true);
\r
29 Clazz.overrideMethod (c$, "getUI",
\r
33 Clazz.overrideMethod (c$, "updateUI",
\r
35 this.setUI (javax.swing.UIManager.getUI (this));
\r
37 Clazz.overrideMethod (c$, "getUIClassID",
\r
39 return "ViewportUI";
\r
41 Clazz.overrideMethod (c$, "addImpl",
\r
42 function (child, constraints, index) {
\r
43 this.setView (child);
\r
45 }, "java.awt.Component,~O,~N");
\r
46 Clazz.defineMethod (c$, "remove",
\r
48 child.removeComponentListener (this.viewListener);
\r
49 this.removeChild (child);
\r
50 }, "java.awt.Component");
\r
51 Clazz.overrideMethod (c$, "scrollRectToVisible",
\r
52 function (contentRect) {
\r
53 var view = this.getView ();
\r
57 if (!view.isValid ()) {
\r
58 this.validateView ();
\r
61 dx = this.positionAdjustment (this.getWidth (), contentRect.width, contentRect.x);
\r
62 dy = this.positionAdjustment (this.getHeight (), contentRect.height, contentRect.y);
\r
63 if (dx != 0 || dy != 0) {
\r
64 var viewPosition = this.getViewPosition ();
\r
65 var viewSize = view.getSize ();
\r
66 var startX = viewPosition.x;
\r
67 var startY = viewPosition.y;
\r
68 var extent = this.getExtentSize ();
\r
69 viewPosition.x -= dx;
\r
70 viewPosition.y -= dy;
\r
71 if (view.isValid ()) {
\r
72 if (this.getParent ().getComponentOrientation ().isLeftToRight ()) {
\r
73 if (viewPosition.x + extent.width > viewSize.width) {
\r
74 viewPosition.x = Math.max (0, viewSize.width - extent.width);
\r
75 } else if (viewPosition.x < 0) {
\r
78 if (extent.width > viewSize.width) {
\r
79 viewPosition.x = viewSize.width - extent.width;
\r
81 viewPosition.x = Math.max (0, Math.min (viewSize.width - extent.width, viewPosition.x));
\r
82 }}if (viewPosition.y + extent.height > viewSize.height) {
\r
83 viewPosition.y = Math.max (0, viewSize.height - extent.height);
\r
84 } else if (viewPosition.y < 0) {
\r
86 }}if (viewPosition.x != startX || viewPosition.y != startY) {
\r
87 this.setViewPosition (viewPosition);
\r
88 this.scrollUnderway = false;
\r
89 }}}}, "java.awt.Rectangle");
\r
90 Clazz.defineMethod (c$, "validateView",
\r
92 var validateRoot = null;
\r
93 for (var c = this; c != null; c = c.getParent ()) {
\r
94 if ((Clazz.instanceOf (c, javax.swing.CellRendererPane)) || !c.isLightweight ()) {
\r
96 }if ((Clazz.instanceOf (c, javax.swing.JComponent)) && ((c).isValidateRoot ())) {
\r
100 if (validateRoot == null) {
\r
103 for (var c = validateRoot; c != null; c = c.getParent ()) {
\r
104 if (!c.isLightweight ()) {
\r
106 }if ((Clazz.instanceOf (c, java.awt.Window)) || (Clazz.instanceOf (c, java.applet.Applet))) {
\r
110 if (root == null) {
\r
112 }validateRoot.validate ();
\r
113 var rm = javax.swing.RepaintManager.currentManager (this);
\r
115 rm.removeInvalidComponent (validateRoot);
\r
117 Clazz.defineMethod (c$, "positionAdjustment",
\r
118 function (parentWidth, childWidth, childAt) {
\r
119 if (childAt >= 0 && childWidth + childAt <= parentWidth) {
\r
121 }if (childAt <= 0 && childWidth + childAt >= parentWidth) {
\r
123 }if (childAt > 0 && childWidth <= parentWidth) {
\r
124 return -childAt + parentWidth - childWidth;
\r
125 }if (childAt >= 0 && childWidth >= parentWidth) {
\r
127 }if (childAt <= 0 && childWidth <= parentWidth) {
\r
129 }if (childAt < 0 && childWidth >= parentWidth) {
\r
130 return -childAt + parentWidth - childWidth;
\r
133 Clazz.overrideMethod (c$, "setBorder",
\r
134 function (border) {
\r
135 if (border != null) {
\r
136 throw new IllegalArgumentException ("JViewport.setBorder() not supported");
\r
137 }}, "javax.swing.border.Border");
\r
138 Clazz.defineMethod (c$, "getInsets",
\r
140 return new java.awt.Insets (0, 0, 0, 0);
\r
142 Clazz.defineMethod (c$, "getInsets",
\r
143 function (insets) {
\r
144 insets.left = insets.top = insets.right = insets.bottom = 0;
\r
146 }, "java.awt.Insets");
\r
147 Clazz.defineMethod (c$, "getBackingStoreGraphics",
\r
149 var bsg = this.backingStoreImage.getGraphics ();
\r
150 bsg.setColor (g.getColor ());
\r
151 bsg.setFont (g.getFont ());
\r
152 bsg.setClip (g.getClipBounds ());
\r
154 }, "java.awt.Graphics");
\r
155 Clazz.defineMethod (c$, "paintViaBackingStore",
\r
157 var bsg = this.getBackingStoreGraphics (g);
\r
159 Clazz.superCall (this, javax.swing.JViewport, "paint", [bsg]);
\r
160 g.drawImage (this.backingStoreImage, 0, 0, this);
\r
164 }, "java.awt.Graphics");
\r
165 Clazz.defineMethod (c$, "paintViaBackingStore",
\r
166 function (g, oClip) {
\r
167 var bsg = this.getBackingStoreGraphics (g);
\r
169 Clazz.superCall (this, javax.swing.JViewport, "paint", [bsg]);
\r
171 g.drawImage (this.backingStoreImage, 0, 0, this);
\r
175 }, "java.awt.Graphics,java.awt.Rectangle");
\r
176 Clazz.defineMethod (c$, "isOptimizedDrawingEnabled",
\r
180 Clazz.overrideMethod (c$, "isPaintingOrigin",
\r
182 if (this.scrollMode == 2) {
\r
186 Clazz.defineMethod (c$, "getViewLocation",
\r
188 var view = this.getView ();
\r
189 if (view != null) {
\r
190 return view.getLocation ();
\r
192 return new java.awt.Point (0, 0);
\r
194 Clazz.defineMethod (c$, "paint",
\r
196 var width = this.getWidth ();
\r
197 var height = this.getHeight ();
\r
198 if ((width <= 0) || (height <= 0)) {
\r
200 }if (this.inBlitPaint) {
\r
201 Clazz.superCall (this, javax.swing.JViewport, "paint", [g]);
\r
203 }if (this.repaintAll) {
\r
204 this.repaintAll = false;
\r
205 var clipB = g.getClipBounds ();
\r
206 } else if (this.waitingForRepaint) {
\r
207 var clipB = g.getClipBounds ();
\r
208 if (clipB.width >= this.getWidth () && clipB.height >= this.getHeight ()) {
\r
209 this.waitingForRepaint = false;
\r
210 }}if (!this.backingStore || this.isBlitting () || this.getView () == null) {
\r
211 Clazz.superCall (this, javax.swing.JViewport, "paint", [g]);
\r
212 this.lastPaintPosition = this.getViewLocation ();
\r
214 }var viewBounds = this.getView ().getBounds ();
\r
215 if (!this.isOpaque ()) {
\r
216 g.clipRect (0, 0, viewBounds.width, viewBounds.height);
\r
217 }if (this.backingStoreImage == null) {
\r
218 this.backingStoreImage = this.createImage (width, height);
\r
219 var clip = g.getClipBounds ();
\r
220 if (clip.width != width || clip.height != height) {
\r
221 if (!this.isOpaque ()) {
\r
222 g.setClip (0, 0, Math.min (viewBounds.width, width), Math.min (viewBounds.height, height));
\r
224 g.setClip (0, 0, width, height);
\r
225 }this.paintViaBackingStore (g, clip);
\r
227 this.paintViaBackingStore (g);
\r
229 if (!this.scrollUnderway || this.lastPaintPosition.equals (this.getViewLocation ())) {
\r
230 this.paintViaBackingStore (g);
\r
232 var blitFrom = new java.awt.Point ();
\r
233 var blitTo = new java.awt.Point ();
\r
234 var blitSize = new java.awt.Dimension ();
\r
235 var blitPaint = new java.awt.Rectangle ();
\r
236 var newLocation = this.getViewLocation ();
\r
237 var dx = newLocation.x - this.lastPaintPosition.x;
\r
238 var dy = newLocation.y - this.lastPaintPosition.y;
\r
239 var canBlit = this.computeBlit (dx, dy, blitFrom, blitTo, blitSize, blitPaint);
\r
241 this.paintViaBackingStore (g);
\r
243 var bdx = blitTo.x - blitFrom.x;
\r
244 var bdy = blitTo.y - blitFrom.y;
\r
245 var clip = g.getClipBounds ();
\r
246 g.setClip (0, 0, width, height);
\r
247 var bsg = this.getBackingStoreGraphics (g);
\r
249 bsg.copyArea (blitFrom.x, blitFrom.y, blitSize.width, blitSize.height, bdx, bdy);
\r
250 g.setClip (clip.x, clip.y, clip.width, clip.height);
\r
251 var r = viewBounds.intersection (blitPaint);
\r
253 Clazz.superCall (this, javax.swing.JViewport, "paint", [bsg]);
\r
254 g.drawImage (this.backingStoreImage, 0, 0, this);
\r
258 }}}this.lastPaintPosition = this.getViewLocation ();
\r
259 this.scrollUnderway = false;
\r
260 }, "java.awt.Graphics");
\r
261 Clazz.defineMethod (c$, "reshape",
\r
262 function (x, y, w, h) {
\r
263 var sizeChanged = (this.getWidth () != w) || (this.getHeight () != h);
\r
265 this.backingStoreImage = null;
\r
266 }Clazz.superCall (this, javax.swing.JViewport, "reshape", [x, y, w, h]);
\r
268 this.fireStateChanged ();
\r
269 }}, "~N,~N,~N,~N");
\r
270 Clazz.defineMethod (c$, "setScrollMode",
\r
272 this.scrollMode = mode;
\r
274 this.backingStore = true;
\r
276 this.backingStore = false;
\r
278 Clazz.defineMethod (c$, "getScrollMode",
\r
280 return this.scrollMode;
\r
282 Clazz.defineMethod (c$, "isBackingStoreEnabled",
\r
284 return this.scrollMode == 2;
\r
286 Clazz.defineMethod (c$, "setBackingStoreEnabled",
\r
287 function (enabled) {
\r
289 this.setScrollMode (2);
\r
291 this.setScrollMode (1);
\r
293 Clazz.defineMethod (c$, "isBlitting",
\r
295 var view = this.getView ();
\r
296 return (this.scrollMode == 1) && (Clazz.instanceOf (view, javax.swing.JComponent)) && (view).isOpaque ();
\r
298 Clazz.defineMethod (c$, "getView",
\r
300 return (this.getComponentCount () > 0) ? this.getComponent (0) : null;
\r
302 Clazz.defineMethod (c$, "setView",
\r
304 var n = this.getComponentCount ();
\r
305 for (var i = n - 1; i >= 0; i--) {
\r
306 this.remove (this.getComponent (i));
\r
308 this.isViewSizeSet = false;
\r
309 if (view != null) {
\r
310 this.addImplSAEM (view, null, -1);
\r
311 this.viewListener = this.createViewListener ();
\r
312 view.addComponentListener (this.viewListener);
\r
313 }if (this.hasHadValidView) {
\r
314 this.fireStateChanged ();
\r
315 } else if (view != null) {
\r
316 this.hasHadValidView = true;
\r
317 }this.revalidate ();
\r
319 }, "java.awt.Component");
\r
320 Clazz.defineMethod (c$, "getViewSize",
\r
322 var view = this.getView ();
\r
323 if (view == null) {
\r
324 return new java.awt.Dimension (0, 0);
\r
325 } else if (this.isViewSizeSet) {
\r
326 return view.getSize ();
\r
328 return view.getPreferredSize ();
\r
330 Clazz.defineMethod (c$, "setViewSize",
\r
331 function (newSize) {
\r
332 var view = this.getView ();
\r
333 if (view != null) {
\r
334 var oldSize = view.getSize ();
\r
335 if (!newSize.equals (oldSize)) {
\r
336 this.scrollUnderway = false;
\r
337 view.setSize (newSize);
\r
338 this.isViewSizeSet = true;
\r
339 this.fireStateChanged ();
\r
340 }}}, "java.awt.Dimension");
\r
341 Clazz.defineMethod (c$, "getViewPosition",
\r
343 var view = this.getView ();
\r
344 if (view != null) {
\r
345 var p = view.getLocation ();
\r
350 return new java.awt.Point (0, 0);
\r
352 Clazz.defineMethod (c$, "setViewPosition",
\r
354 var view = this.getView ();
\r
355 if (view == null) {
\r
361 if (Clazz.instanceOf (view, javax.swing.JComponent)) {
\r
366 var r = view.getBounds ();
\r
371 if ((oldX != newX) || (oldY != newY)) {
\r
372 if (!this.waitingForRepaint && this.isBlitting () && this.canUseWindowBlitter ()) {
\r
373 var rm = javax.swing.RepaintManager.currentManager (this);
\r
375 var dirty = rm.getDirtyRegion (jview);
\r
376 if (dirty == null || !dirty.contains (jview.getVisibleRect ())) {
\r
379 var g = javax.swing.JComponent.safelyGetGraphics (this, javax.swing.SwingUtilities.getRoot (this));
\r
380 this.flushViewDirtyRegion (g, dirty);
\r
381 view.setLocation (newX, newY);
\r
382 g.setClip (0, 0, this.getWidth (), Math.min (this.getHeight (), jview.getHeight ()));
\r
383 this.repaintAll = (this.windowBlitPaint (g) && this.needsRepaintAfterBlit ());
\r
385 rm.markCompletelyClean (this.getParent ());
\r
386 rm.markCompletelyClean (this);
\r
387 rm.markCompletelyClean (jview);
\r
392 view.setLocation (newX, newY);
\r
393 this.repaintAll = false;
\r
395 this.scrollUnderway = true;
\r
396 view.setLocation (newX, newY);
\r
397 this.repaintAll = false;
\r
398 }this.fireStateChanged ();
\r
399 }}, "java.awt.Point");
\r
400 Clazz.defineMethod (c$, "getViewRect",
\r
402 return new java.awt.Rectangle (this.getViewPosition (), this.getExtentSize ());
\r
404 Clazz.defineMethod (c$, "computeBlit",
\r
405 function (dx, dy, blitFrom, blitTo, blitSize, blitPaint) {
\r
406 var dxAbs = Math.abs (dx);
\r
407 var dyAbs = Math.abs (dy);
\r
408 var extentSize = this.getExtentSize ();
\r
409 if ((dx == 0) && (dy != 0) && (dyAbs < extentSize.height)) {
\r
413 blitPaint.y = extentSize.height + dy;
\r
418 }blitPaint.x = blitFrom.x = blitTo.x = 0;
\r
419 blitSize.width = extentSize.width;
\r
420 blitSize.height = extentSize.height - dyAbs;
\r
421 blitPaint.width = extentSize.width;
\r
422 blitPaint.height = dyAbs;
\r
424 } else if ((dy == 0) && (dx != 0) && (dxAbs < extentSize.width)) {
\r
428 blitPaint.x = extentSize.width + dx;
\r
433 }blitPaint.y = blitFrom.y = blitTo.y = 0;
\r
434 blitSize.width = extentSize.width - dxAbs;
\r
435 blitSize.height = extentSize.height;
\r
436 blitPaint.width = dxAbs;
\r
437 blitPaint.height = extentSize.height;
\r
441 }}, "~N,~N,java.awt.Point,java.awt.Point,java.awt.Dimension,java.awt.Rectangle");
\r
442 Clazz.defineMethod (c$, "getExtentSize",
\r
444 return this.getSize ();
\r
446 Clazz.defineMethod (c$, "toViewCoordinates",
\r
448 return new java.awt.Dimension (size);
\r
449 }, "java.awt.Dimension");
\r
450 Clazz.defineMethod (c$, "toViewCoordinates",
\r
452 return new java.awt.Point (p);
\r
453 }, "java.awt.Point");
\r
454 Clazz.defineMethod (c$, "setExtentSize",
\r
455 function (newExtent) {
\r
456 var oldExtent = this.getExtentSize ();
\r
457 if (!newExtent.equals (oldExtent)) {
\r
458 this.setSize (newExtent);
\r
459 this.fireStateChanged ();
\r
460 }}, "java.awt.Dimension");
\r
461 Clazz.defineMethod (c$, "createViewListener",
\r
463 return Clazz.innerTypeInstance (javax.swing.JViewport.ViewListener, this, null);
\r
465 Clazz.defineMethod (c$, "createLayoutManager",
\r
467 return javax.swing.ViewportLayout.SHARED_INSTANCE;
\r
469 Clazz.defineMethod (c$, "addChangeListener",
\r
471 this.listenerList.add (javax.swing.event.ChangeListener, l);
\r
472 }, "javax.swing.event.ChangeListener");
\r
473 Clazz.defineMethod (c$, "removeChangeListener",
\r
475 this.listenerList.remove (javax.swing.event.ChangeListener, l);
\r
476 }, "javax.swing.event.ChangeListener");
\r
477 Clazz.defineMethod (c$, "getChangeListeners",
\r
479 return this.listenerList.getListeners (javax.swing.event.ChangeListener);
\r
481 Clazz.defineMethod (c$, "fireStateChanged",
\r
483 var listeners = this.listenerList.getListenerList ();
\r
484 for (var i = listeners.length - 2; i >= 0; i -= 2) {
\r
485 if (listeners[i] === javax.swing.event.ChangeListener) {
\r
486 if (this.changeEvent == null) {
\r
487 this.changeEvent = new javax.swing.event.ChangeEvent (this);
\r
488 }(listeners[i + 1]).stateChanged (this.changeEvent);
\r
491 Clazz.defineMethod (c$, "repaint",
\r
492 function (tm, x, y, w, h) {
\r
493 var parent = this.getParent ();
\r
494 if (parent != null) parent.repaint (tm, x + this.getX (), y + this.getY (), w, h);
\r
495 else Clazz.superCall (this, javax.swing.JViewport, "repaint", [tm, x, y, w, h]);
\r
496 }, "~N,~N,~N,~N,~N");
\r
497 Clazz.defineMethod (c$, "paramString",
\r
499 var isViewSizeSetString = (this.isViewSizeSet ? "true" : "false");
\r
500 var lastPaintPositionString = (this.lastPaintPosition != null ? this.lastPaintPosition.toString () : "");
\r
501 var scrollUnderwayString = (this.scrollUnderway ? "true" : "false");
\r
502 return Clazz.superCall (this, javax.swing.JViewport, "paramString", []) + ",isViewSizeSet=" + isViewSizeSetString + ",lastPaintPosition=" + lastPaintPositionString + ",scrollUnderway=" + scrollUnderwayString;
\r
504 Clazz.defineMethod (c$, "firePropertyChangeObject",
\r
505 function (propertyName, oldValue, newValue) {
\r
506 Clazz.superCall (this, javax.swing.JViewport, "firePropertyChangeObject", [propertyName, oldValue, newValue]);
\r
507 if (propertyName.equals (javax.swing.JViewport.EnableWindowBlit)) {
\r
508 if (newValue != null) {
\r
509 this.setScrollMode (1);
\r
511 this.setScrollMode (0);
\r
513 Clazz.defineMethod (c$, "needsRepaintAfterBlit",
\r
515 var heavyParent = this.getParent ();
\r
516 while (heavyParent != null && heavyParent.isLightweight ()) {
\r
517 heavyParent = heavyParent.getParent ();
\r
519 if (heavyParent != null) {
\r
522 Clazz.defineMethod (c$, "flushViewDirtyRegion",
\r
523 function (g, dirty) {
\r
524 var view = this.getView ();
\r
525 if (dirty != null && dirty.width > 0 && dirty.height > 0) {
\r
526 dirty.x += view.getX ();
\r
527 dirty.y += view.getY ();
\r
528 var clip = g.getClipBounds ();
\r
529 if (clip == null) {
\r
530 g.setClip (0, 0, this.getWidth (), this.getHeight ());
\r
531 }g.clipRect (dirty.x, dirty.y, dirty.width, dirty.height);
\r
532 clip = g.getClipBounds ();
\r
533 if (clip.width > 0 && clip.height > 0) {
\r
534 this.paintView (g);
\r
535 }}}, "java.awt.Graphics,java.awt.Rectangle");
\r
536 Clazz.defineMethod (c$, "windowBlitPaint",
\r
538 var width = this.getWidth ();
\r
539 var height = this.getHeight ();
\r
540 if ((width == 0) || (height == 0)) {
\r
543 var rm = javax.swing.RepaintManager.currentManager (this);
\r
544 var view = this.getView ();
\r
545 if (this.lastPaintPosition == null || this.lastPaintPosition.equals (this.getViewLocation ())) {
\r
546 this.paintView (g);
\r
549 var blitFrom = new java.awt.Point ();
\r
550 var blitTo = new java.awt.Point ();
\r
551 var blitSize = new java.awt.Dimension ();
\r
552 var blitPaint = new java.awt.Rectangle ();
\r
553 var newLocation = this.getViewLocation ();
\r
554 var dx = newLocation.x - this.lastPaintPosition.x;
\r
555 var dy = newLocation.y - this.lastPaintPosition.y;
\r
556 var canBlit = this.computeBlit (dx, dy, blitFrom, blitTo, blitSize, blitPaint);
\r
558 this.paintView (g);
\r
561 var r = view.getBounds ().intersection (blitPaint);
\r
562 r.x -= view.getX ();
\r
563 r.y -= view.getY ();
\r
564 this.blitDoubleBuffered (view, g, r.x, r.y, r.width, r.height, blitFrom.x, blitFrom.y, blitTo.x, blitTo.y, blitSize.width, blitSize.height);
\r
566 }}this.lastPaintPosition = this.getViewLocation ();
\r
568 }, "java.awt.Graphics");
\r
569 Clazz.defineMethod (c$, "blitDoubleBuffered",
\r
570 function (view, g, clipX, clipY, clipW, clipH, blitFromX, blitFromY, blitToX, blitToY, blitW, blitH) {
\r
571 var rm = javax.swing.RepaintManager.currentManager (this);
\r
572 var bdx = blitToX - blitFromX;
\r
573 var bdy = blitToY - blitFromY;
\r
574 var x = view.getX ();
\r
575 var y = view.getY ();
\r
576 g.translate (x, y);
\r
577 g.setClip (clipX, clipY, clipW, clipH);
\r
578 view.paintForceDoubleBuffered (g);
\r
579 g.translate (-x, -y);
\r
580 }, "javax.swing.JComponent,java.awt.Graphics,~N,~N,~N,~N,~N,~N,~N,~N,~N,~N");
\r
581 Clazz.defineMethod (c$, "paintView",
\r
583 var clip = g.getClipBounds ();
\r
584 var view = this.getView ();
\r
585 if (view.getWidth () >= this.getWidth ()) {
\r
586 var x = view.getX ();
\r
587 var y = view.getY ();
\r
588 g.translate (x, y);
\r
589 g.setClip (clip.x - x, clip.y - y, clip.width, clip.height);
\r
590 view.paintForceDoubleBuffered (g);
\r
591 g.translate (-x, -y);
\r
592 g.setClip (clip.x, clip.y, clip.width, clip.height);
\r
595 this.inBlitPaint = true;
\r
596 this.paintForceDoubleBuffered (g);
\r
598 this.inBlitPaint = false;
\r
600 }}, "java.awt.Graphics");
\r
601 Clazz.defineMethod (c$, "canUseWindowBlitter",
\r
603 if (!this.isShowing () || (!(Clazz.instanceOf (this.getParent (), javax.swing.JComponent)) && !(Clazz.instanceOf (this.getView (), javax.swing.JComponent)))) {
\r
605 }if (this.isPainting ()) {
\r
607 }var dirtyRegion = javax.swing.RepaintManager.currentManager (this).getDirtyRegion (this.getParent ());
\r
608 if (dirtyRegion != null && dirtyRegion.width > 0 && dirtyRegion.height > 0) {
\r
610 }var clip = new java.awt.Rectangle (0, 0, this.getWidth (), this.getHeight ());
\r
611 var oldClip = new java.awt.Rectangle ();
\r
614 var lastParent = null;
\r
619 for (parent = this; parent != null && javax.swing.JComponent.isLightweightComponent (parent); parent = parent.getParent ()) {
\r
620 x = parent.getX ();
\r
621 y = parent.getY ();
\r
622 w = parent.getWidth ();
\r
623 h = parent.getHeight ();
\r
624 oldClip.setBounds (clip);
\r
625 javax.swing.SwingUtilities.computeIntersection (0, 0, w, h, clip);
\r
626 if (!clip.equals (oldClip)) return false;
\r
627 if (lastParent != null && Clazz.instanceOf (parent, javax.swing.JComponent) && !(parent).isOptimizedDrawingEnabled ()) {
\r
628 var comps = parent.getComponents ();
\r
630 for (var i = comps.length - 1; i >= 0; i--) {
\r
631 if (comps[i] === lastParent) {
\r
635 while (index >= 0) {
\r
636 tmp2 = comps[index].getBounds (tmp2);
\r
637 if (tmp2.intersects (clip)) return false;
\r
642 lastParent = parent;
\r
644 if (parent == null) {
\r
648 c$.$JViewport$ViewListener$ = function () {
\r
649 Clazz.pu$h(self.c$);
\r
650 c$ = Clazz.decorateAsClass (function () {
\r
651 Clazz.prepareCallback (this, arguments);
\r
652 Clazz.instantialize (this, arguments);
\r
653 }, javax.swing.JViewport, "ViewListener", java.awt.event.ComponentAdapter);
\r
654 Clazz.overrideMethod (c$, "componentResized",
\r
656 this.b$["javax.swing.JViewport"].fireStateChanged ();
\r
657 this.b$["javax.swing.JViewport"].revalidate ();
\r
658 }, "java.awt.event.ComponentEvent");
\r
661 Clazz.defineStatics (c$,
\r
662 "$uiClassID", "ViewportUI",
\r
663 "EnableWindowBlit", "EnableWindowBlit",
\r
664 "BLIT_SCROLL_MODE", 1,
\r
665 "BACKINGSTORE_SCROLL_MODE", 2,
\r
666 "SIMPLE_SCROLL_MODE", 0);
\r