package com.topsun.posclient.sales.service;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ITableColorProvider;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
public class Test {
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("Test dialog");
GridLayout layout = new GridLayout();
layout.numColumns = 1;
shell.setLayout(layout);
TableViewer tableView = new TableViewer(shell, SWT.FULL_SELECTION);
tableView.setLabelProvider(new TestLableProvider());
tableView.setContentProvider(new TestContentProvider());
Table table = tableView.getTable();
GridLayout gridLayout = new GridLayout();
gridLayout.marginBottom = 0;
gridLayout.marginHeight = 0;
gridLayout.marginLeft = 0;
gridLayout.marginRight = 0;
gridLayout.marginTop = 0;
gridLayout.marginWidth = 0;
table.setLayout(gridLayout);
GridData data = new GridData(GridData.FILL_BOTH);
table.setLayoutData(data);
// table.setBackground(new Color(Display.getCurrent(), 57, 62, 63));
table.setLayoutData(new GridData(GridData.FILL_BOTH));
table.setHeaderVisible(true);
List list = new ArrayList();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
{
TableColumn column = new TableColumn(tableView.getTable(), SWT.NONE);
column.setText("11111");
column.setWidth(100);
}
{
TableColumn column = new TableColumn(tableView.getTable(), SWT.NONE);
column.setText("2222");
column.setWidth(100);
}
tableView.setInput(list);
table.addListener(SWT.MeasureItem, new Listener() {
public void handleEvent(Event event) {
event.height =30;
}
});
tableView.refresh();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
}
}
class TestLableProvider implements ITableLabelProvider, ITableColorProvider {
private Color[] bg = new Color[] { new Color(null, 210, 249, 251),
new Color(null, 251, 253, 166) };
private Image[] image = new Image[] {
ImageDescriptor.createFromImageData(new ImageData("c:/blue.png"))
.createImage(Display.getCurrent()),
ImageDescriptor.createFromImageData(new ImageData("c:/yellow.png"))
.createImage(Display.getCurrent()) };
private Color[] force = new Color[] { new Color(null, 0, 0, 0),
new Color(null, 0, 0, 0) };
private Object current = null;
private int currentColor = 0;
@Override
public void addListener(ILabelProviderListener listener) {
// TODO Auto-generated method stub
}
@Override
public void dispose() {
// TODO Auto-generated method stub
}
@Override
public boolean isLabelProperty(Object element, String property) {
// TODO Auto-generated method stub
return false;
}
@Override
public void removeListener(ILabelProviderListener listener) {
// TODO Auto-generated method stub
}
@Override
public Color getForeground(Object element, int columnIndex) {
return force[currentColor];
}
@Override
public Color getBackground(Object element, int columnIndex) {
if (current != element) {
currentColor = 1 - currentColor;
current = element;
}
return bg[currentColor];
}
@Override
public Image getColumnImage(Object element, int columnIndex) {
if (current != element) {
currentColor = 1 - currentColor;
current = element;
}
Image image = new Image(Display.getDefault(),1, 30);
// return image[currentColor];
return null;
}
@Override
public String getColumnText(Object element, int columnIndex) {
switch (columnIndex) {
case 0:
return "HAHAHAH";
case 1:
return "HAHAHAH";
case 2:
return "HAHAHAH";
}
return "HAHAHAH";
}
}
class TestContentProvider extends ArrayContentProvider {
@Override
public Object[] getElements(Object inputElement) {
if (inputElement instanceof List) {
List list = (List) inputElement;
return list.toArray();
}
return super.getElements(inputElement);
}
}