home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.rock;
-
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.FlowLayout;
- import java.awt.Insets;
-
- public class FitFlowLayout extends FlowLayout {
- int fixCount = -1;
- int minWidth = 0;
-
- public FitFlowLayout() {
- }
-
- public FitFlowLayout(int var1) {
- super(var1);
- }
-
- public FitFlowLayout(int var1, int var2, int var3) {
- super(var1, var2, var3);
- }
-
- public void setFixCount(int var1) {
- this.fixCount = var1;
- }
-
- public void setMinWidth(int var1) {
- this.minWidth = var1;
- }
-
- public void layoutContainer(Container var1) {
- Object var2 = ((Component)var1).getTreeLock();
- synchronized(var2){}
-
- try {
- Insets var3 = var1.getInsets();
- int var4 = ((Component)var1).getSize().width - (var3.left + var3.right + ((FlowLayout)this).getHgap() * 2);
- int var5 = var1.getComponentCount();
- int var6 = 0;
- int var7 = var3.top + ((FlowLayout)this).getVgap();
- int var8 = 0;
- byte var9 = 0;
-
- for(int var10 = 0; var10 < var5; ++var10) {
- Component var11 = var1.getComponent(var10);
- if (var11.isVisible()) {
- Dimension var12 = var11.getPreferredSize();
- Dimension var13 = var11.getMinimumSize();
- var12.width = Math.min((var4 - var6) / (var5 - var10), var12.width);
- if (var10 <= this.fixCount) {
- var12.width = Math.max(var12.width, var13.width);
- } else if (this.minWidth > 0) {
- var12.width = Math.max(var12.width, this.minWidth);
- }
-
- var11.setSize(var12.width, var12.height);
- if (var6 > 0) {
- var6 += ((FlowLayout)this).getHgap();
- }
-
- var6 += var12.width;
- var8 = Math.max(var8, var12.height);
- }
- }
-
- this.moveComponents(var1, var3.left + ((FlowLayout)this).getHgap(), var7, var4 - var6, var8, var9, var5);
- } finally {
- ;
- }
-
- }
-
- private void moveComponents(Container var1, int var2, int var3, int var4, int var5, int var6, int var7) {
- Object var8 = ((Component)var1).getTreeLock();
- synchronized(var8){}
-
- try {
- switch (((FlowLayout)this).getAlignment()) {
- case 0:
- default:
- break;
- case 1:
- var2 += var4 / 2;
- break;
- case 2:
- var2 += var4;
- }
-
- for(int var9 = var6; var9 < var7; ++var9) {
- Component var10 = var1.getComponent(var9);
- if (var10.isVisible()) {
- var10.setLocation(var2, var3 + (var5 - var10.getSize().height) / 2);
- var2 += ((FlowLayout)this).getHgap() + var10.getSize().width;
- }
- }
- } finally {
- ;
- }
-
- }
- }
-