]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.utils.ui/src/org/simantics/utils/ui/jface/StringListLabelProvider.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.utils.ui / src / org / simantics / utils / ui / jface / StringListLabelProvider.java
1 /*******************************************************************************
2  * Copyright (c) 2007, 2010 Association for Decentralized Information Management
3  * in Industry THTH ry.
4  * All rights reserved. This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License v1.0
6  * which accompanies this distribution, and is available at
7  * http://www.eclipse.org/legal/epl-v10.html
8  *
9  * Contributors:
10  *     VTT Technical Research Centre of Finland - initial API and implementation
11  *******************************************************************************/
12 /*
13  * 
14  * @author Toni Kalajainen 
15  */
16 package org.simantics.utils.ui.jface;
17
18 import java.util.ArrayList;
19 import java.util.List;
20
21 import org.eclipse.jface.viewers.ILabelProvider;
22 import org.eclipse.jface.viewers.ILabelProviderListener;
23 import org.eclipse.jface.viewers.ITableLabelProvider;
24 import org.eclipse.jface.viewers.LabelProviderChangedEvent;
25 import org.eclipse.swt.graphics.Image;
26
27
28 /**
29  * Label provider for List<String[]> array
30  * 
31  */
32 public class StringListLabelProvider implements ITableLabelProvider, ILabelProvider {
33     
34     private final List<String[]> data;
35     
36     private List<ILabelProviderListener> listeners = new ArrayList<ILabelProviderListener>();
37     
38     public StringListLabelProvider(String lines[][]) {
39         this.data = new ArrayList<String[]>(lines.length);
40         for (String line[] : lines)
41             data.add(line);
42     }
43     
44     public List<String[]> getData() {
45         return data;
46     }
47     
48     public StringListLabelProvider(List<String[]> data) {
49         this.data = data;
50     }
51     
52     public Image getColumnImage(Object element, int columnIndex) {
53         return null;
54     }
55
56     public String getColumnText(Object element, int columnIndex) {                
57         String line[] = (String[])element;
58         if (line==null) return null;
59         if (columnIndex>=line.length)
60             return null;
61         return line[columnIndex];
62     }
63     
64     protected ILabelProviderListener[] getListeners() {
65         return listeners.toArray(new ILabelProviderListener[0]);
66     }
67
68     public void addListener(ILabelProviderListener listener) {
69         listeners.add(listener);
70     }
71
72     public void dispose() {
73         listeners.clear();
74     }
75
76     public boolean isLabelProperty(Object element, String property) {
77         return false;
78     }
79
80     public void removeListener(ILabelProviderListener listener) {
81         listeners.remove(listener);
82     }
83
84     public Image getImage(Object element) {
85         return null;
86     }
87
88     public String getText(Object element) {
89         return getColumnText(element, 0);
90     }
91     
92     public void refreshAll() {
93         LabelProviderChangedEvent e = new LabelProviderChangedEvent(this);
94         for (ILabelProviderListener listener : getListeners())
95             listener.labelProviderChanged(e);
96     }
97     
98     public void elementChanged(Object ... element) {
99         LabelProviderChangedEvent e = new LabelProviderChangedEvent(this, element);
100         for (ILabelProviderListener listener : getListeners())
101             listener.labelProviderChanged(e);
102     }
103     
104 }