blob: ac7638bd7d3e0fc2ed0775034033e1e583b479ae [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2017 Exyte
*
* 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:
* Yuri Strot - initial API and Implementation
*******************************************************************************/
package org.eclipse.ui.glance.controls.table;
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;
import org.eclipse.ui.glance.controls.items.ItemProvider;
/**
* @author Yuri Strot
*
*/
public class TableItemProvider implements ItemProvider {
private TableItemProvider() {
}
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;
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.ui.glance.internal.items.ItemProvider#getBackground(org.eclipse
* .swt.widgets.Item, int)
*/
public Color getBackground(Item item, int index) {
return getItem(item).getBackground(index);
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.ui.glance.internal.items.ItemProvider#getColumnCount(org.eclipse
* .swt.widgets.Item)
*/
public int getColumnCount(Item item) {
return getItem(item).getParent().getColumnCount();
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.ui.glance.internal.items.ItemProvider#getForeground(org.eclipse
* .swt.widgets.Item, int)
*/
public Color getForeground(Item item, int index) {
return getItem(item).getForeground(index);
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.ui.glance.internal.items.ItemProvider#getText(org.eclipse.swt.
* widgets.Item, int)
*/
public String getText(Item item, int index) {
return getItem(item).getText(index);
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.ui.glance.internal.items.ItemProvider#getImage(org.eclipse.swt
* .widgets.Item, int)
*/
public Image getImage(Item item, int index) {
return getItem(item).getImage(index);
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.ui.glance.internal.items.ItemProvider#getImageBounds(org.eclipse
* .swt.widgets.Item, int)
*/
public Rectangle getImageBounds(Item item, int index) {
return getItem(item).getImageBounds(index);
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.ui.glance.internal.items.ItemProvider#getTextBounds(org.eclipse
* .swt.widgets.Item, int)
*/
public Rectangle getTextBounds(Item item, int index) {
return getItem(item).getTextBounds(index);
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.ui.glance.internal.items.ItemProvider#getBounds(org.eclipse.swt
* .widgets.Item, int)
*/
public Rectangle getBounds(Item item, int index) {
return getItem(item).getBounds(index);
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.ui.glance.internal.items.ItemProvider#getFont(org.eclipse.swt.
* widgets.Item, int)
*/
public Font getFont(Item item, int index) {
return getItem(item).getFont(index);
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.ui.glance.internal.items.ItemProvider#showItem(org.eclipse.swt
* .widgets.Item)
*/
public void show(Item item) {
TableItem tItem = getItem(item);
tItem.getParent().showItem(tItem);
}
/* (non-Javadoc)
* @see org.eclipse.ui.glance.controls.items.ItemProvider#compare(org.eclipse.swt.widgets.Item, org.eclipse.swt.widgets.Item)
*/
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
* org.eclipse.ui.glance.internal.items.ItemProvider#select(org.eclipse.swt.widgets
* .Item)
*/
public void select(Item item) {
TableItem tItem = getItem(item);
tItem.getParent().setSelection(tItem);
}
}