home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161a.iso / handson / files / copyjava.exe / com / sun / java / swing / ViewportLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-02-26  |  1.9 KB  |  75 lines

  1. package com.sun.java.swing;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Dimension;
  6. import java.awt.LayoutManager;
  7. import java.awt.Point;
  8. import java.io.Serializable;
  9.  
  10. public class ViewportLayout implements LayoutManager, Serializable {
  11.    public void addLayoutComponent(String var1, Component var2) {
  12.    }
  13.  
  14.    public void removeLayoutComponent(Component var1) {
  15.    }
  16.  
  17.    public Dimension preferredLayoutSize(Container var1) {
  18.       Component var2 = ((JViewport)var1).getView();
  19.       if (var2 == null) {
  20.          return new Dimension(0, 0);
  21.       } else {
  22.          return var2 instanceof Scrollable ? ((Scrollable)var2).getPreferredScrollableViewportSize() : var2.getPreferredSize();
  23.       }
  24.    }
  25.  
  26.    public Dimension minimumLayoutSize(Container var1) {
  27.       return new Dimension(4, 4);
  28.    }
  29.  
  30.    public void layoutContainer(Container var1) {
  31.       JViewport var2 = (JViewport)var1;
  32.       Component var3 = var2.getView();
  33.       Scrollable var4 = null;
  34.       if (var3 != null) {
  35.          if (var3 instanceof Scrollable) {
  36.             var4 = (Scrollable)var3;
  37.          }
  38.  
  39.          var2.getInsets();
  40.          Dimension var5 = var3.getPreferredSize();
  41.          Dimension var6 = ((Component)var2).getSize();
  42.          Dimension var7 = var2.toViewCoordinates(var6);
  43.          if (var4 != null) {
  44.             if (var4.getScrollableTracksViewportWidth()) {
  45.                var5.width = var6.width;
  46.             }
  47.  
  48.             if (var4.getScrollableTracksViewportHeight()) {
  49.                var5.height = var6.height;
  50.             }
  51.          }
  52.  
  53.          Point var9 = var2.getViewPosition();
  54.          if (var9.y + var7.height > var5.height) {
  55.             var9.y = 0;
  56.          }
  57.  
  58.          if (var9.x + var7.width > var5.width) {
  59.             var9.x = 0;
  60.          }
  61.  
  62.          if (var9.y == 0 && var6.height > var5.height) {
  63.             var5.height = var6.height;
  64.          }
  65.  
  66.          if (var9.x == 0 && var6.width > var5.width) {
  67.             var5.width = var6.width;
  68.          }
  69.  
  70.          var2.setViewPosition(var9);
  71.          var2.setViewSize(var5);
  72.       }
  73.    }
  74. }
  75.