]> git.argeo.org Git - lgpl/argeo-commons.git/blob - security/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/views/LogView.java
a612bc9f71552d5a813690ba4e0fe129d294350c
[lgpl/argeo-commons.git] / security / plugins / org.argeo.security.ui / src / main / java / org / argeo / security / ui / views / LogView.java
1 package org.argeo.security.ui.views;
2
3 import java.util.ArrayList;
4
5 import org.argeo.ArgeoLogListener;
6 import org.argeo.ArgeoLogger;
7 import org.argeo.security.ui.SecurityUiPlugin;
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.widgets.Composite;
12 import org.eclipse.ui.part.ViewPart;
13
14 /**
15 * Display log lines with a virtual table. Register and unregisters a
16 * {@link ArgeoLogListener} via OSGi services.
17 */
18 public class LogView extends ViewPart {
19 public static String ID = SecurityUiPlugin.PLUGIN_ID + ".logView";
20
21 private TableViewer viewer;
22
23 private LogContentProvider logContentProvider;
24 private ArgeoLogger argeoLogger;
25
26 @Override
27 public void createPartControl(Composite parent) {
28 viewer = new TableViewer(parent, SWT.VIRTUAL | SWT.MULTI | SWT.H_SCROLL
29 | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
30 viewer.setLabelProvider(new LabelProvider());
31 logContentProvider = new LogContentProvider(viewer);
32 viewer.setContentProvider(logContentProvider);
33 // viewer.setUseHashlookup(true);
34 viewer.setInput(new ArrayList<String>());
35
36 if (argeoLogger != null)
37 argeoLogger.register(logContentProvider, 1000);
38 }
39
40 @Override
41 public void setFocus() {
42 viewer.getTable().setFocus();
43 }
44
45 @Override
46 public void dispose() {
47 if (argeoLogger != null)
48 argeoLogger.unregister(logContentProvider);
49 }
50
51 public void setArgeoLogger(ArgeoLogger argeoLogger) {
52 this.argeoLogger = argeoLogger;
53 }
54
55 }