OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libjava/] [classpath/] [javax/] [swing/] [Box.java] - Blame information for rev 772

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 772 jeremybenn
/* Box.java --
2
   Copyright (C) 2002, 2004 Free Software Foundation, Inc.
3
 
4
This file is part of GNU Classpath.
5
 
6
GNU Classpath is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 2, or (at your option)
9
any later version.
10
 
11
GNU Classpath is distributed in the hope that it will be useful, but
12
WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
General Public License for more details.
15
 
16
You should have received a copy of the GNU General Public License
17
along with GNU Classpath; see the file COPYING.  If not, write to the
18
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19
02110-1301 USA.
20
 
21
Linking this library statically or dynamically with other modules is
22
making a combined work based on this library.  Thus, the terms and
23
conditions of the GNU General Public License cover the whole
24
combination.
25
 
26
As a special exception, the copyright holders of this library give you
27
permission to link this library with independent modules to produce an
28
executable, regardless of the license terms of these independent
29
modules, and to copy and distribute the resulting executable under
30
terms of your choice, provided that you also meet, for each linked
31
independent module, the terms and conditions of the license of that
32
module.  An independent module is a module which is not derived from
33
or based on this library.  If you modify this library, you may extend
34
this exception to your version of the library, but you are not
35
obligated to do so.  If you do not wish to do so, delete this
36
exception statement from your version. */
37
 
38
 
39
package javax.swing;
40
 
41
import java.awt.AWTError;
42
import java.awt.Component;
43
import java.awt.Container;
44
import java.awt.Dimension;
45
import java.awt.LayoutManager;
46
 
47
import javax.accessibility.Accessible;
48
import javax.accessibility.AccessibleContext;
49
import javax.accessibility.AccessibleRole;
50
 
51
/**
52
 * A component that uses a {@link BoxLayout} as Layout Manager.
53
 *
54
 * In addition to that, this class provides a set of static methods for
55
 * creating some filler components ('struts' and 'glue') for use in
56
 * containers that are laid out using BoxLayout.
57
 *
58
 * @author Ronald Veldema (rveldema@cs.vu.nl)
59
 */
60
public class Box extends JComponent implements Accessible
61
{
62
  private static final long serialVersionUID = 1525417495883046342L;
63
 
64
  /**
65
   * Provides accessibility support for <code>Box</code>es.
66
   */
67
  protected class AccessibleBox extends Container.AccessibleAWTContainer
68
  {
69
    private static final long serialVersionUID = -7775079816389931944L;
70
 
71
    protected AccessibleBox()
72
    {
73
      // Nothing to do here.
74
    }
75
 
76
    public AccessibleRole getAccessibleRole()
77
    {
78
      return null;
79
    }
80
  }
81
 
82
  /**
83
   * A component that servers as a filler in BoxLayout controlled containers.
84
   */
85
  public static class Filler extends JComponent implements Accessible
86
  {
87
    private static final long serialVersionUID = -1204263191910183998L;
88
 
89
    /**
90
     * Provides accessibility support for <code>Box.Filler</code>.
91
     */
92
    protected class AccessibleBoxFiller
93
      extends Component.AccessibleAWTComponent
94
    {
95
      private static final long serialVersionUID = 164963348357479321L;
96
 
97
      protected AccessibleBoxFiller()
98
      {
99
        // Nothing to do here.
100
      }
101
 
102
      public AccessibleRole getAccessibleRole()
103
      {
104
        return null;
105
      }
106
    }
107
 
108
    private transient Dimension min, pref, max;
109
 
110
    /**
111
     * Creates a new instance of Filler.
112
     *
113
     * @param min the minimum size of the filler.
114
     * @param pref the preferred size of the filler.
115
     * @param max the maximum size of the filler.
116
     */
117
    public Filler(Dimension min, Dimension pref, Dimension max)
118
    {
119
      changeShape(min, pref, max);
120
    }
121
 
122
    /**
123
     * Changes the dimensions of this Filler.
124
     *
125
     * @param min the new minimum size of the filler.
126
     * @param pref the new preferred size of the filler.
127
     * @param max the new maximum size of the filler.
128
     */
129
    public void changeShape(Dimension min, Dimension pref, Dimension max)
130
    {
131
      this.min = min;
132
      this.pref = pref;
133
      this.max = max;
134
    }
135
 
136
    public AccessibleContext getAccessibleContext()
137
    {
138
      if (accessibleContext == null)
139
        accessibleContext = new AccessibleBoxFiller();
140
      return accessibleContext;
141
    }
142
 
143
    /**
144
     * Returns the maximum size of this Filler.
145
     *
146
     * @return the maximum size of this Filler.
147
     */
148
    public Dimension getMaximumSize()
149
    {
150
      return max;
151
    }
152
 
153
    /**
154
     * Returns the minimum size of this Filler.
155
     *
156
     * @return the minimum size of this Filler.
157
     */
158
    public Dimension getMinimumSize()
159
    {
160
      return min;
161
    }
162
 
163
    /**
164
     * Returns the preferred size of this Filler.
165
     *
166
     * @return the preferred size of this Filler.
167
     */
168
    public Dimension getPreferredSize()
169
    {
170
      return pref;
171
    }
172
  }
173
 
174
  /**
175
   * Creates a new Box component, that lays out its children according
176
   * to the <code>axis</code> parameter.
177
   *
178
   * @param axis the orientation of the BoxLayout.
179
   *
180
   * @see BoxLayout#X_AXIS
181
   * @see BoxLayout#Y_AXIS
182
   * @see BoxLayout#LINE_AXIS
183
   * @see BoxLayout#PAGE_AXIS
184
   */
185
  public Box(int axis)
186
  {
187
    super.setLayout(new BoxLayout(this, axis));
188
  }
189
 
190
  /**
191
   * Creates a filler component which acts as glue between components.
192
   * It does not take space unless some extra space is available. If extra
193
   * space is available, this component can expand in both X and Y directions.
194
   *
195
   * @return a glue-like filler component.
196
   */
197
  public static Component createGlue()
198
  {
199
    Filler glue = new Filler(new Dimension(0, 0), new Dimension(0, 0),
200
                             new Dimension(Short.MAX_VALUE, Short.MAX_VALUE));
201
    return glue;
202
  }
203
 
204
  public static Box createHorizontalBox()
205
  {
206
    return new Box(BoxLayout.X_AXIS);
207
  }
208
 
209
  /**
210
   * Creates a filler component which acts as glue between components.
211
   * It does not take space unless some extra space is available. If extra
212
   * space is available, this component can expand in the X direction.
213
   *
214
   * @return a glue-like filler component.
215
   */
216
  public static Component createHorizontalGlue()
217
  {
218
    Filler glue = new Filler(new Dimension(0, 0), new Dimension(0, 0),
219
                             new Dimension(Short.MAX_VALUE, 0));
220
    return glue;
221
  }
222
 
223
  /**
224
   * Creates a filler component which acts as strut between components.
225
   * It will fill exactly the specified horizontal size.
226
   *
227
   * @param width the width of this strut in pixels.
228
   *
229
   * @return a strut-like filler component.
230
   */
231
  public static Component createHorizontalStrut(int width)
232
  {
233
    Filler strut = new Filler(new Dimension(width, 0),
234
                              new Dimension(width, 0),
235
                              new Dimension(width, Integer.MAX_VALUE));
236
    return strut;
237
  }
238
 
239
  public static Component createRigidArea(Dimension d)
240
  {
241
    return new Filler(d, d, d);
242
  }
243
 
244
  public static Box createVerticalBox()
245
  {
246
    return new Box(BoxLayout.Y_AXIS);
247
  }
248
 
249
  /**
250
   * Creates a filler component which acts as glue between components.
251
   * It does not take space unless some extra space is available. If extra
252
   * space is available, this component can expand in the Y direction.
253
   *
254
   * @return a glue-like filler component.
255
   */
256
  public static Component createVerticalGlue()
257
  {
258
    return createGlue();
259
  }
260
 
261
  /**
262
   * Creates a filler component which acts as strut between components.
263
   * It will fill exactly the specified vertical size.
264
   *
265
   * @param height the height of this strut in pixels.
266
   *
267
   * @return a strut-like filler component.
268
   */
269
  public static Component createVerticalStrut(int height)
270
  {
271
    Filler strut = new Filler(new Dimension(0, height),
272
                              new Dimension(0, height),
273
                              new Dimension(Integer.MAX_VALUE, height));
274
    return strut;
275
  }
276
 
277
  public void setLayout(LayoutManager l)
278
  {
279
    throw new AWTError("Not allowed to set layout managers for boxes.");
280
  }
281
 
282
  public AccessibleContext getAccessibleContext()
283
  {
284
    if (accessibleContext == null)
285
      accessibleContext = new AccessibleBox();
286
    return accessibleContext;
287
  }
288
 
289
 
290
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.