1 42 43 package org.jfree.ui.tabbedui; 44 45 import java.awt.Component ; 46 import java.awt.Container ; 47 import java.awt.Dimension ; 48 import java.awt.Insets ; 49 import java.awt.LayoutManager ; 50 import java.awt.Rectangle ; 51 52 58 public class VerticalLayout implements LayoutManager { 59 60 64 private final boolean useSizeFromParent; 65 66 69 public VerticalLayout() { 70 this(true); 71 } 72 73 80 public VerticalLayout(final boolean useParent) { 81 this.useSizeFromParent = useParent; 82 } 83 84 91 public void addLayoutComponent(final String name, final Component comp) { 92 } 94 95 100 public void removeLayoutComponent(final Component comp) { 101 } 103 104 112 public Dimension preferredLayoutSize(final Container parent) { 113 synchronized (parent.getTreeLock()) { 114 final Insets ins = parent.getInsets(); 115 final Component [] comps = parent.getComponents(); 116 int height = ins.top + ins.bottom; 117 int width = ins.left + ins.right; 118 for (int i = 0; i < comps.length; i++) { 119 if (comps[i].isVisible() == false) { 120 continue; 121 } 122 final Dimension pref = comps[i].getPreferredSize(); 123 height += pref.height; 124 if (pref.width > width) { 125 width = pref.width; 126 } 127 } 128 129 return new Dimension (width + ins.left + ins.right, 130 height + ins.top + ins.bottom); 131 } 132 } 133 134 142 public Dimension minimumLayoutSize(final Container parent) { 143 synchronized (parent.getTreeLock()) { 144 final Insets ins = parent.getInsets(); 145 final Component [] comps = parent.getComponents(); 146 int height = ins.top + ins.bottom; 147 int width = ins.left + ins.right; 148 for (int i = 0; i < comps.length; i++) { 149 if (comps[i].isVisible() == false) { 150 continue; 151 } 152 final Dimension min = comps[i].getMinimumSize(); 153 height += min.height; 154 if (min.width > width) { 155 width = min.width; 156 } 157 } 158 return new Dimension (width + ins.left + ins.right, 159 height + ins.top + ins.bottom); 160 } 161 } 162 163 169 public boolean isUseSizeFromParent() { 170 return this.useSizeFromParent; 171 } 172 173 178 public void layoutContainer(final Container parent) { 179 synchronized (parent.getTreeLock()) { 180 final Insets ins = parent.getInsets(); 181 final int insHorizontal = ins.left + ins.right; 182 183 final int width; 184 if (isUseSizeFromParent()) { 185 final Rectangle bounds = parent.getBounds(); 186 width = bounds.width - insHorizontal; 187 } 188 else { 189 width = preferredLayoutSize(parent).width - insHorizontal; 190 } 191 final Component [] comps = parent.getComponents(); 192 193 int y = ins.top; 194 for (int i = 0; i < comps.length; i++) { 195 final Component c = comps[i]; 196 if (c.isVisible() == false) { 197 continue; 198 } 199 final Dimension dim = c.getPreferredSize(); 200 c.setBounds(ins.left, y, width, dim.height); 201 y += dim.height; 202 } 203 } 204 } 205 } 206 | Popular Tags |