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 }