/******************************************************************************* * Copyright (c) 2007, 2010 Association for Decentralized Information Management * in Industry THTH ry. * 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: * VTT Technical Research Centre of Finland - initial API and implementation *******************************************************************************/ /* * * @author Toni Kalajainen */ package org.simantics.utils.ui.jface; import java.util.ArrayList; import java.util.List; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.LabelProviderChangedEvent; import org.eclipse.swt.graphics.Image; /** * Label provider for List array * */ public class StringListLabelProvider implements ITableLabelProvider, ILabelProvider { private final List data; private List listeners = new ArrayList(); public StringListLabelProvider(String lines[][]) { this.data = new ArrayList(lines.length); for (String line[] : lines) data.add(line); } public List getData() { return data; } public StringListLabelProvider(List data) { this.data = data; } public Image getColumnImage(Object element, int columnIndex) { return null; } public String getColumnText(Object element, int columnIndex) { String line[] = (String[])element; if (line==null) return null; if (columnIndex>=line.length) return null; return line[columnIndex]; } protected ILabelProviderListener[] getListeners() { return listeners.toArray(new ILabelProviderListener[0]); } public void addListener(ILabelProviderListener listener) { listeners.add(listener); } public void dispose() { listeners.clear(); } public boolean isLabelProperty(Object element, String property) { return false; } public void removeListener(ILabelProviderListener listener) { listeners.remove(listener); } public Image getImage(Object element) { return null; } public String getText(Object element) { return getColumnText(element, 0); } public void refreshAll() { LabelProviderChangedEvent e = new LabelProviderChangedEvent(this); for (ILabelProviderListener listener : getListeners()) listener.labelProviderChanged(e); } public void elementChanged(Object ... element) { LabelProviderChangedEvent e = new LabelProviderChangedEvent(this, element); for (ILabelProviderListener listener : getListeners()) listener.labelProviderChanged(e); } }