Merge branch 'release/5.18.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / view / sessions / SessionsViewPart.java
index 07c94bbb85deb401bb163cf53ecac2c56cb0a095..ec7994803b2bc546856a5c06e9a72533b66fe5ee 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
  * Copyright (C) 2015 EDIT
  * European Distributed Institute of Taxonomy
@@ -12,12 +11,13 @@ package eu.etaxonomy.taxeditor.view.sessions;
 import java.text.DecimalFormat;
 import java.util.Collection;
 
-import net.sf.ehcache.Cache;
-import net.sf.ehcache.CacheManager;
-import net.sf.ehcache.statistics.LiveCacheStatistics;
+import javax.annotation.PostConstruct;
+import javax.inject.Inject;
 
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.core.commands.Command;
+import org.eclipse.core.commands.ParameterizedCommand;
+import org.eclipse.e4.core.commands.ECommandService;
+import org.eclipse.e4.core.commands.EHandlerService;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
@@ -30,23 +30,24 @@ import org.eclipse.swt.widgets.Table;
 import org.eclipse.swt.widgets.TableColumn;
 import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.part.ViewPart;
 import org.eclipse.wb.swt.SWTResourceManager;
 
-import eu.etaxonomy.cdm.api.cache.CdmCacher;
-import eu.etaxonomy.taxeditor.model.AbstractUtility;
-import eu.etaxonomy.taxeditor.remoting.cache.CdmRemoteCacheManager;
+import eu.etaxonomy.cdm.api.cache.CdmCacherBase;
+import eu.etaxonomy.cdm.cache.CdmRemoteCacheManager;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManagerObserver;
+import eu.etaxonomy.taxeditor.session.NullSession;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import net.sf.ehcache.Cache;
+import net.sf.ehcache.CacheManager;
+import net.sf.ehcache.statistics.FlatStatistics;
 
 /**
  * @author cmathew
  * @date 16 Feb 2015
- *
  */
-public class SessionsViewPart extends ViewPart implements ICdmEntitySessionManagerObserver {
+public class SessionsViewPart implements ICdmEntitySessionManagerObserver {
 
     public static final String ID = "eu.etaxonomy.taxeditor.view.sessions.SessionsViewPart"; //$NON-NLS-1$
     public static final String OPEN_INSPECT_SESSIONS_DIALOG_ID =  "eu.etaxonomy.taxeditor.store.open.InspectSessionsDialog";
@@ -62,6 +63,13 @@ public class SessionsViewPart extends ViewPart implements ICdmEntitySessionManag
     private Text txtCdmModelOnDisk;
     private Text txtDefaultOnDisk;
 
+    @Inject
+    private ECommandService commandService;
+
+    @Inject
+    private EHandlerService handlerService;
+
+    @Inject
     public SessionsViewPart() {
         this.cdmEntitySessionManager = CdmStore.getCurrentSessionManager();
         if(cdmEntitySessionManager != null) {
@@ -73,7 +81,7 @@ public class SessionsViewPart extends ViewPart implements ICdmEntitySessionManag
      * Create contents of the view part.
      * @param parent
      */
-    @Override
+    @PostConstruct
     public void createPartControl(Composite parent) {
         Composite container = new Composite(parent, SWT.NONE);
         container.setLayout(new GridLayout(5, false));
@@ -210,7 +218,8 @@ public class SessionsViewPart extends ViewPart implements ICdmEntitySessionManag
             btnInspectActiveSession.addSelectionListener(new SelectionAdapter() {
                 @Override
                 public void widgetSelected(SelectionEvent e) {
-                    AbstractUtility.executeCommand(OPEN_INSPECT_SESSIONS_DIALOG_ID, this, null);
+                    Command command = commandService.getCommand(OPEN_INSPECT_SESSIONS_DIALOG_ID);
+                    handlerService.executeHandler(ParameterizedCommand.generateCommand(command, null));
                 }
             });
             btnInspectActiveSession.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 2, 1));
@@ -229,16 +238,12 @@ public class SessionsViewPart extends ViewPart implements ICdmEntitySessionManag
         }
 
         createActions();
-        initializeToolBar();
-        initializeMenu();
     }
 
     /**
      * Create the actions.
      */
     private void createActions() {
-
-
         for (String title : titles) {
             TableColumn column = new TableColumn(tableSessions, SWT.NULL);
             column.setWidth(200);
@@ -248,7 +253,6 @@ public class SessionsViewPart extends ViewPart implements ICdmEntitySessionManag
 
     }
 
-
     @Override
     public void changed() {
         if(tableSessions.isDisposed()) {
@@ -259,18 +263,11 @@ public class SessionsViewPart extends ViewPart implements ICdmEntitySessionManag
             Collection<ICdmEntitySession> sessions = cdmEntitySessionManager.getSessions();
             txtNoOfSessions.setText(String.valueOf(sessions.size()));
             for(ICdmEntitySession session : sessions) {
-                if(session.getOwner() != null) {
-                    TableItem item = new TableItem(tableSessions, SWT.NULL);
-                    item.setText(session.getOwner().toString());
-                    String activePrefix = "";
-                    if(session.isActive()) {
-                        activePrefix = "*";
-                    }
-                    item.setText(0, activePrefix + session.getOwner().toString());
-                    LiveCacheStatistics cacheStatistics = session.getCacheStatistics();
-                    item.setText(1, getInMemoryStats(cacheStatistics));
-                    item.setText(2, getOnDiskStats(cacheStatistics));
-                }
+                addSession(session);
+            }
+            ICdmEntitySession nullSession = cdmEntitySessionManager.getNullSession();
+            if(nullSession != null) {
+                addSession(nullSession);
             }
             for (int i=0; i<titles.length; i++) {
                 tableSessions.getColumn (i).pack ();
@@ -281,11 +278,11 @@ public class SessionsViewPart extends ViewPart implements ICdmEntitySessionManag
         int cdmEnityCacheSize = CacheManager.create().getCacheNames().length;
         txtNoOfCaches.setText(String.valueOf(cdmEnityCacheSize));
 
-        Cache defaultCache = CacheManager.create().getCache(CdmCacher.DEFAULT_CACHE_NAME);
+        Cache defaultCache = CacheManager.create().getCache(CdmCacherBase.DEFAULT_CACHE_NAME);
         txtDefaultInMemory.setText("");
         txtDefaultOnDisk.setText("");
         if(defaultCache != null) {
-            LiveCacheStatistics liveCacheStatistics = defaultCache.getLiveCacheStatistics();
+               FlatStatistics liveCacheStatistics = defaultCache.getStatistics();
             txtDefaultInMemory.setText(getInMemoryStats(liveCacheStatistics));
             txtDefaultOnDisk.setText(getOnDiskStats(liveCacheStatistics));
         }
@@ -294,14 +291,36 @@ public class SessionsViewPart extends ViewPart implements ICdmEntitySessionManag
         txtCdmModelInMemory.setText("");
         txtCdmModelOnDisk.setText("");
         if(cdmModelGetMethodsCache != null) {
-            LiveCacheStatistics liveCacheStatistics = cdmModelGetMethodsCache.getLiveCacheStatistics();
+               FlatStatistics liveCacheStatistics = cdmModelGetMethodsCache.getStatistics();
             txtCdmModelInMemory.setText(getInMemoryStats(liveCacheStatistics));
             txtCdmModelOnDisk.setText(getOnDiskStats(liveCacheStatistics));
         }
 
     }
 
-    private String getInMemoryStats(LiveCacheStatistics statistics) {
+    private void addSession(ICdmEntitySession session) {
+
+        TableItem item = new TableItem(tableSessions, SWT.NULL);
+
+        String activePrefix = "";
+        if(session.isActive()) {
+            activePrefix = "*";
+        }
+        String sessionOwnerString = "";
+        if(session instanceof NullSession) {
+            sessionOwnerString = "Null Session";
+        } else {
+            if(session.getOwner() != null) {
+                sessionOwnerString = session.getOwner().toString();
+            }
+        }
+        item.setText(0, activePrefix + sessionOwnerString);
+        FlatStatistics cacheStatistics = session.getCacheStatistics();
+        item.setText(1, getInMemoryStats(cacheStatistics));
+        item.setText(2, getOnDiskStats(cacheStatistics));
+    }
+
+    private String getInMemoryStats(FlatStatistics statistics) {
         if(statistics != null) {
             long localHeapSize = statistics.getLocalHeapSize();
 
@@ -313,7 +332,7 @@ public class SessionsViewPart extends ViewPart implements ICdmEntitySessionManag
         return "";
     }
 
-    private String getOnDiskStats(LiveCacheStatistics statistics) {
+    private String getOnDiskStats(FlatStatistics statistics) {
         if(statistics != null) {
             long localDiskSize = statistics.getLocalDiskSize();
 
@@ -325,23 +344,5 @@ public class SessionsViewPart extends ViewPart implements ICdmEntitySessionManag
         return "";
     }
 
-    /**
-     * Initialize the toolbar.
-     */
-    private void initializeToolBar() {
-        IToolBarManager toolbarManager = getViewSite().getActionBars().getToolBarManager();
-    }
-
-    /**
-     * Initialize the menu.
-     */
-    private void initializeMenu() {
-        IMenuManager menuManager = getViewSite().getActionBars().getMenuManager();
-    }
-
-    @Override
-    public void setFocus() {
-        // Set the focus
-    }
 
 }