package org.safehaus.penrose.studio.federation.linking; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.jface.viewers.ITableColorProvider; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.SWT; import org.safehaus.penrose.ldap.SearchResult; import org.safehaus.penrose.federation.IdentityLinkingResult; import java.util.Collection; /** * @author Endi Sukma Dewata */ public class LocalTableLabelProvider implements ITableLabelProvider, ITableColorProvider { Color red; Color green; Color blue; public LocalTableLabelProvider() { Display display = Display.getDefault(); red = display.getSystemColor(SWT.COLOR_RED); green = display.getSystemColor(SWT.COLOR_GREEN); blue = display.getSystemColor(SWT.COLOR_BLUE); } public void dispose() { } public Image getColumnImage(Object object, int index) { return null; } public String getColumnText(Object object, int index) { IdentityLinkingResult data = (IdentityLinkingResult)object; switch (index) { case 0: return data.getDn().toString(); case 1: String status = data.getStatus(); return status == null ? "" : status; } return ""; } public void addListener(ILabelProviderListener listener) { } public boolean isLabelProperty(Object object, String property) { return false; } public void removeListener(ILabelProviderListener listener) { } public Color getForeground(Object object, int index) { IdentityLinkingResult data = (IdentityLinkingResult)object; if (index == 0) return null; Collection<SearchResult> links = data.getLinkedEntries(); if (!links.isEmpty()) { if (links.size() == 1) { return green; } else { return red; } } if (!data.isSearched()) return null; Collection<SearchResult> matches = data.getMatchedEntries(); if (!matches.isEmpty()) { if (matches.size() == 1) { return blue; } else { return blue; } } return red; } public Color getBackground(Object object, int i) { return null; } }