001 /*
002 * Copyright 2002-2004 the original author or authors.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
005 * use this file except in compliance with the License. You may obtain a copy of
006 * the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
012 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
013 * License for the specific language governing permissions and limitations under
014 * the License.
015 */
016 package org.springframework.richclient.util;
017
018 import java.awt.GridBagConstraints;
019 import java.awt.Insets;
020
021 import org.springframework.richclient.core.UIConstants;
022
023 /**
024 * Utility functions to assist using the horridly complex Grid bag layout.
025 *
026 * @author Keith Donald
027 */
028 public class GridBagCellConstraints {
029
030 public static Insets RIGHT_INSETS = new Insets(0, 0, 0, UIConstants.ONE_SPACE);
031
032 public static Insets LEFT_INSETS = new Insets(0, UIConstants.ONE_SPACE, 0, 0);
033
034 public static Insets TOP_INSETS = new Insets(UIConstants.ONE_SPACE, 0, 0, 0);
035
036 public static Insets BOTTOM_INSETS = new Insets(0, 0, UIConstants.ONE_SPACE, 0);
037
038 public static Insets TITLE_LABEL_INSETS = new Insets(0, 0, UIConstants.ONE_SPACE, UIConstants.ONE_SPACE);
039
040 public static Insets RIGHT_INSETS_TWO_SPACES = new Insets(0, 0, 0, UIConstants.ONE_SPACE);
041
042 public static Insets EVEN_INSETS = new Insets(UIConstants.ONE_SPACE, UIConstants.ONE_SPACE, UIConstants.ONE_SPACE,
043 UIConstants.ONE_SPACE);
044
045 public GridBagConstraints xy(int x, int y) {
046 GridBagConstraints result = new GridBagConstraints();
047 result.gridx = x;
048 result.gridy = y;
049 return result;
050 }
051
052 public GridBagConstraints xywh(int x, int y, int width, int height) {
053 GridBagConstraints result = xy(x, y);
054 result.gridheight = height;
055 result.gridwidth = width;
056 return result;
057 }
058
059 public GridBagConstraints xyf(int x, int y, int fill) {
060 return xyfi(x, y, fill, null);
061 }
062
063 public GridBagConstraints xyfi(int x, int y, int fill, Insets insets) {
064 GridBagConstraints result = xy(x, y);
065 result.fill = fill;
066 if (insets != null) {
067 result.insets = insets;
068 }
069 switch (result.fill) {
070 case GridBagConstraints.NONE: {
071 }
072 break;
073 case GridBagConstraints.BOTH: {
074 result.weightx = result.weighty = 1.0;
075 }
076 break;
077 case GridBagConstraints.VERTICAL: {
078 result.weighty = 1.0;
079 }
080 break;
081 case GridBagConstraints.HORIZONTAL: {
082 result.weightx = 1.0;
083 }
084 break;
085 default: {
086 result.fill = GridBagConstraints.NONE;
087 }
088 break;
089 }
090 return result;
091 }
092
093 public GridBagConstraints xya(int x, int y, int anchor) {
094 GridBagConstraints result = xy(x, y);
095 result.anchor = anchor;
096 return result;
097 }
098
099 public GridBagConstraints xyaf(int x, int y, int anchor, int fill) {
100 return xyaf(x, y, anchor, fill, null);
101 }
102
103 public GridBagConstraints xyaf(int x, int y, int anchor, int fill, Insets insets) {
104 GridBagConstraints result = xyfi(x, y, fill, insets);
105 result.anchor = anchor;
106 return result;
107 }
108
109 public GridBagConstraints title(int x, int y) {
110 GridBagConstraints result = xy(x, y);
111 result.anchor = GridBagConstraints.WEST;
112 result.insets = TITLE_LABEL_INSETS;
113 return result;
114 }
115
116 public GridBagConstraints label(int x, int y) {
117 return label(x, y, RIGHT_INSETS);
118 }
119
120 public GridBagConstraints label(int x, int y, Insets insets) {
121 GridBagConstraints result = xy(x, y);
122 result.anchor = GridBagConstraints.WEST;
123 result.insets = insets;
124 return result;
125 }
126
127 public GridBagConstraints textField(int x, int y) {
128 return xyf(x, y, GridBagConstraints.HORIZONTAL);
129 }
130
131 public GridBagConstraints textField(int x, int y, Insets insets) {
132 return xyfi(x, y, GridBagConstraints.HORIZONTAL, insets);
133 }
134
135 }