001: /*
002: * Copyright (c) 2004 JETA Software, Inc. All rights reserved.
003: *
004: * Redistribution and use in source and binary forms, with or without modification,
005: * are permitted provided that the following conditions are met:
006: *
007: * o Redistributions of source code must retain the above copyright notice,
008: * this list of conditions and the following disclaimer.
009: *
010: * o Redistributions in binary form must reproduce the above copyright notice,
011: * this list of conditions and the following disclaimer in the documentation
012: * and/or other materials provided with the distribution.
013: *
014: * o Neither the name of JETA Software nor the names of its contributors may
015: * be used to endorse or promote products derived from this software without
016: * specific prior written permission.
017: *
018: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
019: * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
020: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
021: * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
022: * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
023: * INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
024: * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
025: * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
026: * INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
027: * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
028: */
029:
030: package com.jeta.forms.gui.form;
031:
032: import java.awt.Insets;
033:
034: import com.jgoodies.forms.layout.CellConstraints;
035:
036: /**
037: * An interface that defines the attributes of a CellConstraints object in a
038: * FormLayout. This interface is needed because we want to decouple the our
039: * architecture from the knowledge needed to get the CellConstraints from the
040: * FormLayout. This has the added benefit of allowing us to create Proxy objects
041: * which can improve performance because the FormLayout always returns copies
042: * rather than the actual CellConstraints. This causes significant delays during
043: * repaints.
044: *
045: * @author Jeff Tassin
046: */
047: public interface ComponentConstraints extends Cloneable {
048: /**
049: * Cloneable implementation
050: */
051: public Object clone();
052:
053: /**
054: * Returns a CellConstraints copy based on this definition.
055: *
056: * @returns a CellConstraints object based on this definition
057: */
058: public CellConstraints createCellConstraints();
059:
060: /**
061: * Return the first column of the cell specified by this constraints object.
062: *
063: * @return the first column
064: */
065: public int getColumn();
066:
067: /**
068: * Return the first row of the cell specified by this constraints object.
069: *
070: * @return the first row
071: */
072: public int getRow();
073:
074: /**
075: * Return the number of columns spanned by the component associated with
076: * these constraints.
077: *
078: * @return the number of columns spanned by the component
079: */
080: public int getColumnSpan();
081:
082: /**
083: * Return the number of rows spanned by the component associated with these
084: * constraints.
085: *
086: * @return the number of rows spanned by the component
087: */
088: public int getRowSpan();
089:
090: /**
091: * Return the cell insets of the component associated with these
092: * constraints.
093: *
094: * @return the insets for this component
095: */
096: public Insets getInsets();
097:
098: /**
099: * Returns the components horizontal alignment relative to its cell.
100: *
101: * @return the component's horizontal alignment.
102: */
103: public CellConstraints.Alignment getHorizontalAlignment();
104:
105: /**
106: * Returns the components vertical alignment relative to its cell.
107: *
108: * @return the component's vertical alignment.
109: */
110: public CellConstraints.Alignment getVerticalAlignment();
111:
112: }
|