]> git.argeo.org Git - gpl/argeo-slc.git/blob - legacy/argeo-commons/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/useradmin/LogView.java
1af2740a47360840e409592954d2b72eab10c8e0
[gpl/argeo-slc.git] / legacy / argeo-commons / org.argeo.cms.ui.workbench / src / org / argeo / cms / ui / workbench / useradmin / LogView.java
1 package org.argeo.cms.ui.workbench.useradmin;
2
3 import java.util.ArrayList;
4
5 import org.argeo.cms.ArgeoLogListener;
6 import org.argeo.cms.ArgeoLogger;
7 import org.argeo.cms.ui.workbench.WorkbenchUiPlugin;
8 import org.eclipse.jface.resource.JFaceResources;
9 import org.eclipse.jface.viewers.LabelProvider;
10 import org.eclipse.jface.viewers.TableViewer;
11 import org.eclipse.swt.SWT;
12 import org.eclipse.swt.graphics.Font;
13 import org.eclipse.swt.widgets.Composite;
14 import org.eclipse.swt.widgets.Table;
15 import org.eclipse.ui.part.ViewPart;
16
17 /**
18 * Display log lines with a virtual table. Register and unregisters a
19 * {@link ArgeoLogListener} via OSGi services.
20 */
21 public class LogView extends ViewPart {
22 public static String ID = WorkbenchUiPlugin.PLUGIN_ID + ".logView";
23
24 private TableViewer viewer;
25
26 private LogContentProvider logContentProvider;
27 private ArgeoLogger argeoLogger;
28
29 @Override
30 public void createPartControl(Composite parent) {
31 Font font = JFaceResources.getTextFont();
32 Table table = new Table(parent, SWT.VIRTUAL | SWT.MULTI | SWT.H_SCROLL
33 | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
34 table.setFont(font);
35
36 viewer = new TableViewer(table);
37 viewer.setLabelProvider(new LabelProvider());
38 logContentProvider = new LogContentProvider(viewer);
39 viewer.setContentProvider(logContentProvider);
40 // viewer.setUseHashlookup(true);
41 viewer.setInput(new ArrayList<String>());
42
43 if (argeoLogger != null)
44 argeoLogger.register(logContentProvider, 1000);
45 }
46
47 @Override
48 public void setFocus() {
49 viewer.getTable().setFocus();
50 }
51
52 @Override
53 public void dispose() {
54 if (argeoLogger != null)
55 argeoLogger.unregister(logContentProvider);
56 }
57
58 public void setArgeoLogger(ArgeoLogger argeoLogger) {
59 this.argeoLogger = argeoLogger;
60 }
61
62 }