Tree color TreeViewer alternative

I am new to eclipse SWT. I am trying to override a method getBackground ITableColorProviderto color the strings as an alternative to treeViewer. I tried coloring with row index (index%2 == 0). Instead, it colors all the lines.

TreeViewerselects one cell at a time, not a row. Any pointers to how to achieve it (alternative row color for treeviewer) or a piece of code will be very useful.

List<TreeItem> treeItems = Arrays.asList( m_viewer.getTree().getItems() );
int index = treeItems.indexOf( element );

if( index % 2 == 0 )
        {
            backgroundColor = Display.getDefault().getSystemColor(
                    SWT.COLOR_YELLOW );
        }
        else
        {
            backgroundColor = Display.getDefault().getSystemColor(
                    SWT.COLOR_GRAY );
        }
0
source share
1 answer

ITableColorProviderused for TableViewer, for TreeVieweryour class, which extends LabelProvider, must implementIColorProvider

public class MyLabelProvider extends LabelProvider implements IColorProvider{

        @Override
        public String getText(Object element) {
            //how the label is obtained for an element
        }

        @Override
        public Color getBackground(Object element) {
            if(((TreeItem) element).getId() % 2 == 0) {
                return Display.getCurrent().getSystemColor(SWT.COLOR_BLUE);
            }else{
                return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
            }                   
        }

        @Override
        public Color getForeground(Object element) {
            return null;
        }
    }

- org.eclipse.swt.graphics.Color. , TreeItem id,

0

Source: https://habr.com/ru/post/1708749/


All Articles