com.codename1.ui.layouts.GridBagConstraints Maven / Gradle / Ivy
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.codename1.ui.layouts;
/**
* Port of the GridBag code from Apache's Harmony
* @author Michael Danilov
*/
public class GridBagConstraints {
public static final int RELATIVE = -1;
public static final int REMAINDER = 0;
public static final int NONE = 0;
public static final int BOTH = 1;
public static final int HORIZONTAL = 2;
public static final int VERTICAL = 3;
public static final int CENTER = 10;
public static final int NORTH = 11;
public static final int NORTHEAST = 12;
public static final int EAST = 13;
public static final int SOUTHEAST = 14;
public static final int SOUTH = 15;
public static final int SOUTHWEST = 16;
public static final int WEST = 17;
public static final int NORTHWEST = 18;
public static final int PAGE_START = 19;
public static final int PAGE_END = 20;
public static final int LINE_START = 21;
public static final int LINE_END = 22;
public static final int FIRST_LINE_START = 23;
public static final int FIRST_LINE_END = 24;
public static final int LAST_LINE_START = 25;
public static final int LAST_LINE_END = 26;
public int gridx;
public int gridy;
public int gridwidth;
public int gridheight;
public double weightx;
public double weighty;
public int anchor;
public int fill;
public Insets insets;
public int ipadx;
public int ipady;
public GridBagConstraints(int gridx, int gridy, int gridwidth,
int gridheight, double weightx, double weighty, int anchor,
int fill, Insets insets, int ipadx, int ipady)
{
this.gridx = gridx;
this.gridy = gridy;
this.gridwidth = gridwidth;
this.gridheight = gridheight;
this.weightx = weightx;
this.weighty = weighty;
this.anchor = anchor;
this.fill = fill;
this.insets = (insets == null) ? null:(Insets) insets.clone();
this.ipadx = ipadx;
this.ipady = ipady;
}
public GridBagConstraints() {
gridx = RELATIVE;
gridy = RELATIVE;
gridwidth = 1;
gridheight = 1;
weightx = 0.;
weighty = 0.;
anchor = CENTER;
fill = NONE;
insets = new Insets(0, 0, 0, 0);
ipadx = 0;
ipady = 0;
}
public Object clone() {
return new GridBagConstraints(gridx, gridy, gridwidth, gridheight,
weightx, weighty, anchor, fill, insets, ipadx, ipady);
}
void verify() throws IllegalArgumentException {
int maxN = GridBagLayout.MAXGRIDSIZE - 1;
if (((gridx != RELATIVE) && (gridx < 0)) || (gridx >= maxN)) {
// awt.9C=wrong value of GridBagConstraints: {0}
throw new IllegalArgumentException("wrong value of GridBagConstraints: " + gridx); //$NON-NLS-1$ //$NON-NLS-2$
}
if (((gridy != RELATIVE) && (gridy < 0)) || (gridy >= maxN)) {
// awt.9C= {0}
throw new IllegalArgumentException("wrong value of GridBagConstraints: " + gridy); //$NON-NLS-1$ //$NON-NLS-2$
}
if (((gridwidth != RELATIVE) && (gridwidth != REMAINDER) && (gridwidth < 0))
|| (gridwidth > maxN))
{
// awt.9C={0}
throw new IllegalArgumentException("wrong value of GridBagConstraints: " + gridwidth); //$NON-NLS-1$ //$NON-NLS-2$
}
if (((gridheight != RELATIVE) && (gridheight != REMAINDER) && (gridheight < 0))
|| (gridheight > maxN))
{
// awt.9C=
throw new IllegalArgumentException("wrong value of GridBagConstraints: " + gridheight); //$NON-NLS-1$ //$NON-NLS-2$
}
if (((gridx >= 0) || (gridy >= 0))
&& ((gridwidth <= 0) || (gridheight <= 0)))
{
throw new IllegalArgumentException("relative grid size parameter goes after absolute grid coordinate"); //$NON-NLS-1$
}
if ((gridx != RELATIVE) && ((gridwidth + gridx) > maxN)) {
throw new IllegalArgumentException("wrong values sum of GridBagConstraints' gridwidth and gridx"); //$NON-NLS-1$
}
if ((gridy != RELATIVE) && ((gridheight + gridy) > maxN)) {
// awt.9F=
throw new IllegalArgumentException("wrong values sum of GridBagConstraints' gridheight and gridy"); //$NON-NLS-1$
}
if ((gridwidth == RELATIVE) && (gridheight == RELATIVE)) {
// awt.100=
throw new IllegalArgumentException("component has RELATIVE width and height"); //$NON-NLS-1$
}
if (weightx < 0.) {
// awt.9C= {0}
throw new IllegalArgumentException("wrong value of GridBagConstraints: " + weightx); //$NON-NLS-1$ //$NON-NLS-2$
}
if (weighty < 0.) {
// awt.9C=wrong value of GridBagConstraints: {0}
throw new IllegalArgumentException("wrong value of GridBagConstraints: " + weighty); //$NON-NLS-1$ //$NON-NLS-2$
}
if ((anchor != CENTER) && (anchor != NORTH) && (anchor != NORTHEAST)
&& (anchor != EAST) && (anchor != SOUTHEAST)
&& (anchor != SOUTH) && (anchor != SOUTHWEST)
&& (anchor != WEST) && (anchor != NORTHWEST)
&& (anchor != PAGE_START) && (anchor != PAGE_END)
&& (anchor != LINE_START) && (anchor != LINE_END)
&& (anchor != FIRST_LINE_START) && (anchor != FIRST_LINE_END)
&& (anchor != LAST_LINE_START) && (anchor != LAST_LINE_END)) {
// awt.9C=wrong value of GridBagConstraints: {0}
throw new IllegalArgumentException("wrong value of GridBagConstraints: " + anchor); //$NON-NLS-1$ //$NON-NLS-2$
}
if ((fill != NONE) && (fill != HORIZONTAL) && (fill != VERTICAL)
&& (fill != BOTH)) {
// awt.9C=wrong value of GridBagConstraints: {0}
throw new IllegalArgumentException("wrong value of GridBagConstraints: " + fill); //$NON-NLS-1$ //$NON-NLS-2$
}
if (ipadx < 0) {
// awt.9C=wrong value of GridBagConstraints: {0}
throw new IllegalArgumentException("wrong value of GridBagConstraints: " + ipadx); //$NON-NLS-1$ //$NON-NLS-2$
}
if (ipady < 0) {
// awt.9C=wrong value of GridBagConstraints: {0}
throw new IllegalArgumentException("wrong value of GridBagConstraints: " + ipady); //$NON-NLS-1$ //$NON-NLS-2$
}
if ((insets == null) || (insets.left < 0) || (insets.left < 0)
|| (insets.left < 0) || (insets.left < 0)) {
// awt.9C=wrong value of GridBagConstraints: {0}
throw new IllegalArgumentException("wrong value of GridBagConstraints: " + insets); //$NON-NLS-1$ //$NON-NLS-2$
}
}
}