1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.argeo.cms.ui.workbench.useradmin;
17
18 import java.util.ArrayList;
19
20 import org.argeo.cms.ui.workbench.WorkbenchUiPlugin;
21 import org.argeo.node.ArgeoLogListener;
22 import org.argeo.node.ArgeoLogger;
23 import org.eclipse.jface.resource.JFaceResources;
24 import org.eclipse.jface.viewers.LabelProvider;
25 import org.eclipse.jface.viewers.TableViewer;
26 import org.eclipse.swt.SWT;
27 import org.eclipse.swt.graphics.Font;
28 import org.eclipse.swt.widgets.Composite;
29 import org.eclipse.swt.widgets.Table;
30 import org.eclipse.ui.part.ViewPart;
31
32
33
34
35
36 public class LogView extends ViewPart {
37 public static String ID = WorkbenchUiPlugin.PLUGIN_ID + ".logView";
38
39 private TableViewer viewer;
40
41 private LogContentProvider logContentProvider;
42 private ArgeoLogger argeoLogger;
43
44 @Override
45 public void createPartControl(Composite parent) {
46 Font font = JFaceResources.getTextFont();
47 Table table = new Table(parent, SWT.VIRTUAL | SWT.MULTI | SWT.H_SCROLL
48 | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
49 table.setFont(font);
50
51 viewer = new TableViewer(table);
52 viewer.setLabelProvider(new LabelProvider());
53 logContentProvider = new LogContentProvider(viewer);
54 viewer.setContentProvider(logContentProvider);
55
56 viewer.setInput(new ArrayList<String>());
57
58 if (argeoLogger != null)
59 argeoLogger.register(logContentProvider, 1000);
60 }
61
62 @Override
63 public void setFocus() {
64 viewer.getTable().setFocus();
65 }
66
67 @Override
68 public void dispose() {
69 if (argeoLogger != null)
70 argeoLogger.unregister(logContentProvider);
71 }
72
73 public void setArgeoLogger(ArgeoLogger argeoLogger) {
74 this.argeoLogger = argeoLogger;
75 }
76
77 }