1
|
/*******************************************************************************
|
2
|
* Copyright (c) 2000, 2007 IBM Corporation and others.
|
3
|
* All rights reserved. This program and the accompanying materials
|
4
|
* are made available under the terms of the Eclipse Public License v1.0
|
5
|
* which accompanies this distribution, and is available at
|
6
|
* http://www.eclipse.org/legal/epl-v10.html
|
7
|
*
|
8
|
* Contributors:
|
9
|
* IBM Corporation - initial API and implementation
|
10
|
*******************************************************************************/
|
11
|
package org.eclipse.pde.internal.runtime.logview;
|
12
|
|
13
|
import java.text.DateFormat;
|
14
|
import java.text.SimpleDateFormat;
|
15
|
import java.util.ArrayList;
|
16
|
|
17
|
import org.eclipse.core.runtime.IStatus;
|
18
|
import org.eclipse.jface.viewers.ITableLabelProvider;
|
19
|
import org.eclipse.jface.viewers.LabelProvider;
|
20
|
import org.eclipse.pde.internal.runtime.PDERuntimeMessages;
|
21
|
import org.eclipse.pde.internal.runtime.PDERuntimePluginImages;
|
22
|
import org.eclipse.swt.graphics.Image;
|
23
|
|
24
|
public class LogViewLabelProvider
|
25
|
extends LabelProvider
|
26
|
implements ITableLabelProvider {
|
27
|
|
28
|
private static int MAX_LABEL_LENGTH = 200;
|
29
|
|
30
|
private Image infoImage;
|
31
|
private Image okImage;
|
32
|
private Image errorImage;
|
33
|
private Image warningImage;
|
34
|
private Image errorWithStackImage;
|
35
|
ArrayList consumers = new ArrayList();
|
36
|
|
37
|
public LogViewLabelProvider() {
|
38
|
errorImage = PDERuntimePluginImages.DESC_ERROR_ST_OBJ.createImage();
|
39
|
warningImage = PDERuntimePluginImages.DESC_WARNING_ST_OBJ.createImage();
|
40
|
infoImage = PDERuntimePluginImages.DESC_INFO_ST_OBJ.createImage();
|
41
|
okImage = PDERuntimePluginImages.DESC_OK_ST_OBJ.createImage();
|
42
|
errorWithStackImage = PDERuntimePluginImages.DESC_ERROR_STACK_OBJ.createImage();
|
43
|
}
|
44
|
public void dispose() {
|
45
|
if (consumers.size() == 0){
|
46
|
// errorImage.dispose();
|
47
|
// infoImage.dispose();
|
48
|
// okImage.dispose();
|
49
|
// warningImage.dispose();
|
50
|
// errorWithStackImage.dispose();
|
51
|
super.dispose();
|
52
|
}
|
53
|
}
|
54
|
public Image getColumnImage(Object element, int columnIndex) {
|
55
|
LogEntry entry = (LogEntry) element;
|
56
|
if (columnIndex == 0) {
|
57
|
switch (entry.getSeverity()) {
|
58
|
case IStatus.INFO :
|
59
|
return infoImage;
|
60
|
case IStatus.OK :
|
61
|
return okImage;
|
62
|
case IStatus.WARNING :
|
63
|
return warningImage;
|
64
|
default :
|
65
|
return (entry.getStack() == null ? errorImage : errorWithStackImage);
|
66
|
}
|
67
|
}
|
68
|
return null;
|
69
|
}
|
70
|
|
71
|
public String getColumnText(Object element, int columnIndex) {
|
72
|
LogEntry entry = (LogEntry) element;
|
73
|
switch (columnIndex) {
|
74
|
case 0:
|
75
|
if (entry.getMessage() != null) {
|
76
|
String message = entry.getMessage();
|
77
|
if (message.length() > MAX_LABEL_LENGTH) {
|
78
|
String warning = PDERuntimeMessages.get().LogViewLabelProvider_truncatedMessage;
|
79
|
StringBuffer sb = new StringBuffer(message.substring(0, MAX_LABEL_LENGTH - warning.length()));
|
80
|
sb.append(warning);
|
81
|
return sb.toString();
|
82
|
}
|
83
|
return entry.getMessage();
|
84
|
}
|
85
|
case 1:
|
86
|
if (entry.getPluginId() != null)
|
87
|
return entry.getPluginId();
|
88
|
case 2:
|
89
|
if (entry.getDate() != null) {
|
90
|
DateFormat formatter = new SimpleDateFormat(LogEntry.F_DATE_FORMAT);
|
91
|
return formatter.format(entry.getDate());
|
92
|
}
|
93
|
}
|
94
|
return ""; //$NON-NLS-1$
|
95
|
}
|
96
|
|
97
|
public void connect(Object consumer) {
|
98
|
if (!consumers.contains(consumer))
|
99
|
consumers.add(consumer);
|
100
|
}
|
101
|
|
102
|
public void disconnect(Object consumer) {
|
103
|
consumers.remove(consumer);
|
104
|
if (consumers.size() == 0) {
|
105
|
dispose();
|
106
|
}
|
107
|
}
|
108
|
}
|