home *** CD-ROM | disk | FTP | other *** search
- package sun.awt;
-
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.FlowLayout;
- import java.awt.Insets;
-
- public class OrientableFlowLayout extends FlowLayout {
- public static final int HORIZONTAL = 0;
- public static final int VERTICAL = 1;
- public static final int TOP = 0;
- public static final int BOTTOM = 2;
- int orientation;
- int vAlign;
- int vHGap;
- int vVGap;
-
- public OrientableFlowLayout() {
- this(0, 1, 1, 5, 5, 5, 5);
- }
-
- public OrientableFlowLayout(int var1) {
- this(var1, 1, 1, 5, 5, 5, 5);
- }
-
- public OrientableFlowLayout(int var1, int var2, int var3) {
- this(var1, var2, var3, 5, 5, 5, 5);
- }
-
- public OrientableFlowLayout(int var1, int var2, int var3, int var4, int var5, int var6, int var7) {
- super(var2, var4, var5);
- this.orientation = var1;
- this.vAlign = var3;
- this.vHGap = var6;
- this.vVGap = var7;
- }
-
- public synchronized void orientHorizontally() {
- this.orientation = 0;
- }
-
- public synchronized void orientVertically() {
- this.orientation = 1;
- }
-
- public Dimension preferredLayoutSize(Container var1) {
- if (this.orientation == 0) {
- return super.preferredLayoutSize(var1);
- } else {
- Dimension var2 = new Dimension(0, 0);
- int var3 = var1.countComponents();
-
- for(int var4 = 0; var4 < var3; ++var4) {
- Component var5 = var1.getComponent(var4);
- if (var5.isVisible()) {
- Dimension var6 = var5.preferredSize();
- var2.width = Math.max(var2.width, var6.width);
- if (var4 > 0) {
- var2.height += this.vVGap;
- }
-
- var2.height += var6.height;
- }
- }
-
- Insets var7 = var1.insets();
- var2.width += var7.left + var7.right + this.vHGap * 2;
- var2.height += var7.top + var7.bottom + this.vVGap * 2;
- return var2;
- }
- }
-
- public Dimension minimumLayoutSize(Container var1) {
- if (this.orientation == 0) {
- return super.minimumLayoutSize(var1);
- } else {
- Dimension var2 = new Dimension(0, 0);
- int var3 = var1.countComponents();
-
- for(int var4 = 0; var4 < var3; ++var4) {
- Component var5 = var1.getComponent(var4);
- if (var5.isVisible()) {
- Dimension var6 = var5.minimumSize();
- var2.width = Math.max(var2.width, var6.width);
- if (var4 > 0) {
- var2.height += this.vVGap;
- }
-
- var2.height += var6.height;
- }
- }
-
- Insets var7 = var1.insets();
- var2.width += var7.left + var7.right + this.vHGap * 2;
- var2.height += var7.top + var7.bottom + this.vVGap * 2;
- return var2;
- }
- }
-
- public void layoutContainer(Container var1) {
- if (this.orientation == 0) {
- super.layoutContainer(var1);
- } else {
- Insets var2 = var1.insets();
- Dimension var3 = ((Component)var1).size();
- int var4 = var3.height - (var2.top + var2.bottom + this.vVGap * 2);
- int var5 = var2.left + this.vHGap;
- int var6 = 0;
- int var7 = 0;
- int var8 = 0;
- int var9 = var1.countComponents();
-
- for(int var10 = 0; var10 < var9; ++var10) {
- Component var11 = var1.getComponent(var10);
- if (var11.isVisible()) {
- Dimension var12 = var11.preferredSize();
- var11.resize(var12.width, var12.height);
- if (var6 != 0 && var6 + var12.height > var4) {
- this.moveComponents(var1, var5, var2.top + this.vVGap, var7, var4 - var6, var8, var10);
- var5 += this.vHGap + var7;
- var6 = var12.width;
- var7 = var12.width;
- var8 = var10;
- } else {
- if (var6 > 0) {
- var6 += this.vVGap;
- }
-
- var6 += var12.height;
- var7 = Math.max(var7, var12.width);
- }
- }
- }
-
- this.moveComponents(var1, var5, var2.top + this.vVGap, var7, var4 - var6, var8, var9);
- }
- }
-
- private void moveComponents(Container var1, int var2, int var3, int var4, int var5, int var6, int var7) {
- switch (this.vAlign) {
- case 0:
- default:
- break;
- case 1:
- var3 += var5 / 2;
- break;
- case 2:
- var3 += var5;
- }
-
- for(int var8 = var6; var8 < var7; ++var8) {
- Component var9 = var1.getComponent(var8);
- Dimension var10 = var9.size();
- if (var9.isVisible()) {
- var9.move(var2 + (var4 - var10.width) / 2, var3);
- var3 += this.vVGap + var10.height;
- }
- }
-
- }
-
- public String toString() {
- String var1 = "";
- switch (this.orientation) {
- case 0:
- var1 = "orientation=horizontal, ";
- break;
- case 1:
- var1 = "orientation=vertical, ";
- }
-
- return this.getClass().getName() + "[" + var1 + super.toString() + "]";
- }
- }
-