blob: 1ec2d15b9f1db5a96fdec7e9ce93abe300725289 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2003, 2005 IBM Corporation 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:
* IBM Corporation - Initial API and implementation
*******************************************************************************/
package org.eclipse.wst.server.ui.internal.viewers;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Widget;
/**
*
*/
public class LockedTableViewer extends TableViewer {
protected Color color;
public LockedTableViewer(Composite parent) {
super(parent);
createColor(parent);
}
public LockedTableViewer(Composite parent, int style) {
super(parent, style);
createColor(parent);
}
public LockedTableViewer(Table table) {
super(table);
createColor(table);
}
protected void createColor(Control c) {
color = new Color(c.getDisplay(), 255, 255, 225);
c.addDisposeListener(new DisposeListener() {
public void widgetDisposed(DisposeEvent e) {
color.dispose();
}
});
}
public void doUpdateItem(Widget widget, Object element, boolean fullMap) {
if (color == null)
return;
if (widget instanceof TableItem) {
TableItem item = (TableItem) widget;
if (getLabelProvider() instanceof ILockedLabelProvider) {
ILockedLabelProvider provider = (ILockedLabelProvider) getLabelProvider();
if (provider.isLocked(element)) {
item.setBackground(color);
item.setImage(0, null);
} else
item.setBackground(null);
}
}
super.doUpdateItem(widget, element, fullMap);
}
}