Ramesh N has uploaded a new change for review.

Change subject: webadmin: UI plugin API - revealPlace
......................................................................

webadmin: UI plugin API - revealPlace

This patch adds new UI plugin API function ('revealPlace')
that can be used to reveal desired application place, e.g.
main or sub tab. An application place denotes a logical
state of the web application, represented as '#placeToken'
in application's URL, for example:

  WebAdmin.html#vms          // 'VM' main tab place
  WebAdmin.html#vms-general  // 'VM General' sub tab place

revealPlace function works for both standard (built-in) and
custom (UI-plugin-contributed) places, assuming that given
place to reveal is available at time the function is called.
(Otherwise, WebAdmin will transition to its default place,
currently set to 'VM' main tab.)

API signature:

  revealPlace(placeToken)

Example usage:

  // switch to 'Hosts' main tab
  api.revealPlace('hosts');

  // add custom main tab and switch to it
  api.addMainTab('Test', 'test', 'plugin/TestPlugin/tab.html');
  api.revealPlace('test');

Note: setting place parameters, such as:

  WebAdmin.html#placeToken;paramName=paramValue

is not supported (yet) since there currently aren't
any application places utilizing such parameters.

Change-Id: Ib4ae30f62c5bcd6793e19c8be6806f32bf68eee1
Bug-Url: https://bugzilla.redhat.com/1168334
Signed-off-by: Vojtech Szocs <vsz...@redhat.com>
---
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/PluginManager.java
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/api/PluginUiFunctions.java
2 files changed, 24 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/29/41029/1

diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/PluginManager.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/PluginManager.java
index 27fd2d8..137bd91 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/PluginManager.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/PluginManager.java
@@ -508,6 +508,11 @@
                     
uifunctio...@org.ovirt.engine.ui.webadmin.plugin.api.PluginUiFunctions::closeDialog(Ljava/lang/String;)(dialogToken);
                 }
             },
+            revealPlace: function(placeToken) {
+                if (canDoPluginAction(this.pluginName)) {
+                    
uifunctio...@org.ovirt.engine.ui.webadmin.plugin.api.PluginUiFunctions::revealPlace(Ljava/lang/String;)(placeToken);
+                }
+            },
             loginUserName: function() {
                 if (canDoPluginAction(this.pluginName)) {
                     return 
us...@org.ovirt.engine.ui.common.auth.CurrentUser::getFullUserName()();
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/api/PluginUiFunctions.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/api/PluginUiFunctions.java
index fa95929..8d2eef7 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/api/PluginUiFunctions.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/plugin/api/PluginUiFunctions.java
@@ -8,6 +8,7 @@
 import org.ovirt.engine.ui.common.widget.Align;
 import org.ovirt.engine.ui.common.widget.action.AbstractButtonDefinition;
 import org.ovirt.engine.ui.common.widget.action.ActionButtonDefinition;
+import org.ovirt.engine.ui.webadmin.place.WebAdminPlaceManager;
 import org.ovirt.engine.ui.webadmin.plugin.entity.EntityObject;
 import org.ovirt.engine.ui.webadmin.plugin.entity.EntityType;
 import org.ovirt.engine.ui.webadmin.plugin.jsni.JsFunctionResultHelper;
@@ -33,6 +34,7 @@
 import com.gwtplatform.mvp.client.RequestTabsHandler;
 import com.gwtplatform.mvp.client.proxy.RevealContentHandler;
 import com.gwtplatform.mvp.client.proxy.RevealRootPopupContentEvent;
+import com.gwtplatform.mvp.shared.proxy.PlaceRequest;
 
 /**
  * Contains UI related functionality exposed to UI plugins through the plugin 
API.
@@ -44,13 +46,17 @@
     private final DynamicUrlContentTabProxyFactory 
dynamicUrlContentTabProxyFactory;
     private final Provider<DynamicUrlContentPopupPresenterWidget> 
dynamicUrlContentPopupPresenterWidgetProvider;
 
+    private final WebAdminPlaceManager placeManager;
+
     @Inject
     public PluginUiFunctions(EventBus eventBus,
             DynamicUrlContentTabProxyFactory dynamicUrlContentTabProxyFactory,
-            Provider<DynamicUrlContentPopupPresenterWidget> 
dynamicUrlContentPopupPresenterWidgetProvider) {
+            Provider<DynamicUrlContentPopupPresenterWidget> 
dynamicUrlContentPopupPresenterWidgetProvider,
+            WebAdminPlaceManager placeManager) {
         this.eventBus = eventBus;
         this.dynamicUrlContentTabProxyFactory = 
dynamicUrlContentTabProxyFactory;
         this.dynamicUrlContentPopupPresenterWidgetProvider = 
dynamicUrlContentPopupPresenterWidgetProvider;
+        this.placeManager = placeManager;
     }
 
     @Override
@@ -237,4 +243,16 @@
         });
     }
 
+    /**
+     * Reveals the given application place.
+     */
+    public void revealPlace(final String placeToken) {
+        Scheduler.get().scheduleDeferred(new ScheduledCommand() {
+            @Override
+            public void execute() {
+                placeManager.revealPlace(new 
PlaceRequest.Builder().nameToken(placeToken).build());
+            }
+        });
+    }
+
 }


-- 
To view, visit https://gerrit.ovirt.org/41029
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib4ae30f62c5bcd6793e19c8be6806f32bf68eee1
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5-gluster
Gerrit-Owner: Ramesh N <rnach...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to