Separate Argeo Tracker bundle
[gpl/argeo-suite.git] / org.argeo.suite.e4 / src / org / argeo / suite / e4 / parts / AbstractSuiteDashboard.java
index 96919019f66ef66a11789ec0d0df8db6a1c84687..7aeb67b43f6397bfbf2871ff43178997011cde4a 100644 (file)
@@ -2,6 +2,7 @@ package org.argeo.suite.e4.parts;
 
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
+import javax.inject.Inject;
 import javax.jcr.Node;
 import javax.jcr.Repository;
 import javax.jcr.Session;
@@ -16,6 +17,9 @@ import org.argeo.connect.ui.SystemWorkbenchService;
 import org.argeo.connect.util.ConnectJcrUtils;
 import org.argeo.eclipse.ui.EclipseUiUtils;
 import org.argeo.jcr.JcrUtils;
+import org.eclipse.e4.ui.di.Focus;
+import org.eclipse.rap.rwt.RWT;
+import org.eclipse.rap.rwt.client.service.BrowserNavigation;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
@@ -28,11 +32,17 @@ import org.eclipse.swt.widgets.Link;
 
 /** Generic dashboard for Argeo Suite applications */
 public abstract class AbstractSuiteDashboard {
+       // private final static Log log =
+       // LogFactory.getLog(AbstractSuiteDashboard.class);
 
        // DEPENDENCY INJECTION
+       @Inject
        private Repository repository;
+       @Inject
        private ResourcesService resourcesService;
+       @Inject
        private SystemAppService systemAppService;
+       @Inject
        private SystemWorkbenchService systemWorkbenchService;
 
        private Session session;
@@ -40,17 +50,20 @@ public abstract class AbstractSuiteDashboard {
        // UI Objects
        private FormToolkit toolkit;
 
-       public void init()  {
+       // RAP specific
+       private BrowserNavigation browserNavigation;
+
+       public void init() {
                session = ConnectJcrUtils.login(repository);
-//             updateTooltip(input);
+               // updateTooltip(input);
        }
 
-//     private void updateTooltip(IEditorInput input) {
-//             if (input instanceof EntityEditorInput) {
-//                     EntityEditorInput sei = (EntityEditorInput) input;
-//                     sei.setTooltipText("My Dashboard");
-//             }
-//     }
+       // private void updateTooltip(IEditorInput input) {
+       // if (input instanceof EntityEditorInput) {
+       // EntityEditorInput sei = (EntityEditorInput) input;
+       // sei.setTooltipText("My Dashboard");
+       // }
+       // }
 
        /**
         * Implementing classes must call super in order to create the correct form
@@ -60,6 +73,7 @@ public abstract class AbstractSuiteDashboard {
        public void createPartControl(Composite parent) {
                toolkit = new FormToolkit(Display.getCurrent());
                init();
+               browserNavigation = RWT.getClient().getService(BrowserNavigation.class);
        }
 
        // UTILS
@@ -120,6 +134,10 @@ public abstract class AbstractSuiteDashboard {
                JcrUtils.logoutQuietly(session);
        }
 
+       @Focus
+       public void setFocus() {
+               browserNavigation.pushState("~", "Dashboard");
+       }
 
        // Expose to implementing classes
        protected Session getSession() {
@@ -143,19 +161,20 @@ public abstract class AbstractSuiteDashboard {
        }
 
        /* DEPENDENCY INJECTION */
-       public void setRepository(Repository repository) {
-               this.repository = repository;
-       }
-
-       public void setResourcesService(ResourcesService resourcesService) {
-               this.resourcesService = resourcesService;
-       }
-
-       public void setSystemAppService(SystemAppService systemAppService) {
-               this.systemAppService = systemAppService;
-       }
-
-       public void setSystemWorkbenchService(SystemWorkbenchService systemWorkbenchService) {
-               this.systemWorkbenchService = systemWorkbenchService;
-       }
+       // public void setRepository(Repository repository) {
+       // this.repository = repository;
+       // }
+       //
+       // public void setResourcesService(ResourcesService resourcesService) {
+       // this.resourcesService = resourcesService;
+       // }
+       //
+       // public void setSystemAppService(SystemAppService systemAppService) {
+       // this.systemAppService = systemAppService;
+       // }
+       //
+       // public void setSystemWorkbenchService(SystemWorkbenchService
+       // systemWorkbenchService) {
+       // this.systemWorkbenchService = systemWorkbenchService;
+       // }
 }