/** Specifies the gap size to be the default one <b>AND</b> moves to the next column/row. The method is called <code>.gap()</code> * rather the more natural <code>.next()</code> to indicate that it is very much related to the other <code>.gap(..)</code> methods. * <p> * For a more thorough explanation of what this constraint does see the white paper or cheat Sheet at www.migcomponents.com. * @return <code>this</code> so it is possible to chain calls. E.g. <code>new AxisConstraint().noGrid().gap().fill()</code>. */ public final AC gap() { curIx++; makeSize(curIx); return this; }
/** Sets the total number of rows/columns to <code>size</code>. If the number of rows/columns is already more * than <code>size</code> nothing will happen. * @param size The total number of rows/columns * @return <code>this</code> so it is possible to chain calls. E.g. <code>new AxisConstraint().noGrid().gap().fill()</code>. */ public final AC count(int size) { makeSize(size); return this; }
/** Sets the current row/column to <code>i</code>. If the current number of rows/columns is less than <code>i</code> a call * to {@link #count(int)} will set the size accordingly. * <p> * The next call to any of the constraint methods (e.g. {@link net.miginfocom.layout.AC#noGrid}) will be carried * out on this new row/column. * <p> * For a more thorough explanation of what this constraint does see the white paper or cheat Sheet at www.migcomponents.com. * @param i The new current row/column. * @return <code>this</code> so it is possible to chain calls. E.g. <code>new AxisConstraint().noGrid().gap().fill()</code>. */ public final AC index(int i) { makeSize(i); curIx = i; return this; }
/** Specifies that the indicated rows'/columns' component should grow by default. It does not affect the size of the row/column. * <p> * For a more thorough explanation of what this constraint does see the white paper or cheat Sheet at www.migcomponents.com. * @param indexes The index(es) (0-based) of the columns/rows that should be affected by this constraint. * @return <code>this</code> so it is possible to chain calls. E.g. <code>new AxisConstraint().noGrid().gap().fill()</code>. */ public final AC fill(int... indexes) { for (int i = indexes.length - 1; i >= 0; i--) { int ix = indexes[i]; makeSize(ix); cList.get(ix).setFill(true); } return this; }
/** Specifies the indicated rows'/columns' shrink priority. * <p> * For a more thorough explanation of what this constraint does see the white paper or cheat Sheet at www.migcomponents.com. * @param p The new shrink priority. * @param indexes The index(es) (0-based) of the columns/rows that should be affected by this constraint. * @return <code>this</code> so it is possible to chain calls. E.g. <code>new AxisConstraint().noGrid().gap().fill()</code>. */ public final AC shrinkPrio(int p, int... indexes) { for (int i = indexes.length - 1; i >= 0; i--) { int ix = indexes[i]; makeSize(ix); cList.get(ix).setShrinkPriority(p); } return this; }
/** Specifies that the indicated rows/columns should be put in the size group <code>s</code> and will thus share the same size * constraints as the other components in the group. * <p> * For a more thorough explanation of what this constraint does see the white paper or cheat Sheet at www.migcomponents.com. * @param s A name to associate on the group that should be the same for other rows/columns in the same group. * @param indexes The index(es) (0-based) of the columns/rows that should be affected by this constraint. * @return <code>this</code> so it is possible to chain calls. E.g. <code>new AxisConstraint().noGrid().gap().fill()</code>. */ public final AC sizeGroup(String s, int... indexes) { for (int i = indexes.length - 1; i >= 0; i--) { int ix = indexes[i]; makeSize(ix); cList.get(ix).setSizeGroup(s); } return this; }
/** Specifies the indicated rows'/columns' grow weight within columns/rows with the same <code>grow priority</code>. * <p> * For a more thorough explanation of what this constraint does see the white paper or cheat Sheet at www.migcomponents.com. * @param w The new grow weight. * @param indexes The index(es) (0-based) of the columns/rows that should be affected by this constraint. * @return <code>this</code> so it is possible to chain calls. E.g. <code>new AxisConstraint().noGrid().gap().fill()</code>. */ public final AC grow(float w, int... indexes) { Float gw = new Float(w); for (int i = indexes.length - 1; i >= 0; i--) { int ix = indexes[i]; makeSize(ix); cList.get(ix).setGrow(gw); } return this; }
/** Specifies that the indicated rows/columns should not be grid-like. The while row/column will have its components layed out * in one single cell. It is the same as to say that the cells in this column/row will all be merged (a.k.a spanned). * <p> * For a more thorough explanation of what this constraint does see the white paper or cheat Sheet at www.migcomponents.com. * @param indexes The index(es) (0-based) of the columns/rows that should be affected by this constraint. * @return <code>this</code> so it is possible to chain calls. E.g. <code>new AxisConstraint().noGrid().gap().fill()</code>. */ public final AC noGrid(int... indexes) { for (int i = indexes.length - 1; i >= 0; i--) { int ix = indexes[i]; makeSize(ix); cList.get(ix).setNoGrid(true); } return this; }
/** Specifies the indicated rows'/columns' grow priority. * <p> * For a more thorough explanation of what this constraint does see the white paper or cheat Sheet at www.migcomponents.com. * @param p The new grow priority. * @param indexes The index(es) (0-based) of the columns/rows that should be affected by this constraint. * @return <code>this</code> so it is possible to chain calls. E.g. <code>new AxisConstraint().noGrid().gap().fill()</code>. */ public final AC growPrio(int p, int... indexes) { for (int i = indexes.length - 1; i >= 0; i--) { int ix = indexes[i]; makeSize(ix); cList.get(ix).setGrowPriority(p); } return this; }
/** Specifies the indicated rows'/columns' shrink weight within the columns/rows with the same <code>shrink priority</code>. * <p> * For a more thorough explanation of what this constraint does see the White Paper or Cheat Sheet at www.migcomponents.com. * @param w The shrink weight. * @param indexes The index(es) (0-based) of the columns/rows that should be affected by this constraint. * @return <code>this</code> so it is possible to chain calls. E.g. <code>new AxisConstraint().noGrid().gap().fill()</code>. * @since 3.7.2 */ public final AC shrink(float w, int... indexes) { Float sw = new Float(w); for (int i = indexes.length - 1; i >= 0; i--) { int ix = indexes[i]; makeSize(ix); cList.get(ix).setShrink(sw); } return this; }
/** Specifies the indicated rows'/columns' min and/or preferred and/or max size. E.g. <code>"10px"</code> or <code>"50:100:200"</code>. * <p> * For a more thorough explanation of what this constraint does see the white paper or cheat Sheet at www.migcomponents.com. * @param size The minimum and/or preferred and/or maximum size of this row. The string will be interpreted * as a <b>BoundSize</b>. For more info on how <b>BoundSize</b> is formatted see the documentation. * @param indexes The index(es) (0-based) of the columns/rows that should be affected by this constraint. * @return <code>this</code> so it is possible to chain calls. E.g. <code>new AxisConstraint().noGrid().gap().fill()</code>. */ public final AC size(String size, int... indexes) { BoundSize bs = ConstraintParser.parseBoundSize(size, false, true); for (int i = indexes.length - 1; i >= 0; i--) { int ix = indexes[i]; makeSize(ix); cList.get(ix).setSize(bs); } return this; }
/** Specifies the indicated rows'/columns' gap size to <code>size</code>. * <p> * For a more thorough explanation of what this constraint does see the white paper or cheat Sheet at www.migcomponents.com. * @param size minimum and/or preferred and/or maximum size of the gap between this and the next row/column. * The string will be interpreted as a <b>BoundSize</b>. For more info on how <b>BoundSize</b> is formatted see the documentation. * @param indexes The index(es) (0-based) of the columns/rows that should be affected by this constraint. * @return <code>this</code> so it is possible to chain calls. E.g. <code>new AxisConstraint().noGrid().gap().fill()</code>. */ public final AC gap(String size, int... indexes) { BoundSize bsa = size != null ? ConstraintParser.parseBoundSize(size, true, true) : null; for (int i = indexes.length - 1; i >= 0; i--) { int ix = indexes[i]; makeSize(ix + 1); if (bsa != null) cList.get(ix).setGapAfter(bsa); } return this; }
/** Specifies the indicated rows'/columns' columns default alignment <b>for its components</b>. It does not affect the positioning * or size of the columns/row itself. For columns it is the horizontal alignment (e.g. "left") and for rows it is the vertical * alignment (e.g. "top"). * <p> * For a more thorough explanation of what this constraint does see the white paper or cheat Sheet at www.migcomponents.com. * @param side The default side to align the components. E.g. "top" or "left", or "before" or "after" or "bottom" or "right". * @param indexes The index(es) (0-based) of the columns/rows that should be affected by this constraint. * @return <code>this</code> so it is possible to chain calls. E.g. <code>new AxisConstraint().noGrid().gap().fill()</code>. */ public final AC align(String side, int... indexes) { UnitValue al = ConstraintParser.parseAlignKeywords(side, true); if (al == null) al = ConstraintParser.parseAlignKeywords(side, false); for (int i = indexes.length - 1; i >= 0; i--) { int ix = indexes[i]; makeSize(ix); cList.get(ix).setAlign(al); } return this; }