home *** CD-ROM | disk | FTP | other *** search
- package javax.swing;
-
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.Insets;
- import java.awt.LayoutManager2;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.HashSet;
- import java.util.List;
- import java.util.Map;
- import java.util.Set;
-
- public class GroupLayout implements LayoutManager2 {
- private static final int MIN_SIZE = 0;
- private static final int PREF_SIZE = 1;
- private static final int MAX_SIZE = 2;
- private static final int SPECIFIC_SIZE = 3;
- private static final int UNSET = Integer.MIN_VALUE;
- public static final int DEFAULT_SIZE = -1;
- public static final int PREFERRED_SIZE = -2;
- private boolean autocreatePadding;
- private boolean autocreateContainerPadding;
- private Group horizontalGroup;
- private Group verticalGroup;
- private Map<Component, ComponentInfo> componentInfos;
- private Container host;
- private Set<Spring> tmpParallelSet;
- private boolean springsChanged;
- private boolean isValid;
- private boolean hasPreferredPaddingSprings;
- private LayoutStyle layoutStyle;
- private boolean honorsVisibility;
-
- private static void checkSize(int var0, int var1, int var2, boolean var3) {
- checkResizeType(var0, var3);
- if (!var3 && var1 < 0) {
- throw new IllegalArgumentException("Pref must be >= 0");
- } else {
- if (var3) {
- checkResizeType(var1, true);
- }
-
- checkResizeType(var2, var3);
- checkLessThan(var0, var1);
- checkLessThan(var1, var2);
- }
- }
-
- private static void checkResizeType(int var0, boolean var1) {
- if (var0 < 0 && (var1 && var0 != -1 && var0 != -2 || !var1 && var0 != -2)) {
- throw new IllegalArgumentException("Invalid size");
- }
- }
-
- private static void checkLessThan(int var0, int var1) {
- if (var0 >= 0 && var1 >= 0 && var0 > var1) {
- throw new IllegalArgumentException("Following is not met: min<=pref<=max");
- }
- }
-
- public GroupLayout(Container var1) {
- if (var1 == null) {
- throw new IllegalArgumentException("Container must be non-null");
- } else {
- this.honorsVisibility = true;
- this.host = var1;
- this.setHorizontalGroup(this.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, true));
- this.setVerticalGroup(this.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, true));
- this.componentInfos = new HashMap();
- this.tmpParallelSet = new HashSet();
- }
- }
-
- public void setHonorsVisibility(boolean var1) {
- if (this.honorsVisibility != var1) {
- this.honorsVisibility = var1;
- this.springsChanged = true;
- this.isValid = false;
- this.invalidateHost();
- }
-
- }
-
- public boolean getHonorsVisibility() {
- return this.honorsVisibility;
- }
-
- public void setHonorsVisibility(Component var1, Boolean var2) {
- if (var1 == null) {
- throw new IllegalArgumentException("Component must be non-null");
- } else {
- this.getComponentInfo(var1).setHonorsVisibility(var2);
- this.springsChanged = true;
- this.isValid = false;
- this.invalidateHost();
- }
- }
-
- public void setAutoCreateGaps(boolean var1) {
- if (this.autocreatePadding != var1) {
- this.autocreatePadding = var1;
- this.invalidateHost();
- }
-
- }
-
- public boolean getAutoCreateGaps() {
- return this.autocreatePadding;
- }
-
- public void setAutoCreateContainerGaps(boolean var1) {
- if (this.autocreateContainerPadding != var1) {
- this.autocreateContainerPadding = var1;
- this.horizontalGroup = this.createTopLevelGroup(this.getHorizontalGroup());
- this.verticalGroup = this.createTopLevelGroup(this.getVerticalGroup());
- this.invalidateHost();
- }
-
- }
-
- public boolean getAutoCreateContainerGaps() {
- return this.autocreateContainerPadding;
- }
-
- public void setHorizontalGroup(Group var1) {
- if (var1 == null) {
- throw new IllegalArgumentException("Group must be non-null");
- } else {
- this.horizontalGroup = this.createTopLevelGroup(var1);
- this.invalidateHost();
- }
- }
-
- private Group getHorizontalGroup() {
- byte var1 = 0;
- if (this.horizontalGroup.springs.size() > 1) {
- var1 = 1;
- }
-
- return (Group)this.horizontalGroup.springs.get(var1);
- }
-
- public void setVerticalGroup(Group var1) {
- if (var1 == null) {
- throw new IllegalArgumentException("Group must be non-null");
- } else {
- this.verticalGroup = this.createTopLevelGroup(var1);
- this.invalidateHost();
- }
- }
-
- private Group getVerticalGroup() {
- byte var1 = 0;
- if (this.verticalGroup.springs.size() > 1) {
- var1 = 1;
- }
-
- return (Group)this.verticalGroup.springs.get(var1);
- }
-
- private Group createTopLevelGroup(Group var1) {
- SequentialGroup var2 = this.createSequentialGroup();
- if (this.getAutoCreateContainerGaps()) {
- var2.addSpring(new ContainerAutoPreferredGapSpring(this));
- var2.addGroup(var1);
- var2.addSpring(new ContainerAutoPreferredGapSpring(this));
- } else {
- var2.addGroup(var1);
- }
-
- return var2;
- }
-
- public SequentialGroup createSequentialGroup() {
- return new SequentialGroup(this);
- }
-
- public ParallelGroup createParallelGroup() {
- return this.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING);
- }
-
- public ParallelGroup createParallelGroup(Alignment var1) {
- return this.createParallelGroup(var1, true);
- }
-
- public ParallelGroup createParallelGroup(Alignment var1, boolean var2) {
- return (ParallelGroup)(var1 == javax.swing.GroupLayout.Alignment.BASELINE ? new BaselineGroup(this, var2) : new ParallelGroup(this, var1, var2));
- }
-
- public ParallelGroup createBaselineGroup(boolean var1, boolean var2) {
- return new BaselineGroup(this, var1, var2);
- }
-
- public void linkSize(Component... var1) {
- this.linkSize(0, var1);
- this.linkSize(1, var1);
- }
-
- public void linkSize(int var1, Component... var2) {
- if (var2 == null) {
- throw new IllegalArgumentException("Components must be non-null");
- } else {
- for(int var3 = var2.length - 1; var3 >= 0; --var3) {
- Component var4 = var2[var3];
- if (var2[var3] == null) {
- throw new IllegalArgumentException("Components must be non-null");
- }
-
- this.getComponentInfo(var4);
- }
-
- byte var6;
- if (var1 == 0) {
- var6 = 0;
- } else {
- if (var1 != 1) {
- throw new IllegalArgumentException("Axis must be one of SwingConstants.HORIZONTAL or SwingConstants.VERTICAL");
- }
-
- var6 = 1;
- }
-
- LinkInfo var7 = this.getComponentInfo(var2[var2.length - 1]).getLinkInfo(var6);
-
- for(int var5 = var2.length - 2; var5 >= 0; --var5) {
- var7.add(this.getComponentInfo(var2[var5]));
- }
-
- this.invalidateHost();
- }
- }
-
- public void replace(Component var1, Component var2) {
- if (var1 != null && var2 != null) {
- if (this.springsChanged) {
- this.registerComponents(this.horizontalGroup, 0);
- this.registerComponents(this.verticalGroup, 1);
- }
-
- ComponentInfo var3 = (ComponentInfo)this.componentInfos.remove(var1);
- if (var3 == null) {
- throw new IllegalArgumentException("Component must already exist");
- } else {
- this.host.remove(var1);
- if (var2.getParent() != this.host) {
- this.host.add(var2);
- }
-
- var3.setComponent(var2);
- this.componentInfos.put(var2, var3);
- this.invalidateHost();
- }
- } else {
- throw new IllegalArgumentException("Components must be non-null");
- }
- }
-
- public void setLayoutStyle(LayoutStyle var1) {
- this.layoutStyle = var1;
- this.invalidateHost();
- }
-
- public LayoutStyle getLayoutStyle() {
- return this.layoutStyle;
- }
-
- private LayoutStyle getLayoutStyle0() {
- LayoutStyle var1 = this.getLayoutStyle();
- if (var1 == null) {
- var1 = LayoutStyle.getInstance();
- }
-
- return var1;
- }
-
- private void invalidateHost() {
- if (this.host instanceof JComponent) {
- ((JComponent)this.host).revalidate();
- } else {
- this.host.invalidate();
- }
-
- this.host.repaint();
- }
-
- public void addLayoutComponent(String var1, Component var2) {
- }
-
- public void removeLayoutComponent(Component var1) {
- ComponentInfo var2 = (ComponentInfo)this.componentInfos.remove(var1);
- if (var2 != null) {
- var2.dispose();
- this.springsChanged = true;
- this.isValid = false;
- }
-
- }
-
- public Dimension preferredLayoutSize(Container var1) {
- this.checkParent(var1);
- this.prepare(1);
- return this.adjustSize(this.horizontalGroup.getPreferredSize(0), this.verticalGroup.getPreferredSize(1));
- }
-
- public Dimension minimumLayoutSize(Container var1) {
- this.checkParent(var1);
- this.prepare(0);
- return this.adjustSize(this.horizontalGroup.getMinimumSize(0), this.verticalGroup.getMinimumSize(1));
- }
-
- public void layoutContainer(Container var1) {
- this.prepare(3);
- Insets var2 = var1.getInsets();
- int var3 = var1.getWidth() - var2.left - var2.right;
- int var4 = var1.getHeight() - var2.top - var2.bottom;
- boolean var5 = this.isLeftToRight();
- if (this.getAutoCreateGaps() || this.getAutoCreateContainerGaps() || this.hasPreferredPaddingSprings) {
- this.calculateAutopadding(this.horizontalGroup, 0, 3, 0, var3);
- this.calculateAutopadding(this.verticalGroup, 1, 3, 0, var4);
- }
-
- this.horizontalGroup.setSize(0, 0, var3);
- this.verticalGroup.setSize(1, 0, var4);
-
- for(ComponentInfo var7 : this.componentInfos.values()) {
- var7.setBounds(var2, var3, var5);
- }
-
- }
-
- public void addLayoutComponent(Component var1, Object var2) {
- }
-
- public Dimension maximumLayoutSize(Container var1) {
- this.checkParent(var1);
- this.prepare(2);
- return this.adjustSize(this.horizontalGroup.getMaximumSize(0), this.verticalGroup.getMaximumSize(1));
- }
-
- public float getLayoutAlignmentX(Container var1) {
- this.checkParent(var1);
- return 0.5F;
- }
-
- public float getLayoutAlignmentY(Container var1) {
- this.checkParent(var1);
- return 0.5F;
- }
-
- public void invalidateLayout(Container var1) {
- this.checkParent(var1);
- synchronized(var1.getTreeLock()) {
- this.isValid = false;
- }
- }
-
- private void prepare(int var1) {
- boolean var2 = false;
- if (!this.isValid) {
- this.isValid = true;
- this.horizontalGroup.setSize(0, Integer.MIN_VALUE, Integer.MIN_VALUE);
- this.verticalGroup.setSize(1, Integer.MIN_VALUE, Integer.MIN_VALUE);
-
- for(ComponentInfo var4 : this.componentInfos.values()) {
- if (var4.updateVisibility()) {
- var2 = true;
- }
-
- var4.clearCachedSize();
- }
- }
-
- if (this.springsChanged) {
- this.registerComponents(this.horizontalGroup, 0);
- this.registerComponents(this.verticalGroup, 1);
- }
-
- if (this.springsChanged || var2) {
- this.checkComponents();
- this.horizontalGroup.removeAutopadding();
- this.verticalGroup.removeAutopadding();
- if (this.getAutoCreateGaps()) {
- this.insertAutopadding(true);
- } else if (this.hasPreferredPaddingSprings || this.getAutoCreateContainerGaps()) {
- this.insertAutopadding(false);
- }
-
- this.springsChanged = false;
- }
-
- if (var1 != 3 && (this.getAutoCreateGaps() || this.getAutoCreateContainerGaps() || this.hasPreferredPaddingSprings)) {
- this.calculateAutopadding(this.horizontalGroup, 0, var1, 0, 0);
- this.calculateAutopadding(this.verticalGroup, 1, var1, 0, 0);
- }
-
- }
-
- private void calculateAutopadding(Group var1, int var2, int var3, int var4, int var5) {
- var1.unsetAutopadding();
- switch (var3) {
- case 0:
- var5 = var1.getMinimumSize(var2);
- break;
- case 1:
- var5 = var1.getPreferredSize(var2);
- break;
- case 2:
- var5 = var1.getMaximumSize(var2);
- }
-
- var1.setSize(var2, var4, var5);
- var1.calculateAutopadding(var2);
- }
-
- private void checkComponents() {
- for(ComponentInfo var2 : this.componentInfos.values()) {
- if (var2.horizontalSpring == null) {
- throw new IllegalStateException(javax.swing.GroupLayout.ComponentInfo.access$000(var2) + " is not attached to a horizontal group");
- }
-
- if (var2.verticalSpring == null) {
- throw new IllegalStateException(javax.swing.GroupLayout.ComponentInfo.access$000(var2) + " is not attached to a vertical group");
- }
- }
-
- }
-
- private void registerComponents(Group var1, int var2) {
- List var3 = var1.springs;
-
- for(int var4 = var3.size() - 1; var4 >= 0; --var4) {
- Spring var5 = (Spring)var3.get(var4);
- if (var5 instanceof ComponentSpring) {
- ((ComponentSpring)var5).installIfNecessary(var2);
- } else if (var5 instanceof Group) {
- this.registerComponents((Group)var5, var2);
- }
- }
-
- }
-
- private Dimension adjustSize(int var1, int var2) {
- Insets var3 = this.host.getInsets();
- return new Dimension(var1 + var3.left + var3.right, var2 + var3.top + var3.bottom);
- }
-
- private void checkParent(Container var1) {
- if (var1 != this.host) {
- throw new IllegalArgumentException("GroupLayout can only be used with one Container at a time");
- }
- }
-
- private ComponentInfo getComponentInfo(Component var1) {
- ComponentInfo var2 = (ComponentInfo)this.componentInfos.get(var1);
- if (var2 == null) {
- var2 = new ComponentInfo(this, var1);
- this.componentInfos.put(var1, var2);
- if (var1.getParent() != this.host) {
- this.host.add(var1);
- }
- }
-
- return var2;
- }
-
- private void insertAutopadding(boolean var1) {
- this.horizontalGroup.insertAutopadding(0, new ArrayList(1), new ArrayList(1), new ArrayList(1), new ArrayList(1), var1);
- this.verticalGroup.insertAutopadding(1, new ArrayList(1), new ArrayList(1), new ArrayList(1), new ArrayList(1), var1);
- }
-
- private boolean areParallelSiblings(Component var1, Component var2, int var3) {
- ComponentInfo var4 = this.getComponentInfo(var1);
- ComponentInfo var5 = this.getComponentInfo(var2);
- ComponentSpring var6;
- ComponentSpring var7;
- if (var3 == 0) {
- var6 = var4.horizontalSpring;
- var7 = var5.horizontalSpring;
- } else {
- var6 = var4.verticalSpring;
- var7 = var5.verticalSpring;
- }
-
- Set var8 = this.tmpParallelSet;
- var8.clear();
-
- for(Spring var9 = ((Spring)var6).getParent(); var9 != null; var9 = var9.getParent()) {
- var8.add(var9);
- }
-
- for(Spring var10 = ((Spring)var7).getParent(); var10 != null; var10 = var10.getParent()) {
- if (var8.contains(var10)) {
- var8.clear();
-
- while(var10 != null) {
- if (var10 instanceof ParallelGroup) {
- return true;
- }
-
- var10 = var10.getParent();
- }
-
- return false;
- }
- }
-
- var8.clear();
- return false;
- }
-
- private boolean isLeftToRight() {
- return this.host.getComponentOrientation().isLeftToRight();
- }
-
- public String toString() {
- if (this.springsChanged) {
- this.registerComponents(this.horizontalGroup, 0);
- this.registerComponents(this.verticalGroup, 1);
- }
-
- StringBuffer var1 = new StringBuffer();
- var1.append("HORIZONTAL\n");
- this.createSpringDescription(var1, this.horizontalGroup, " ", 0);
- var1.append("\nVERTICAL\n");
- this.createSpringDescription(var1, this.verticalGroup, " ", 1);
- return var1.toString();
- }
-
- private void createSpringDescription(StringBuffer var1, Spring var2, String var3, int var4) {
- String var5 = "";
- String var6 = "";
- if (var2 instanceof ComponentSpring) {
- ComponentSpring var7 = (ComponentSpring)var2;
- var5 = Integer.toString(var7.getOrigin()) + " ";
- String var8 = var7.getComponent().getName();
- if (var8 != null) {
- var5 = "name=" + var8 + ", ";
- }
- }
-
- if (var2 instanceof AutoPreferredGapSpring) {
- AutoPreferredGapSpring var10 = (AutoPreferredGapSpring)var2;
- var6 = ", userCreated=" + var10.getUserCreated() + ", matches=" + var10.getMatchDescription();
- }
-
- var1.append(var3 + var2.getClass().getName() + " " + Integer.toHexString(var2.hashCode()) + " " + var5 + ", size=" + var2.getSize() + ", alignment=" + var2.getAlignment() + " prefs=[" + var2.getMinimumSize(var4) + " " + var2.getPreferredSize(var4) + " " + var2.getMaximumSize(var4) + var6 + "]\n");
- if (var2 instanceof Group) {
- List var11 = ((Group)var2).springs;
- var3 = var3 + " ";
-
- for(int var12 = 0; var12 < var11.size(); ++var12) {
- this.createSpringDescription(var1, (Spring)var11.get(var12), var3, var4);
- }
- }
-
- }
-
- // $FF: synthetic method
- static boolean access$202(GroupLayout var0, boolean var1) {
- return var0.springsChanged = var1;
- }
-
- // $FF: synthetic method
- static boolean access$302(GroupLayout var0, boolean var1) {
- return var0.hasPreferredPaddingSprings = var1;
- }
-
- // $FF: synthetic method
- static void access$500(int var0, int var1, int var2, boolean var3) {
- checkSize(var0, var1, var2, var3);
- }
-
- // $FF: synthetic method
- static ComponentInfo access$600(GroupLayout var0, Component var1) {
- return var0.getComponentInfo(var1);
- }
-
- // $FF: synthetic method
- static Container access$700(GroupLayout var0) {
- return var0.host;
- }
-
- // $FF: synthetic method
- static LayoutStyle access$800(GroupLayout var0) {
- return var0.getLayoutStyle0();
- }
-
- // $FF: synthetic method
- static boolean access$900(GroupLayout var0) {
- return var0.isLeftToRight();
- }
-
- // $FF: synthetic method
- static boolean access$1000(GroupLayout var0, Component var1, Component var2, int var3) {
- return var0.areParallelSiblings(var1, var2, var3);
- }
- }
-