blob: bad981e02ac6c2b597ebd96f4a63235b69d3248f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011 Luis Carlos Moreira da Costa.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Luis Carlos Moreira da Costa (tcljava at gmail dot com) - initial API and implementation
*******************************************************************************/
package org.mihalis.opal.dynamictablecolumns;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TreeColumn;
/**
*
* DynamicColumnData
*
* <p>Sets the dynamic properties of a column.</p>
* <p>The objects of this class must be registered and
* handled by an instance of <code>DynamicColumnManager</code></p>
* @see org.mihalis.opal.dynamictablecolumns.DynamicTableColumnLayout
*/
public class DynamicColumnData {
/** The preferred length. */
private DynamicLength preferredLength = null;
/** The min length. */
private DynamicLength minLength = null;
/** The visible. */
private boolean visible = true;
/** The table column. */
private TableColumn tableColumn = null;
/** The tree column. */
private TreeColumn treeColumn = null;
/**
* <p>Create a dynamic column definition in order to specify
* the measures required for a <code>TableColumn</code>.</p>
*
* <p><b>Definition of length</b>
* <br>The lengths are specified using a <code>String</code>, containing
* the number, followed by an identifier of measurement.
* <br>Ex.: "355px", "100%"</p>
*
* @param tableColumn TableColumn The column (a table) that should be controlled length.
* @param preferredLength String That defines or <i>desired length</i> as column.
* @param minLength String That defines or <i>minimum length</i> as column.
*
* @see org.eclipse.swt.widgets.TableColumn
*/
public DynamicColumnData(final TableColumn tableColumn, final String preferredLength, final String minLength) {
this(tableColumn, DynamicLengthFormat.parse(preferredLength), DynamicLengthFormat.parse(minLength));
}
/**
* <p>Create a dynamic column definition in order to specify
* steps required for a <code>TableColumn</code>.</p>
* <p><i>!Builder alternative avoids setting minimum length,
* using default 0px !</i></p>
*
* <p><b>Definition of length</b>
* <br>The lengths are specified using a <code>String</code>, containing
* quantity, followed by an identifier of measurement.
* <br>Ex.: "355px", "100%"</p>
*
* @param tableColumn TableColumn The column (a table) that should be controlled length.
* @param preferredLength String That defines or <i>desired length</i> as column.
*
* @see org.eclipse.swt.widgets.TableColumn
*/
public DynamicColumnData(final TableColumn tableColumn, final String preferredLength) {
this(tableColumn, DynamicLengthFormat.parse(preferredLength), new DynamicLength(0d, DynamicLengthMeasure.PIXEL));
}
/**
* <p>Create a dynamic column definition in order to specify
* steps required for a <code>TreeColumn</code>.</p>
*
* <p><b>Definition of length</b>
* <br>The lengths are specified using a <code>String</code>, containing
* quantity, followed by an identifier of measurement.
* <br>Ex.: "355px", "100%"</p>
*
* @param treeColumn TreeColumn Column (a tree) you want to control the length.
* @param preferredLength String That defines or <i>desired length</i> as column.
* @param minLength String That defines or <i>minimum length</i> as column.
*
* @see org.eclipse.swt.widgets.TreeColumn
*/
public DynamicColumnData(final TreeColumn treeColumn, final String preferredLength, final String minLength) {
this(treeColumn, DynamicLengthFormat.parse(preferredLength), DynamicLengthFormat.parse(minLength));
}
/**
* <p>Create a dynamic column definition in order to specify
* steps required for a <code>TreeColumn</code>.</p>
* <p><i>!Builder alternative avoids setting minimum length,
* using as standard 0px !</i></p>
*
* <p><b>Definition of length</b>
* <br>The lengths are specified using a <code>String</code>, containing
* quantity, followed by an identifier of measurement.
* <br>Ex.: "355px", "100%"</p>
*
* @param treeColumn TreeColumn Column (a tree) you want to control the length.
* @param preferredLength String That defines or <i>desired length</i> as column.
*
* @see org.eclipse.swt.widgets.TreeColumn
*/
public DynamicColumnData(final TreeColumn treeColumn, final String preferredLength) {
this(treeColumn, DynamicLengthFormat.parse(preferredLength), new DynamicLength(0d, DynamicLengthMeasure.PIXEL));
}
/**
* Create a dynamic column definition in order to specify
* steps required for a <code>TableColumn</code>.
*
* @param tableColumn TableColumn The column (a table) that should be controlled length.
* @param preferredLength DynamicLength The <i>desired length</i> as column.
* @param minLength DynamicLength The <i>minimum length</i> as column.
*
* @see org.eclipse.swt.widgets.TableColumn
*/
DynamicColumnData(final TableColumn tableColumn, final DynamicLength preferredLength, final DynamicLength minLength) {
this.tableColumn = tableColumn;
this.preferredLength = preferredLength;
this.minLength = minLength;
}
/**
* Create a dynamic column definition in order to specify
* measures required for a <code>TreeColumn</code>.
*
* @param treeColumn TreColumn Column (a tree) you want to control the length.
* @param preferredLength DynamicLength The <i>desired length</i> as column.
* @param minLength DynamicLength The <i>minimum length</i> as column.
*
* @see org.eclipse.swt.widgets.TreeColumn
*/
DynamicColumnData(final TreeColumn treeColumn, final DynamicLength preferredLength, final DynamicLength minLength) {
this.treeColumn = treeColumn;
this.preferredLength = preferredLength;
this.minLength = minLength;
}
/**
* Get preferred length.
*
* @return the preferred length
*/
public DynamicLength getPreferredLength() {
return this.preferredLength;
}
/**
* Set preferred length.
*
* @param preferredLength DynamicLength
*/
public void setPreferredLength(final DynamicLength preferredLength) {
this.preferredLength = preferredLength;
}
/**
* Get minimal length.
*
* @return DynamicLength
*/
public DynamicLength getMinLength() {
return this.minLength;
}
/**
* Set minimal length.
*
* @param minLength DynamicLength
*/
public void setMinLength(final DynamicLength minLength) {
this.minLength = minLength;
}
/**
* Get table column.
*
* @return TableColumn
*/
public TableColumn getTableColumn() {
return this.tableColumn;
}
/**
* Set table column.
*
* @param tableColumn TableColumn
*/
public void setTableColumn(final TableColumn tableColumn) {
this.tableColumn = tableColumn;
}
/**
* Get tree column.
*
* @return TreeColumn
*/
public TreeColumn getTreeColumn() {
return this.treeColumn;
}
/**
* Set tree column.
*
* @param treeColumn TreeColumn
*/
public void setTreeColumn(final TreeColumn treeColumn) {
this.treeColumn = treeColumn;
}
/**
* Is visible.
*
* @return boolean
*/
public boolean isVisible() {
return this.visible;
}
/**
* Set visible.
*
* @param visible boolean
*/
public void setVisible(final boolean visible) {
this.visible = visible;
}
}