/*******************************************************************************
* Copyright (c) 2011 Wind River Systems, Inc. and others. 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:
* Wind River Systems - initial API and implementation
*******************************************************************************/
package org.eclipse.tm.te.tcf.ui.tables;
import org.eclipse.core.runtime.Assert;
import org.eclipse.jface.viewers.ITableColorProvider;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
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.tm.te.tcf.locator.interfaces.nodes.IPeerModelProperties;
import org.eclipse.tm.te.tcf.ui.nls.Messages;
import org.eclipse.tm.te.ui.tables.properties.NodePropertiesTableTableNode;
/**
* TCF node properties table label provider implementation.
*/
public class NodePropertiesLabelProvider extends LabelProvider implements ITableLabelProvider, ITableColorProvider {
// Reference to the parent table viewer
private final TableViewer parentViewer;
/**
* Constructor.
*
* @param viewer The table viewer or <code>null</code>.
*/
public NodePropertiesLabelProvider(TableViewer viewer) {
super();
parentViewer = viewer;
}
/**
* Returns the parent table viewer instance.
*
* @return The parent table viewer or <code>null</code>.
*/
protected final TableViewer getParentViewer() {
return parentViewer;
}
/* (non-Javadoc)
* @see org.eclipse.tm.te.tcf.vtl.ui.datasource.controls.tables.TableLabelProvider#getColumnText(org.eclipse.tm.te.tcf.core.runtime.model.interfaces.IModelNode, int)
*/
@Override
public String getColumnText(Object element, int columnIndex) {
Assert.isNotNull(element);
String label = null;
if (element instanceof NodePropertiesTableTableNode) {
switch (columnIndex) {
case 0:
label = ((NodePropertiesTableTableNode)element).name;
break;
case 1:
label = ((NodePropertiesTableTableNode)element).value;
break;
}
if (label != null) {
if (IPeerModelProperties.PROP_LAST_SCANNER_ERROR.equals(label)) {
label = Messages.NodePropertiesLabelProvider_lastScannerError;
} else if (IPeerModelProperties.PROP_STATE.equals(label)) {
label = Messages.NodePropertiesLabelProvider_state;
} else if (IPeerModelProperties.PROP_LOCAL_SERVICES.equals(label)) {
label = Messages.NodePropertiesLabelProvider_services_local;
} else if (IPeerModelProperties.PROP_REMOTE_SERVICES.equals(label)) {
label = Messages.NodePropertiesLabelProvider_services_remote;
} else if (columnIndex == 1 && IPeerModelProperties.PROP_STATE.equals(((NodePropertiesTableTableNode)element).name)) {
label = Messages.getString("NodePropertiesLabelProvider_state_" + label.replace('-', '_')); //$NON-NLS-1$
}
}
}
return label;
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
*/
@Override
public Image getColumnImage(Object element, int columnIndex) {
return null;
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ITableColorProvider#getForeground(java.lang.Object, int)
*/
@Override
public Color getForeground(Object element, int columnIndex) {
if (element instanceof NodePropertiesTableTableNode && IPeerModelProperties.PROP_LAST_SCANNER_ERROR.equals(((NodePropertiesTableTableNode)element).name)) {
return getParentViewer().getControl().getDisplay().getSystemColor(SWT.COLOR_RED);
}
return null;
}
/* (non-Javadoc)
* @see org.eclipse.jface.viewers.ITableColorProvider#getBackground(java.lang.Object, int)
*/
@Override
public Color getBackground(Object element, int columnIndex) {
return null;
}
}