1 /* 2 * Fsgrep is a simple Java application which allows a user to 3 * search all files in a directory structure for lines matching 4 * a given pattern. Its functionality is a combination of the 5 * Unix 'find' and 'grep' utilities. 6 * Visit [http://fsgrep.sourceforge.net/] for more information. 7 * 8 * Copyright (C) 2003-2006 Murali Krishnan [murali_ca_us@users.sourceforge.net] 9 * 10 * Fsgrep is free software; you can redistribute it and/or modify 11 * it under the terms of version 2 of the GNU General Public 12 * License as published by the Free Software Foundation. 13 * 14 * Fsgrep is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with Fsgrep (see the file named LICENSE.txt); if not, write 21 * to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, 22 * Boston, MA 02111-1307 USA 23 */ 24 25 package mk.fsgrep.gui; 26 27 28 import java.awt.Dimension; 29 import java.util.HashSet; 30 import java.util.Set; 31 32 import javax.swing.JComponent; 33 34 35 /*** 36 * Ensures all the elements in the set are the same preferred size. 37 * 38 * @author Murali Krishnan 39 * 40 */ 41 public class CommonSizeSet { 42 43 //------------------------------------------------------------ 44 //- Class Variables 45 46 47 48 //------------------------------------------------------------ 49 //- Class Functions 50 51 52 53 //------------------------------------------------------------ 54 //- Instance Variables 55 56 private Set<JComponent> _set = new HashSet<JComponent>(); 57 58 59 //------------------------------------------------------------ 60 //- Constructors 61 62 63 64 //------------------------------------------------------------ 65 //- Accessors 66 67 protected Set<JComponent> getSet() {return _set;} 68 69 70 //------------------------------------------------------------ 71 //- Settors 72 73 74 75 //------------------------------------------------------------ 76 //- Private/Protected Utility Functions 77 78 79 80 //------------------------------------------------------------ 81 //- Public Interface Functions 82 83 public CommonSizeSet add(JComponent component) { 84 getSet().add(component); 85 86 return this; 87 } 88 89 90 public void equalize() { 91 int maxWidth = 0; 92 int maxHeight = 0; 93 94 for (JComponent component : getSet()) { 95 Dimension size = component.getPreferredSize(); 96 maxWidth = Math.max(maxWidth, size.width); 97 maxHeight = Math.max(maxHeight, size.height); 98 } 99 100 Dimension common = new Dimension(maxWidth, maxHeight); 101 // System.out.println("Common size: " + common); 102 103 for (JComponent component : getSet()) { 104 component.setPreferredSize(common); 105 } 106 } 107 108 109 //------------------------------------------------------------ 110 //- Class Interface Functions 111 112 113 114 //------------------------------------------------------------ 115 //- Inner Classes 116 117 118 119 //------------------------------------------------------------ 120 //- Main 121 122 123 124 }