001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017:
018: package javax.swing;
019:
020: import java.awt.AWTError;
021: import java.awt.Component;
022: import java.awt.Container;
023: import java.awt.Dimension;
024: import java.awt.LayoutManager;
025: import javax.accessibility.Accessible;
026: import javax.accessibility.AccessibleContext;
027: import javax.accessibility.AccessibleRole;
028:
029: import org.apache.harmony.x.swing.internal.nls.Messages;
030:
031: public class Box extends JComponent implements Accessible {
032: private static final long serialVersionUID = 1525417495883046342L;
033:
034: protected class AccessibleBox extends
035: Container.AccessibleAWTContainer {
036: private static final long serialVersionUID = -7676166747466316885L;
037:
038: protected AccessibleBox() {
039: super ();
040: }
041:
042: @Override
043: public AccessibleRole getAccessibleRole() {
044: return AccessibleRole.FILLER;
045: }
046: };
047:
048: public static class Filler extends JComponent implements Accessible {
049: private static final long serialVersionUID = -1204263191910183998L;
050:
051: private Dimension minimumBoxSize;
052:
053: private Dimension preferredBoxSize;
054:
055: private Dimension maximumBoxSize;
056:
057: protected class AccessibleBoxFiller extends
058: Component.AccessibleAWTComponent {
059: private static final long serialVersionUID = 2256123275413517188L;
060:
061: protected AccessibleBoxFiller() {
062: super ();
063: }
064:
065: @Override
066: public AccessibleRole getAccessibleRole() {
067: return AccessibleRole.FILLER;
068: }
069: };
070:
071: protected AccessibleContext accessibleContext;
072:
073: public Filler(Dimension minimumSize, Dimension preferredSize,
074: Dimension maximumSize) {
075: super ();
076: minimumBoxSize = minimumSize;
077: preferredBoxSize = preferredSize;
078: maximumBoxSize = maximumSize;
079: }
080:
081: public void changeShape(Dimension minimumSize,
082: Dimension preferredSize, Dimension maximumSize) {
083: minimumBoxSize = minimumSize;
084: preferredBoxSize = preferredSize;
085: maximumBoxSize = maximumSize;
086: invalidate();
087: }
088:
089: @Override
090: public AccessibleContext getAccessibleContext() {
091: return (accessibleContext == null) ? (accessibleContext = new AccessibleBoxFiller())
092: : accessibleContext;
093: }
094:
095: @Override
096: public Dimension getPreferredSize() {
097: return preferredBoxSize;
098: }
099:
100: @Override
101: public Dimension getMinimumSize() {
102: return minimumBoxSize;
103: }
104:
105: @Override
106: public Dimension getMaximumSize() {
107: return maximumBoxSize;
108: }
109: }
110:
111: protected AccessibleContext accessibleContext;
112:
113: public Box(int axisType) {
114: super .setLayout(new BoxLayout(this , axisType));
115: }
116:
117: @Override
118: public AccessibleContext getAccessibleContext() {
119: return (accessibleContext == null) ? (accessibleContext = new AccessibleBox())
120: : accessibleContext;
121: }
122:
123: @Override
124: public void setLayout(LayoutManager layout) {
125: throw new AWTError(Messages.getString("swing.err.01")); //$NON-NLS-1$
126: }
127:
128: public static Component createRigidArea(Dimension size) {
129: size = (size == null ? new Dimension(0, 0) : size);
130:
131: return new Filler(new Dimension(size), new Dimension(size),
132: new Dimension(size));
133: }
134:
135: public static Box createVerticalBox() {
136: return new Box(BoxLayout.Y_AXIS);
137: }
138:
139: public static Box createHorizontalBox() {
140: return new Box(BoxLayout.X_AXIS);
141: }
142:
143: public static Component createVerticalStrut(int height) {
144: return new Filler(new Dimension(0, height), new Dimension(0,
145: height), new Dimension(Short.MAX_VALUE, height));
146: }
147:
148: public static Component createHorizontalStrut(int width) {
149: return new Filler(new Dimension(width, 0), new Dimension(width,
150: 0), new Dimension(width, Short.MAX_VALUE));
151: }
152:
153: public static Component createVerticalGlue() {
154: return new Filler(new Dimension(0, 0), new Dimension(0, 0),
155: new Dimension(0, Short.MAX_VALUE));
156: }
157:
158: public static Component createHorizontalGlue() {
159: return new Filler(new Dimension(0, 0), new Dimension(0, 0),
160: new Dimension(Short.MAX_VALUE, 0));
161: }
162:
163: public static Component createGlue() {
164: return new Filler(new Dimension(0, 0), new Dimension(0, 0),
165: new Dimension(Short.MAX_VALUE, Short.MAX_VALUE));
166: }
167: }
|