blob: e029d07765f15293e6847173f8d4e775367fa14d [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2002, 2003 IBM Corporation and others.
* 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:
* IBM Corporation - initial API and implementation
****************************************************************************/
package org.eclipse.gmf.runtime.diagram.ui.dialogs.sortfilter;
import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.swt.SWT;
/**
* Wrapper for creating <code>TableColumn</code> column information.
*
* @author jcorchis
*/
public class SortFilterCollectionColumn {
/** Column infomation with default values */
private int alignment = SWT.LEFT;
private int width = 80;
private boolean resizable = true;
private String caption;
private ViewerSorter columnSorter;
/**
* Constructor for the <code>SortFilterCollectionColumn</code>. All instances
* must have a column label.
* @param caption the column caption
*/
public SortFilterCollectionColumn(String caption) {
this.caption = caption;
}
/**
* Constructor for the <code>SortFilterCollectionColumn</code>.
* @param caption the column caption
* @param sorter the sorter
*/
public SortFilterCollectionColumn(String caption, ViewerSorter sorter) {
this.caption = caption;
this.columnSorter = sorter;
}
/**
* SortFilterCollectionColumn constructor with the specified
* column attributes.
* @param caption the column name
* @param alignment the column's alignment
* @param width the column's width in pixels
* @param sorter the sorter
*/
public SortFilterCollectionColumn(
String caption,
int alignment,
int width,
ViewerSorter sorter) {
this.caption = caption;
this.alignment = alignment;
this.width = width;
this.columnSorter = sorter;
}
/**
* Gets the column's display name
* @return String the column's display name
*/
public String getCaption() {
return caption;
}
/**
* Gets the horizontal alignment type
* @return int the horizontal alignment type
*/
public int getAlignment() {
return alignment;
}
/**
* Gets the width column's width.
* @return the width
*/
public int getWidth() {
return width;
}
/**
* Sets the horizontal alignment type. Use SWT
* @param alignment the horizontal alignment type
*/
public void setAlignment(int alignment) {
this.alignment = alignment;
}
/**
* Determines if column is resizable
* @return boolean <code>true</code> if column is resizable, otherwise <code>false</code>
*/
public boolean isResizable() {
return resizable;
}
/**
* Returns a sorter which will sort the table by this column.
* @return the <code>ViewerSorter</code> which knows how to sort the <code>Table</code>
* by this column.
*/
public ViewerSorter getColumnSorter() {
return columnSorter;
}
/**
* Uses the getCaption() to compare the equalvalence of the objects.
* @return true if the <code>SortFilterCollectionColumn</code> have the same name.
* @see java.lang.Object#equals(Object)
*/
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (!(obj instanceof SortFilterCollectionColumn)) {
return false;
}
return getCaption().equals(
((SortFilterCollectionColumn) obj).getCaption());
}
/* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
public int hashCode() {
return getCaption().hashCode();
}
}