1 package org
.argeo
.security
.ui
.views
;
3 import java
.util
.ArrayList
;
5 import org
.argeo
.security
.log4j
.SecureLogger
;
6 import org
.argeo
.security
.ui
.SecurityUiPlugin
;
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
.Display
;
14 import org
.eclipse
.swt
.widgets
.Table
;
15 import org
.eclipse
.ui
.part
.ViewPart
;
18 * Display log lines for all users with a virtual table.
20 public class AdminLogView
extends ViewPart
{
21 public static String ID
= SecurityUiPlugin
.PLUGIN_ID
+ ".adminLogView";
23 private TableViewer viewer
;
25 private LogContentProvider logContentProvider
;
26 private SecureLogger argeoLogger
;
29 public void createPartControl(Composite parent
) {
30 // FIXME doesn't return a monospace font in RAP
31 Font font
= JFaceResources
.getTextFontDescriptor().setHeight(8)
32 .createFont(Display
.getCurrent());
33 Table table
= new Table(parent
, SWT
.VIRTUAL
| SWT
.MULTI
| SWT
.H_SCROLL
34 | SWT
.V_SCROLL
| SWT
.FULL_SELECTION
| SWT
.BORDER
);
37 viewer
= new TableViewer(table
);
38 viewer
.setLabelProvider(new LabelProvider());
39 logContentProvider
= new LogContentProvider(viewer
) {
42 protected StringBuffer
prefix(String username
, Long timestamp
,
43 String level
, String category
, String thread
) {
45 .prefix(username
, timestamp
, level
, category
, thread
)
46 .append(norm(level
, 5))
48 .append(norm(username
!= null ? username
49 : "<anonymous>", 16)).append(' ');
52 viewer
.setContentProvider(logContentProvider
);
53 // viewer.setUseHashlookup(true);
54 viewer
.setInput(new ArrayList
<String
>());
56 if (argeoLogger
!= null)
57 argeoLogger
.registerForAll(logContentProvider
, 1000, true);
61 public void setFocus() {
62 viewer
.getTable().setFocus();
66 public void dispose() {
67 if (argeoLogger
!= null)
68 argeoLogger
.unregisterForAll(logContentProvider
);
71 public void setArgeoLogger(SecureLogger argeoLogger
) {
72 this.argeoLogger
= argeoLogger
;