]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.security.ui/src/org/argeo/security/ui/views/LogView.java
f9e197ac05edcefcdf60fb723c8c037b0880a010
[lgpl/argeo-commons.git] / org.argeo.security.ui / src / org / argeo / security / ui / views / LogView.java
1 /*
2 * Copyright (C) 2007-2012 Argeo GmbH
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package org.argeo.security.ui.views;
17
18 import java.util.ArrayList;
19
20 import org.argeo.node.ArgeoLogListener;
21 import org.argeo.node.ArgeoLogger;
22 import org.argeo.security.ui.SecurityUiPlugin;
23 import org.eclipse.jface.resource.JFaceResources;
24 import org.eclipse.jface.viewers.LabelProvider;
25 import org.eclipse.jface.viewers.TableViewer;
26 import org.eclipse.swt.SWT;
27 import org.eclipse.swt.graphics.Font;
28 import org.eclipse.swt.widgets.Composite;
29 import org.eclipse.swt.widgets.Table;
30 import org.eclipse.ui.part.ViewPart;
31
32 /**
33 * Display log lines with a virtual table. Register and unregisters a
34 * {@link ArgeoLogListener} via OSGi services.
35 */
36 public class LogView extends ViewPart {
37 public static String ID = SecurityUiPlugin.PLUGIN_ID + ".logView";
38
39 private TableViewer viewer;
40
41 private LogContentProvider logContentProvider;
42 private ArgeoLogger argeoLogger;
43
44 @Override
45 public void createPartControl(Composite parent) {
46 Font font = JFaceResources.getTextFont();
47 Table table = new Table(parent, SWT.VIRTUAL | SWT.MULTI | SWT.H_SCROLL
48 | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
49 table.setFont(font);
50
51 viewer = new TableViewer(table);
52 viewer.setLabelProvider(new LabelProvider());
53 logContentProvider = new LogContentProvider(viewer);
54 viewer.setContentProvider(logContentProvider);
55 // viewer.setUseHashlookup(true);
56 viewer.setInput(new ArrayList<String>());
57
58 if (argeoLogger != null)
59 argeoLogger.register(logContentProvider, 1000);
60 }
61
62 @Override
63 public void setFocus() {
64 viewer.getTable().setFocus();
65 }
66
67 @Override
68 public void dispose() {
69 if (argeoLogger != null)
70 argeoLogger.unregister(logContentProvider);
71 }
72
73 public void setArgeoLogger(ArgeoLogger argeoLogger) {
74 this.argeoLogger = argeoLogger;
75 }
76
77 }