7ee09244048b7c0e7f4e8dcc5106c7c47a767395
[jalviewjs.git] / site / swingjs / j2s / javax / swing / ViewportLayout.js
1 Clazz.declarePackage ("javax.swing");
2 Clazz.load (["java.awt.LayoutManager"], "javax.swing.ViewportLayout", ["java.awt.Dimension", "javax.swing.Scrollable"], function () {
3 c$ = Clazz.declareType (javax.swing, "ViewportLayout", null, java.awt.LayoutManager);
4 Clazz.overrideMethod (c$, "addLayoutComponent", 
5 function (name, c) {
6 }, "~S,java.awt.Component");
7 Clazz.overrideMethod (c$, "removeLayoutComponent", 
8 function (c) {
9 }, "java.awt.Component");
10 Clazz.overrideMethod (c$, "preferredLayoutSize", 
11 function (parent) {
12 var view = (parent).getView ();
13 if (view == null) {
14 return  new java.awt.Dimension (0, 0);
15 } else if (Clazz.instanceOf (view, javax.swing.Scrollable)) {
16 return (view).getPreferredScrollableViewportSize ();
17 } else {
18 return view.getPreferredSize ();
19 }}, "java.awt.Container");
20 Clazz.overrideMethod (c$, "minimumLayoutSize", 
21 function (parent) {
22 return  new java.awt.Dimension (4, 4);
23 }, "java.awt.Container");
24 Clazz.overrideMethod (c$, "layoutContainer", 
25 function (parent) {
26 var vp = parent;
27 var view = vp.getView ();
28 var scrollableView = null;
29 if (view == null) {
30 return;
31 } else if (Clazz.instanceOf (view, javax.swing.Scrollable)) {
32 scrollableView = view;
33 }var insets = vp.getInsets ();
34 var viewPrefSize = view.getPreferredSize ();
35 var vpSize = vp.getSize ();
36 var extentSize = vp.toViewCoordinates (vpSize);
37 var viewSize =  new java.awt.Dimension (viewPrefSize);
38 if (scrollableView != null) {
39 if (scrollableView.getScrollableTracksViewportWidth ()) {
40 viewSize.width = vpSize.width;
41 }if (scrollableView.getScrollableTracksViewportHeight ()) {
42 viewSize.height = vpSize.height;
43 }}var viewPosition = vp.getViewPosition ();
44 if (scrollableView == null || vp.getParent () == null || vp.getParent ().getComponentOrientation ().isLeftToRight ()) {
45 if ((viewPosition.x + extentSize.width) > viewSize.width) {
46 viewPosition.x = Math.max (0, viewSize.width - extentSize.width);
47 }} else {
48 if (extentSize.width > viewSize.width) {
49 viewPosition.x = viewSize.width - extentSize.width;
50 } else {
51 viewPosition.x = Math.max (0, Math.min (viewSize.width - extentSize.width, viewPosition.x));
52 }}if ((viewPosition.y + extentSize.height) > viewSize.height) {
53 viewPosition.y = Math.max (0, viewSize.height - extentSize.height);
54 }if (scrollableView == null) {
55 if ((viewPosition.x == 0) && (vpSize.width > viewPrefSize.width)) {
56 viewSize.width = vpSize.width;
57 }if ((viewPosition.y == 0) && (vpSize.height > viewPrefSize.height)) {
58 viewSize.height = vpSize.height;
59 }}vp.setViewPosition (viewPosition);
60 vp.setViewSize (viewSize);
61 }, "java.awt.Container");
62 c$.SHARED_INSTANCE = c$.prototype.SHARED_INSTANCE =  new javax.swing.ViewportLayout ();
63 });