/*******************************************************************************
* Copyright (c) 2008 xored software, Inc. 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:
* xored software, Inc. - initial API and Implementation (Yuri Strot)
*******************************************************************************/
package com.xored.glance.ui.controls.table;
import com.xored.glance.ui.controls.items.ItemProvider;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Item;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableItem;
/**
* @author Yuri Strot
*/
public class TableItemProvider implements ItemProvider {
private static TableItemProvider INSTANCE;
public static TableItemProvider getInstance() {
if (INSTANCE == null) {
INSTANCE = new TableItemProvider();
}
return INSTANCE;
}
public static TableItem getItem(Item item) {
return (TableItem) item;
}
private TableItemProvider() {
}
/*
* (non-Javadoc)
*
* @see com.xored.glance.ui.controls.items.ItemProvider#compare(org.eclipse.swt.widgets.Item,
* org.eclipse.swt.widgets.Item)
*/
@Override
public int compare(Item item1, Item item2) {
if (item1.equals(item2)) {
return 0;
}
Table table = getItem(item1).getParent();
TableItem[] items = table.getItems();
for (TableItem item : items) {
if (item1.equals(item)) {
return -1;
}
if (item2.equals(item)) {
return 1;
}
}
return 0;
}
/*
* (non-Javadoc)
*
* @see com.xored.glance.internal.items.ItemProvider#getBackground(org.eclipse .swt.widgets.Item,
* int)
*/
@Override
public Color getBackground(Item item, int index) {
return getItem(item).getBackground(index);
}
/*
* (non-Javadoc)
*
* @see com.xored.glance.internal.items.ItemProvider#getBounds(org.eclipse.swt .widgets.Item, int)
*/
@Override
public Rectangle getBounds(Item item, int index) {
return getItem(item).getBounds(index);
}
/*
* (non-Javadoc)
*
* @see com.xored.glance.internal.items.ItemProvider#getColumnCount(org.eclipse .swt.widgets.Item)
*/
@Override
public int getColumnCount(Item item) {
return getItem(item).getParent().getColumnCount();
}
/*
* (non-Javadoc)
*
* @see com.xored.glance.internal.items.ItemProvider#getFont(org.eclipse.swt. widgets.Item, int)
*/
@Override
public Font getFont(Item item, int index) {
return getItem(item).getFont(index);
}
/*
* (non-Javadoc)
*
* @see com.xored.glance.internal.items.ItemProvider#getForeground(org.eclipse .swt.widgets.Item,
* int)
*/
@Override
public Color getForeground(Item item, int index) {
return getItem(item).getForeground(index);
}
/*
* (non-Javadoc)
*
* @see com.xored.glance.internal.items.ItemProvider#getImage(org.eclipse.swt .widgets.Item, int)
*/
@Override
public Image getImage(Item item, int index) {
return getItem(item).getImage(index);
}
/*
* (non-Javadoc)
*
* @see com.xored.glance.internal.items.ItemProvider#getImageBounds(org.eclipse .swt.widgets.Item,
* int)
*/
@Override
public Rectangle getImageBounds(Item item, int index) {
return getItem(item).getImageBounds(index);
}
/*
* (non-Javadoc)
*
* @see com.xored.glance.internal.items.ItemProvider#getText(org.eclipse.swt. widgets.Item, int)
*/
@Override
public String getText(Item item, int index) {
return getItem(item).getText(index);
}
/*
* (non-Javadoc)
*
* @see com.xored.glance.internal.items.ItemProvider#getTextBounds(org.eclipse .swt.widgets.Item,
* int)
*/
@Override
public Rectangle getTextBounds(Item item, int index) {
return getItem(item).getTextBounds(index);
}
/*
* (non-Javadoc)
*
* @see com.xored.glance.internal.items.ItemProvider#select(org.eclipse.swt.widgets .Item)
*/
@Override
public void select(Item item) {
TableItem tItem = getItem(item);
tItem.getParent().setSelection(tItem);
}
/*
* (non-Javadoc)
*
* @see com.xored.glance.internal.items.ItemProvider#showItem(org.eclipse.swt .widgets.Item)
*/
@Override
public void show(Item item) {
TableItem tItem = getItem(item);
tItem.getParent().showItem(tItem);
}
}