Vojtech Szocs 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 <[email protected]>
---
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/04/40404/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
[email protected]::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/40404
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib4ae30f62c5bcd6793e19c8be6806f32bf68eee1
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Vojtech Szocs <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches