blob: c64f050d90402b17f2d6691e78e3fa8e8fb4f04a [file] [log] [blame]
/*********************************************************************
* Copyright (c) 2004, 2007 Boeing
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Boeing - initial API and implementation
**********************************************************************/
package org.eclipse.ote.client.ui.core.widgets.xhost;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.nebula.widgets.xviewer.XViewerLabelProvider;
import org.eclipse.nebula.widgets.xviewer.core.model.XViewerColumn;
import org.eclipse.ote.client.ui.core.TestHostItem;
import org.eclipse.ote.client.ui.core.widgets.ClientServerBundleVersionChecker;
import org.eclipse.ote.client.ui.internal.OteClientUiPlugin;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
/**
* @author Andrew M. Finkbeiner
*/
public class HostTableLabelProvider extends XViewerLabelProvider {
private final Image connectedImage;
private final Color goldenRod;
public HostTableLabelProvider(HostTable xViewerTest) {
super(xViewerTest);
connectedImage = OteClientUiPlugin.getImageDescriptor("OSEE-INF/images/connect.gif").createImage();
Display display = Display.getCurrent();
this.goldenRod = new Color(display, 255, 193, 37);
}
@Override
public String getColumnText(Object element, XViewerColumn xCol, int columnIndex) {
TestHostItem item = (TestHostItem) element;
if (xCol.equals(HostTableTestFactory.CONNECTED)) {
return "";
}
if (xCol.equals(HostTableTestFactory.COMMENT_COLUMN)) {
return item.getProperties().getName();
}
if (xCol.equals(HostTableTestFactory.HOST_COLUMN)) {
return item.getProperties().getStation();
}
if (xCol.equals(HostTableTestFactory.TYPE_COLUMN)) {
return item.getProperties().getType();
}
if (xCol.equals(HostTableTestFactory.UPDATE_COLUMN)) {
return item.getProperties().getDateStarted().toString();
}
if (xCol.equals(HostTableTestFactory.USERS_COLUMN)) {
return item.getProperties().getUserList();
}
if (xCol.equals(HostTableTestFactory.VERSION_COLUMN)) {
return item.getProperties().getVersion();
}
return "unhandled column";
}
@Override
public void dispose() {
goldenRod.dispose();
}
@Override
public boolean isLabelProperty(Object element, String property) {
return false;
}
@Override
public void addListener(ILabelProviderListener listener) {
// INTENTIONALLY EMPTY BLOCK
}
@Override
public void removeListener(ILabelProviderListener listener) {
// INTENTIONALLY EMPTY BLOCK
}
/*
* (non-Javadoc)
* @see org.eclipse.nebula.widgets.xviewer.XViewerLabelProvider#getBackground(java.lang.Object,
* org.eclipse.nebula.widgets.xviewer.XViewerColumn, int)
*/
@Override
public Color getBackground(Object element, XViewerColumn xCol, int columnIndex) {
TestHostItem item = (TestHostItem) element;
if (!ClientServerBundleVersionChecker.clientAndServerVersionsMatch(item)) {
return goldenRod;
}
return super.getBackground(element, xCol, columnIndex);
}
@Override
public Image getColumnImage(Object element, XViewerColumn xCol, int columnIndex) {
TestHostItem item = (TestHostItem) element;
if (xCol.equals(HostTableTestFactory.CONNECTED) && item.isConnected()) {
return connectedImage;
}
return null;
}
}