]> git.argeo.org Git - gpl/argeo-slc.git/blob - legacy/argeo-commons/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/useradmin/AdminLogView.java
Remove old license headers
[gpl/argeo-slc.git] / legacy / argeo-commons / org.argeo.cms.ui.workbench / src / org / argeo / cms / ui / workbench / useradmin / AdminLogView.java
1 package org.argeo.cms.ui.workbench.useradmin;
2
3 import java.util.ArrayList;
4
5 import org.argeo.api.ArgeoLogger;
6 import org.argeo.cms.ui.workbench.WorkbenchUiPlugin;
7 import org.eclipse.jface.resource.JFaceResources;
8 import org.eclipse.jface.viewers.LabelProvider;
9 import org.eclipse.jface.viewers.TableViewer;
10 import org.eclipse.swt.SWT;
11 import org.eclipse.swt.graphics.Font;
12 import org.eclipse.swt.widgets.Composite;
13 import org.eclipse.swt.widgets.Table;
14 import org.eclipse.ui.part.ViewPart;
15
16 /**
17 * Display log lines for all users with a virtual table.
18 */
19 public class AdminLogView extends ViewPart {
20 public static String ID = WorkbenchUiPlugin.PLUGIN_ID + ".adminLogView";
21
22 private TableViewer viewer;
23
24 private LogContentProvider logContentProvider;
25 private ArgeoLogger argeoLogger;
26
27 @Override
28 public void createPartControl(Composite parent) {
29 // FIXME doesn't return a monospace font in RAP
30 Font font = JFaceResources.getTextFont();
31 Table table = new Table(parent, SWT.VIRTUAL | SWT.MULTI | SWT.H_SCROLL
32 | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
33 table.setFont(font);
34
35 viewer = new TableViewer(table);
36 viewer.setLabelProvider(new LabelProvider());
37 logContentProvider = new LogContentProvider(viewer) {
38 private static final long serialVersionUID = -3401776448301180724L;
39
40 @Override
41 protected StringBuffer prefix(String username, Long timestamp,
42 String level, String category, String thread) {
43 return super
44 .prefix(username, timestamp, level, category, thread)
45 .append(norm(level, 5))
46 .append(' ')
47 .append(norm(username != null ? username
48 : "<anonymous>", 16)).append(' ');
49 }
50 };
51 viewer.setContentProvider(logContentProvider);
52 // viewer.setUseHashlookup(true);
53 viewer.setInput(new ArrayList<String>());
54
55 if (argeoLogger != null)
56 argeoLogger.registerForAll(logContentProvider, 1000, true);
57 }
58
59 @Override
60 public void setFocus() {
61 viewer.getTable().setFocus();
62 }
63
64 @Override
65 public void dispose() {
66 if (argeoLogger != null)
67 argeoLogger.unregisterForAll(logContentProvider);
68 }
69
70 public void setArgeoLogger(ArgeoLogger argeoLogger) {
71 this.argeoLogger = argeoLogger;
72 }
73 }