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

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [libjava/] [classpath/] [javax/] [swing/] [Box.java] - Blame information for rev 14

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 14 jlechner
/* 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
                             );
202
    return glue;
203
  }
204
 
205
  public static Box createHorizontalBox()
206
  {
207
    return new Box(BoxLayout.X_AXIS);
208
  }
209
 
210
  /**
211
   * Creates a filler component which acts as glue between components.
212
   * It does not take space unless some extra space is available. If extra
213
   * space is available, this component can expand in the X direction.
214
   *
215
   * @return a glue-like filler component.
216
   */
217
  public static Component createHorizontalGlue()
218
  {
219
    Filler glue = new Filler(new Dimension(0,0), new Dimension(0,0),
220
                             new Dimension(Short.MAX_VALUE, 0)
221
                             );
222
    return glue;
223
  }
224
 
225
  /**
226
   * Creates a filler component which acts as strut between components.
227
   * It will fill exactly the specified horizontal size.
228
   *
229
   * @param width the width of this strut in pixels.
230
   *
231
   * @return a strut-like filler component.
232
   */
233
  public static Component createHorizontalStrut(int width)
234
  {
235
    Filler strut = new Filler(new Dimension(width, 0),
236
                              new Dimension(width, 0),
237
                              new Dimension(width, Integer.MAX_VALUE));
238
    return strut;
239
  }
240
 
241
  public static Component createRigidArea(Dimension d)
242
  {
243
    return new Filler(d, d, d);
244
  }
245
 
246
  public static Box createVerticalBox()
247
  {
248
    return new Box(BoxLayout.Y_AXIS);
249
  }
250
 
251
  /**
252
   * Creates a filler component which acts as glue between components.
253
   * It does not take space unless some extra space is available. If extra
254
   * space is available, this component can expand in the Y direction.
255
   *
256
   * @return a glue-like filler component.
257
   */
258
  public static Component createVerticalGlue()
259
  {
260
    return createGlue();
261
  }
262
 
263
  /**
264
   * Creates a filler component which acts as strut between components.
265
   * It will fill exactly the specified vertical size.
266
   *
267
   * @param height the height of this strut in pixels.
268
   *
269
   * @return a strut-like filler component.
270
   */
271
  public static Component createVerticalStrut(int height)
272
  {
273
    Filler strut = new Filler(new Dimension(0, height),
274
                              new Dimension(0, height),
275
                              new Dimension(Integer.MAX_VALUE, height));
276
    return strut;
277
  }
278
 
279
  public void setLayout(LayoutManager l)
280
  {
281
    throw new AWTError("Not allowed to set layout managers for boxes.");
282
  }
283
 
284
  public AccessibleContext getAccessibleContext()
285
  {
286
    if (accessibleContext == null)
287
      accessibleContext = new AccessibleBox();
288
    return accessibleContext;
289
  }
290
 
291
 
292
}

powered by: WebSVN 2.1.0

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