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