View Javadoc

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 }