/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.ui.common.table; import org.eclipse.jface.viewers.CellEditor; import org.eclipse.jface.viewers.TextCellEditor; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Image; /** * @param <T> * @param <V> * * @since 8.0 */ public abstract class DefaultColumnProvider<T, V> implements ColumnProvider<T, V> { /** * {@inheritDoc} * * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) */ @Override @SuppressWarnings( "unchecked" ) public int compare( final T element1, final T element2 ) { final V value = getValue(element1); if (value instanceof Comparable) return ((Comparable)value).compareTo(getValue(element2)); final String text = getText(element1); if (text != null) return text.compareTo(getText(element2)); return 0; } /** * {@inheritDoc} * * @return {{@link SWT#LEFT} * @see org.teiid.designer.ui.common.table.ColumnProvider#getAlignment() */ @Override public int getAlignment() { return SWT.LEFT; } /** * {@inheritDoc} * * @return the {@link TextCellEditor} class * @see org.teiid.designer.ui.common.table.ColumnProvider#getEditorClass() */ @Override public Class<? extends CellEditor> getEditorClass() { return TextCellEditor.class; } /** * {@inheritDoc} * * @return <code>null</code> * @see org.teiid.designer.ui.common.table.ColumnProvider#getImage(java.lang.Object) */ @Override public Image getImage( final T element ) { return null; } /** * {@inheritDoc} * * @return {@link #getValue(Object)}<code>.toString()</code> * @see org.teiid.designer.ui.common.table.ColumnProvider#getText(java.lang.Object) */ @Override public String getText( final T element ) { final V value = getValue(element); return value == null ? null : value.toString(); } /** * {@inheritDoc} * * @return <code>null</code> * @see org.teiid.designer.ui.common.table.ColumnProvider#getText(java.lang.Object) */ @Override public String getToolTip( final T element ) { return null; } /** * {@inheritDoc} * * @return <code>false</code> * @see org.teiid.designer.ui.common.table.ColumnProvider#isEditable(java.lang.Object) */ @Override public boolean isEditable( final T element ) { return false; } /** * {@inheritDoc} * * @return <code>true</code> * @see org.teiid.designer.ui.common.table.ColumnProvider#isResizable() */ @Override public boolean isResizable() { return true; } /** * {@inheritDoc} * * @return <code>true</code> * @see org.teiid.designer.ui.common.table.ColumnProvider#isSortable() */ @Override public boolean isSortable() { return true; } /** * {@inheritDoc} * <p> * This implementation does nothing. * </p> * * @see org.teiid.designer.ui.common.table.ColumnProvider#getValue(java.lang.Object) */ @Override public void setValue( final T element, final V value ) { } }