TableViewer and RGB [message #514959] |
Wed, 17 February 2010 10:43 |
Dennis Melzer Messages: 244 Registered: July 2009 |
Senior Member |
|
|
Hello,
how can I show in a TableViewer RGB Color like in the ColorCellEditor? The Viewer shows only the String, but I want to show the Color. How can i do this?
import org.eclipse.jface.layout.TableColumnLayout;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.CellLabelProvider;
import org.eclipse.jface.viewers.ColorCellEditor;
import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.EditingSupport;
import org.eclipse.jface.viewers.ICellModifier;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerCell;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
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.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import snippet.TestEditor.Kunde;
import snippet.TestEditor.MyCellEditingSupport;
import snippet.TestEditor.MyCellLabelProvider;
public class Snippet007FullSelection {
public static class MyModel {
private RGB rgb;
public MyModel(RGB rgb) {
this.setRgb(rgb);
}
public void setRgb(RGB rgb) {
this.rgb = rgb;
}
public RGB getRgb() {
return rgb;
}
}
public Snippet007FullSelection(Shell shell) {
Composite tableComposite = new Composite(shell, SWT.NONE);
TableColumnLayout tableColumnLayout = new TableColumnLayout();
tableComposite.setLayout(tableColumnLayout);
final TableViewer v = new TableViewer(tableComposite,SWT.BORDER | SWT.SINGLE);
final TableViewerColumn viewerNameColumn = new TableViewerColumn(
v, SWT.NONE);
viewerNameColumn.getColumn().setText("RGB");
tableColumnLayout.setColumnData(viewerNameColumn.getColumn(),
new ColumnWeightData(100, 10, true));
v.setLabelProvider(new ILabelProvider() {
@Override
public void removeListener(ILabelProviderListener listener) {
// TODO Auto-generated method stub
}
@Override
public boolean isLabelProperty(Object element, String property) {
// TODO Auto-generated method stub
return false;
}
@Override
public void dispose() {
// TODO Auto-generated method stub
}
@Override
public void addListener(ILabelProviderListener listener) {
// TODO Auto-generated method stub
}
@Override
public String getText(Object element) {
// TODO Auto-generated method stub
return ((MyModel)element).getRgb().toString();
}
@Override
public Image getImage(Object element) {
// TODO Auto-generated method stub
return null;
}
});
v.setContentProvider(new ArrayContentProvider());
v.setCellEditors(new CellEditor[] {new ColorCellEditor(v.getTable()) });
v.setColumnProperties(new String[]{"rgb"});
v.setCellModifier(new ICellModifier() {
@Override
public void modify(Object element, String property, Object value) {
// TODO Auto-generated method stub
}
@Override
public Object getValue(Object element, String property) {
return null;
}
@Override
public boolean canModify(Object element, String property) {
return true;
}
});
MyModel[] model = createModel();
v.setInput(model);
v.getTable().setLinesVisible(true);
v.getTable().setHeaderVisible(true);
}
private MyModel[] createModel() {
MyModel[] elements = new MyModel[10];
for( int i = 0; i < 10; i++ ) {
elements[i] = new MyModel(new RGB(0,0, 0));
}
return elements;
}
/**
* @param args
*/
public static void main(String[] args) {
Display display = new Display ();
Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
new Snippet007FullSelection(shell);
shell.open ();
while (!shell.isDisposed ()) {
if (!display.readAndDispatch ()) display.sleep ();
}
display.dispose ();
}
}
|
|
|
Re: TableViewer and RGB [message #514964 is a reply to message #514959] |
Wed, 17 February 2010 10:48 |
Thomas Schindl Messages: 6651 Registered: July 2009 |
Senior Member |
|
|
You should not set the LabelProvider on the TableViewer but a
ColumnLabelProvider on the column and overwrite getBackgroundColor()
Please take a look at our snippets http://wiki.eclipse.org/JFaceSnippets
Tom
Am 17.02.10 11:43, schrieb SirWayne:
> Hello,
> how can I show in a TableViewer RGB Color like in the ColorCellEditor?
> The Viewer shows only the String, but I want to show the Color. How can
> i do this?
>
>
> import org.eclipse.jface.layout.TableColumnLayout;
> import org.eclipse.jface.viewers.ArrayContentProvider;
> import org.eclipse.jface.viewers.CellEditor;
> import org.eclipse.jface.viewers.CellLabelProvider;
> import org.eclipse.jface.viewers.ColorCellEditor;
> import org.eclipse.jface.viewers.ColumnWeightData;
> import org.eclipse.jface.viewers.EditingSupport;
> import org.eclipse.jface.viewers.ICellModifier;
> import org.eclipse.jface.viewers.ILabelProvider;
> import org.eclipse.jface.viewers.ILabelProviderListener;
> import org.eclipse.jface.viewers.IStructuredContentProvider;
> import org.eclipse.jface.viewers.LabelProvider;
> import org.eclipse.jface.viewers.TableViewer;
> import org.eclipse.jface.viewers.TableViewerColumn;
> import org.eclipse.jface.viewers.TextCellEditor;
> import org.eclipse.jface.viewers.Viewer;
> import org.eclipse.jface.viewers.ViewerCell;
> import org.eclipse.swt.SWT;
> import org.eclipse.swt.graphics.Image;
> import org.eclipse.swt.graphics.RGB;
> import org.eclipse.swt.layout.FillLayout;
> import org.eclipse.swt.widgets.Composite;
> 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.TableColumn;
> import org.eclipse.swt.widgets.TableItem;
>
> import snippet.TestEditor.Kunde;
> import snippet.TestEditor.MyCellEditingSupport;
> import snippet.TestEditor.MyCellLabelProvider;
>
> public class Snippet007FullSelection { public static class MyModel {
> private RGB rgb;
> public MyModel(RGB rgb) {
> this.setRgb(rgb);
> }
>
> public void setRgb(RGB rgb) {
> this.rgb = rgb;
> }
>
> public RGB getRgb() {
> return rgb;
> }
> }
> public Snippet007FullSelection(Shell shell) {
> Composite tableComposite = new Composite(shell, SWT.NONE);
> TableColumnLayout tableColumnLayout = new TableColumnLayout();
> tableComposite.setLayout(tableColumnLayout);
> final TableViewer v = new TableViewer(tableComposite,SWT.BORDER |
> SWT.SINGLE);
>
> final TableViewerColumn viewerNameColumn = new
> TableViewerColumn(
> v, SWT.NONE);
> viewerNameColumn.getColumn().setText("RGB");
> tableColumnLayout.setColumnData(viewerNameColumn.getColumn() ,
> new ColumnWeightData(100, 10, true));
> v.setLabelProvider(new ILabelProvider() {
> @Override
> public void removeListener(ILabelProviderListener listener) {
> // TODO Auto-generated method stub
> }
> @Override
> public boolean isLabelProperty(Object element, String
> property) {
> // TODO Auto-generated method stub
> return false;
> }
> @Override
> public void dispose() {
> // TODO Auto-generated method stub
> }
> @Override
> public void addListener(ILabelProviderListener listener) {
> // TODO Auto-generated method stub
> }
> @Override
> public String getText(Object element) {
> // TODO Auto-generated method stub
> return ((MyModel)element).getRgb().toString();
> }
> @Override
> public Image getImage(Object element) {
> // TODO Auto-generated method stub
> return null;
> }
> });
> v.setContentProvider(new ArrayContentProvider());
> v.setCellEditors(new CellEditor[] {new
> ColorCellEditor(v.getTable()) });
> v.setColumnProperties(new String[]{"rgb"});
> v.setCellModifier(new ICellModifier() {
> @Override
> public void modify(Object element, String property, Object
> value) {
> // TODO Auto-generated method stub
> }
> @Override
> public Object getValue(Object element, String property) {
> return null;
> }
> @Override
> public boolean canModify(Object element, String property) {
> return true;
> }
> });
> MyModel[] model = createModel();
> v.setInput(model);
> v.getTable().setLinesVisible(true);
> v.getTable().setHeaderVisible(true);
> }
> private MyModel[] createModel() {
> MyModel[] elements = new MyModel[10];
> for( int i = 0; i < 10; i++ ) {
> elements[i] = new MyModel(new RGB(0,0, 0));
> }
> return elements;
> }
> /**
> * @param args
> */
> public static void main(String[] args) {
> Display display = new Display ();
> Shell shell = new Shell(display);
> shell.setLayout(new FillLayout());
> new Snippet007FullSelection(shell);
> shell.open ();
> while (!shell.isDisposed ()) {
> if (!display.readAndDispatch ()) display.sleep ();
> }
> display.dispose ();
>
> }
>
> }
>
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.02163 seconds