]> 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
Improve logging
[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.security.ui.SecurityUiPlugin;
7 import org.eclipse.jface.viewers.LabelProvider;
8 import org.eclipse.jface.viewers.TableViewer;
9 import org.eclipse.swt.SWT;
10 import org.eclipse.swt.widgets.Composite;
11 import org.eclipse.ui.part.ViewPart;
12 import org.osgi.framework.BundleContext;
13 import org.osgi.framework.ServiceRegistration;
14
15 /**
16 * Display log lines with a virtual table. Register and unregisters a
17 * {@link ArgeoLogListener} via OSGi services.
18 */
19 public class LogView extends ViewPart {
20 public static String ID = SecurityUiPlugin.PLUGIN_ID + ".logView";
21
22 private TableViewer viewer;
23
24 private LogContentProvider logContentProvider;
25
26 private ServiceRegistration serviceRegistration;
27
28 @Override
29 public void createPartControl(Composite parent) {
30 viewer = new TableViewer(parent, SWT.VIRTUAL | SWT.MULTI | SWT.H_SCROLL
31 | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
32 viewer.setLabelProvider(new LabelProvider());
33 logContentProvider = new LogContentProvider(viewer);
34 serviceRegistration = getBundleContext().registerService(
35 ArgeoLogListener.class.getName(), logContentProvider, null);
36 viewer.setContentProvider(logContentProvider);
37 //viewer.setUseHashlookup(true);
38 viewer.setInput(new ArrayList<String>());
39 }
40
41 @Override
42 public void setFocus() {
43 viewer.getTable().setFocus();
44 }
45
46 @Override
47 public void dispose() {
48 if (serviceRegistration != null)
49 serviceRegistration.unregister();
50 }
51
52 private BundleContext getBundleContext() {
53 return SecurityUiPlugin.getDefault().getBundle().getBundleContext();
54 }
55 }