]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - security/plugins/org.argeo.security.ui/src/main/java/org/argeo/security/ui/views/LogView.java
Improve system execution
[lgpl/argeo-commons.git] / security / plugins / org.argeo.security.ui / src / main / java / org / argeo / security / ui / views / LogView.java
index e49400757f6e8f94ab1c1e68aa73c885eefbff36..56857d3b533bbb8e146637ec64d3a0b301db028a 100644 (file)
@@ -3,14 +3,17 @@ package org.argeo.security.ui.views;
 import java.util.ArrayList;
 
 import org.argeo.ArgeoLogListener;
+import org.argeo.ArgeoLogger;
 import org.argeo.security.ui.SecurityUiPlugin;
+import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Font;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Table;
 import org.eclipse.ui.part.ViewPart;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceRegistration;
 
 /**
  * Display log lines with a virtual table. Register and unregisters a
@@ -18,23 +21,29 @@ import org.osgi.framework.ServiceRegistration;
  */
 public class LogView extends ViewPart {
        public static String ID = SecurityUiPlugin.PLUGIN_ID + ".logView";
-       
+
        private TableViewer viewer;
 
        private LogContentProvider logContentProvider;
-
-       private ServiceRegistration serviceRegistration;
+       private ArgeoLogger argeoLogger;
 
        @Override
        public void createPartControl(Composite parent) {
-               viewer = new TableViewer(parent, SWT.VIRTUAL);
+               Font font = JFaceResources.getTextFontDescriptor().setHeight(8)
+                               .createFont(Display.getCurrent());
+               Table table = new Table(parent, SWT.VIRTUAL | SWT.MULTI | SWT.H_SCROLL
+                               | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
+               table.setFont(font);
+
+               viewer = new TableViewer(table);
                viewer.setLabelProvider(new LabelProvider());
                logContentProvider = new LogContentProvider(viewer);
-               serviceRegistration = getBundleContext().registerService(
-                               ArgeoLogListener.class.getName(), logContentProvider, null);
                viewer.setContentProvider(logContentProvider);
-               viewer.setUseHashlookup(true);
+               // viewer.setUseHashlookup(true);
                viewer.setInput(new ArrayList<String>());
+
+               if (argeoLogger != null)
+                       argeoLogger.register(logContentProvider, 1000);
        }
 
        @Override
@@ -44,11 +53,12 @@ public class LogView extends ViewPart {
 
        @Override
        public void dispose() {
-               if (serviceRegistration != null)
-                       serviceRegistration.unregister();
+               if (argeoLogger != null)
+                       argeoLogger.unregister(logContentProvider);
        }
 
-       private BundleContext getBundleContext() {
-               return SecurityUiPlugin.getDefault().getBundle().getBundleContext();
+       public void setArgeoLogger(ArgeoLogger argeoLogger) {
+               this.argeoLogger = argeoLogger;
        }
+
 }