Vojtech Szocs has uploaded a new change for review.

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

webadmin: UI plugin API - setSearchString

This patch adds new UI plugin API function ('setSearchString')
that can be used to apply given search string in WebAdmin's
search panel.

Just like the Search button, calling setSearchString function
triggers transition to the corresponding application place,
e.g. following code:

  api.setSearchString('Vms:');

causes the application to reveal following place:

  WebAdmin.html#vms // 'VM' main tab place

API signature:

  setSearchString(searchString)

Example usage:

  api.setSearchString('Hosts: name = abc');

Change-Id: I36eb8647577e974bddefe9462d302165a39b1c27
Bug-Url: https://bugzilla.redhat.com/1081028
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
M 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/SearchPanelPresenterWidget.java
3 files changed, 35 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/05/40405/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 137bd91..05790f1 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
@@ -513,6 +513,11 @@
                     
uifunctio...@org.ovirt.engine.ui.webadmin.plugin.api.PluginUiFunctions::revealPlace(Ljava/lang/String;)(placeToken);
                 }
             },
+            setSearchString: function(searchString) {
+                if (canDoPluginAction(this.pluginName)) {
+                    
uifunctio...@org.ovirt.engine.ui.webadmin.plugin.api.PluginUiFunctions::setSearchString(Ljava/lang/String;)(searchString);
+                }
+            },
             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 8d2eef7..fb1f72a 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
@@ -14,6 +14,7 @@
 import org.ovirt.engine.ui.webadmin.plugin.jsni.JsFunctionResultHelper;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.DynamicUrlContentTabProxyFactory;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.MainTabPanelPresenter;
+import 
org.ovirt.engine.ui.webadmin.section.main.presenter.SearchPanelPresenterWidget;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.SetDynamicTabContentUrlEvent;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.CloseDynamicPopupEvent;
 import 
org.ovirt.engine.ui.webadmin.section.main.presenter.popup.DynamicUrlContentPopupPresenterWidget;
@@ -46,16 +47,22 @@
     private final DynamicUrlContentTabProxyFactory 
dynamicUrlContentTabProxyFactory;
     private final Provider<DynamicUrlContentPopupPresenterWidget> 
dynamicUrlContentPopupPresenterWidgetProvider;
 
+    // Injecting search panel through Provider interface since search panel 
instantiation
+    // triggers CommonModel instantiation that requires prior UiCommon infra 
setup.
+    private final Provider<SearchPanelPresenterWidget> 
searchPanelPresenterWidgetProvider;
+
     private final WebAdminPlaceManager placeManager;
 
     @Inject
     public PluginUiFunctions(EventBus eventBus,
             DynamicUrlContentTabProxyFactory dynamicUrlContentTabProxyFactory,
             Provider<DynamicUrlContentPopupPresenterWidget> 
dynamicUrlContentPopupPresenterWidgetProvider,
+            Provider<SearchPanelPresenterWidget> 
searchPanelPresenterWidgetProvider,
             WebAdminPlaceManager placeManager) {
         this.eventBus = eventBus;
         this.dynamicUrlContentTabProxyFactory = 
dynamicUrlContentTabProxyFactory;
         this.dynamicUrlContentPopupPresenterWidgetProvider = 
dynamicUrlContentPopupPresenterWidgetProvider;
+        this.searchPanelPresenterWidgetProvider = 
searchPanelPresenterWidgetProvider;
         this.placeManager = placeManager;
     }
 
@@ -255,4 +262,16 @@
         });
     }
 
+    /**
+     * Applies the given search string, which triggers transition to the 
corresponding application place.
+     */
+    public void setSearchString(final String searchString) {
+        Scheduler.get().scheduleDeferred(new ScheduledCommand() {
+            @Override
+            public void execute() {
+                
searchPanelPresenterWidgetProvider.get().applySearchString(searchString);
+            }
+        });
+    }
+
 }
diff --git 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/SearchPanelPresenterWidget.java
 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/SearchPanelPresenterWidget.java
index be5385d..3065949 100644
--- 
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/SearchPanelPresenterWidget.java
+++ 
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/SearchPanelPresenterWidget.java
@@ -105,7 +105,7 @@
         registerHandler(getView().getClearButton().addClickHandler(new 
ClickHandler() {
             @Override
             public void onClick(ClickEvent event) {
-                commonModel.getClearSearchStringCommand().execute();
+                clearModelSearchString();
             }
         }));
 
@@ -137,6 +137,16 @@
         updateViewHasSearchStringPrefix();
     }
 
+    public void applySearchString(String searchString) {
+        clearModelSearchString();
+        getView().setSearchString(searchString);
+        updateModelSearchString();
+    }
+
+    void clearModelSearchString() {
+        commonModel.getClearSearchStringCommand().execute();
+    }
+
     void updateModelSearchString() {
         commonModel.setSearchString(getView().getSearchString());
         commonModel.search();


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I36eb8647577e974bddefe9462d302165a39b1c27
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Vojtech Szocs <vsz...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to