Skip to main content
summaryrefslogtreecommitdiffstats
blob: b10e6205ca9d647f6b530a19deb6e25695c256d6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
package org.eclipse.ui.externaltools.internal.ui;

/**********************************************************************
Copyright (c) 2002 IBM Corp. and others.
All rights reserved.   This program and the accompanying materials
are made available under the terms of the Common Public License v0.5
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/cpl-v05.html
 
Contributors:
**********************************************************************/
import java.net.URL;

import org.eclipse.ant.core.*;
import org.eclipse.jface.viewers.*;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.*;
import org.eclipse.ui.externaltools.internal.core.ExternalToolsPlugin;

/**
 * Label provider for the items in the custmomize ant preference page: 
 * URLs, Tasks, and Types.
 */
public class AntPageLabelProvider
	extends LabelProvider
	implements ITableLabelProvider {
		
	private Image folderImage;
	private Image jarImage;
	private Image taskImage;
	private Image typeImage;

	public AntPageLabelProvider() {
	}
	public void dispose() {
		//note: folder and task are shared images
		folderImage = null;
		taskImage = null;
		if (jarImage != null) {
			jarImage.dispose();
			jarImage = null;
		}
		if (typeImage != null) {
			typeImage.dispose();
			typeImage = null;
		}
	}
	public Image getColumnImage(Object element, int columnIndex) {
		if (element instanceof URL) {
			URL url = (URL) element;
			if (url.getFile().endsWith("/")) { //$NON-NLS-1$
				return folderImage();
			} else {
				return jarImage();
			}
		}
		if (element instanceof Task) {
			return taskImage();
		}
		if (element instanceof Type) {
			return typeImage();
		}
		return null;
	}
	public String getColumnText(Object element, int columnIndex) {
		if (element instanceof URL) {
			return ((URL) element).getFile();
		}
		if (element instanceof Task) {
			Task task = (Task) element;
			return task.getTaskName() + " (" + task.getLibrary().getFile() + ": " + task.getClassName() + ")"; //$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
		}
		if (element instanceof Type) {
			Type type = (Type) element;
			return type.getTypeName() + " (" + type.getLibrary().getFile() + ": " + type.getClassName() + ")"; //$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
		}
		return element.toString();
	}
	private Image folderImage() {
		if (folderImage != null)
			return folderImage;
		folderImage =
			PlatformUI.getWorkbench().getSharedImages().getImage(
				ISharedImages.IMG_OBJ_FOLDER);
		return folderImage;
	}
	private Image jarImage() {
		if (jarImage != null)
			return jarImage;
		jarImage =
			ExternalToolsPlugin
				.getDefault()
				.getImageDescriptor(ExternalToolsPlugin.IMG_JAR_FILE)
				.createImage();
		return jarImage;
	}
	private Image taskImage() {
		if (taskImage != null)
			return taskImage;
		taskImage =
			PlatformUI.getWorkbench().getSharedImages().getImage(
				ISharedImages.IMG_OBJS_TASK_TSK);
		return taskImage;
	}
	private Image typeImage() {
		if (typeImage != null)
			return typeImage;
		typeImage =
			ExternalToolsPlugin
				.getDefault()
				.getImageDescriptor(ExternalToolsPlugin.IMG_TYPE)
				.createImage();
		return typeImage;
	}
}

Back to the top