]> 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
56857d3b533bbb8e146637ec64d3a0b301db028a
[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.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.Display;
15 import org.eclipse.swt.widgets.Table;
16 import org.eclipse.ui.part.ViewPart;
17
18 /**
19 * Display log lines with a virtual table. Register and unregisters a
20 * {@link ArgeoLogListener} via OSGi services.
21 */
22 public class LogView extends ViewPart {
23 public static String ID = SecurityUiPlugin.PLUGIN_ID + ".logView";
24
25 private TableViewer viewer;
26
27 private LogContentProvider logContentProvider;
28 private ArgeoLogger argeoLogger;
29
30 @Override
31 public void createPartControl(Composite parent) {
32 Font font = JFaceResources.getTextFontDescriptor().setHeight(8)
33 .createFont(Display.getCurrent());
34 Table table = new Table(parent, SWT.VIRTUAL | SWT.MULTI | SWT.H_SCROLL
35 | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
36 table.setFont(font);
37
38 viewer = new TableViewer(table);
39 viewer.setLabelProvider(new LabelProvider());
40 logContentProvider = new LogContentProvider(viewer);
41 viewer.setContentProvider(logContentProvider);
42 // viewer.setUseHashlookup(true);
43 viewer.setInput(new ArrayList<String>());
44
45 if (argeoLogger != null)
46 argeoLogger.register(logContentProvider, 1000);
47 }
48
49 @Override
50 public void setFocus() {
51 viewer.getTable().setFocus();
52 }
53
54 @Override
55 public void dispose() {
56 if (argeoLogger != null)
57 argeoLogger.unregister(logContentProvider);
58 }
59
60 public void setArgeoLogger(ArgeoLogger argeoLogger) {
61 this.argeoLogger = argeoLogger;
62 }
63
64 }