1 package org
.argeo
.cms
.ui
.workbench
.useradmin
;
3 import java
.util
.ArrayList
;
5 import org
.argeo
.api
.ArgeoLogger
;
6 import org
.argeo
.cms
.ui
.workbench
.WorkbenchUiPlugin
;
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
.Table
;
14 import org
.eclipse
.ui
.part
.ViewPart
;
17 * Display log lines for all users with a virtual table.
19 public class AdminLogView
extends ViewPart
{
20 public static String ID
= WorkbenchUiPlugin
.PLUGIN_ID
+ ".adminLogView";
22 private TableViewer viewer
;
24 private LogContentProvider logContentProvider
;
25 private ArgeoLogger argeoLogger
;
28 public void createPartControl(Composite parent
) {
29 // FIXME doesn't return a monospace font in RAP
30 Font font
= JFaceResources
.getTextFont();
31 Table table
= new Table(parent
, SWT
.VIRTUAL
| SWT
.MULTI
| SWT
.H_SCROLL
32 | SWT
.V_SCROLL
| SWT
.FULL_SELECTION
| SWT
.BORDER
);
35 viewer
= new TableViewer(table
);
36 viewer
.setLabelProvider(new LabelProvider());
37 logContentProvider
= new LogContentProvider(viewer
) {
38 private static final long serialVersionUID
= -3401776448301180724L;
41 protected StringBuffer
prefix(String username
, Long timestamp
,
42 String level
, String category
, String thread
) {
44 .prefix(username
, timestamp
, level
, category
, thread
)
45 .append(norm(level
, 5))
47 .append(norm(username
!= null ? username
48 : "<anonymous>", 16)).append(' ');
51 viewer
.setContentProvider(logContentProvider
);
52 // viewer.setUseHashlookup(true);
53 viewer
.setInput(new ArrayList
<String
>());
55 if (argeoLogger
!= null)
56 argeoLogger
.registerForAll(logContentProvider
, 1000, true);
60 public void setFocus() {
61 viewer
.getTable().setFocus();
65 public void dispose() {
66 if (argeoLogger
!= null)
67 argeoLogger
.unregisterForAll(logContentProvider
);
70 public void setArgeoLogger(ArgeoLogger argeoLogger
) {
71 this.argeoLogger
= argeoLogger
;