Repository: syncope
Updated Branches:
  refs/heads/master e4f1f0237 -> 142467929


[SYNCOPE-932] fixes


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/14246792
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/14246792
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/14246792

Branch: refs/heads/master
Commit: 14246792934da9a365a82643c46c359cc805c0bb
Parents: e4f1f02
Author: fmartelli <fabio.marte...@gmail.com>
Authored: Thu Sep 8 15:05:20 2016 +0200
Committer: fmartelli <fabio.marte...@gmail.com>
Committed: Thu Sep 8 15:05:48 2016 +0200

----------------------------------------------------------------------
 .../syncope/client/console/panels/AnyPanel.java | 24 +++++-
 .../panels/search/AbstractSearchPanel.java      | 10 ++-
 .../panels/search/SearchClausePanel.java        | 87 +++++++++++++++++++-
 .../ajax/form/IndicatorAjaxEventBehavior.java   | 48 +++++++++++
 .../markup/html/form/AbstractMultiPanel.java    |  1 +
 .../html/form/AjaxDropDownChoicePanel.java      |  2 +-
 .../client/console/wizards/any/Ownership.java   |  6 +-
 .../console/wizards/any/Relationships.java      |  2 +-
 .../syncope/fit/console/AnyObjectsITCase.java   |  2 +-
 .../syncope/fit/console/GroupsITCase.java       |  2 +-
 .../apache/syncope/fit/console/UsersITCase.java |  2 +-
 11 files changed, 172 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/14246792/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyPanel.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyPanel.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyPanel.java
index 3f940dc..950e546 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyPanel.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/panels/AnyPanel.java
@@ -20,6 +20,7 @@ package org.apache.syncope.client.console.panels;
 
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.List;
 import java.util.Map;
 import org.apache.commons.lang3.tuple.Triple;
 import org.apache.syncope.client.console.layout.AnyObjectFormLayoutInfo;
@@ -173,18 +174,35 @@ public class AnyPanel extends Panel implements ModalPanel 
{
 
     private AbstractSearchPanel getSearchPanel(final String id) {
         final AbstractSearchPanel panel;
+
+        final List<SearchClause> clauses = new ArrayList<>();
+        final SearchClause clause = new SearchClause();
+        clauses.add(clause);
+
         switch (anyTypeTO.getKind()) {
             case USER:
+                clause.setComparator(SearchClause.Comparator.EQUALS);
+                clause.setType(SearchClause.Type.ATTRIBUTE);
+                clause.setProperty("username");
+
                 panel = new UserSearchPanel.Builder(
-                        new ListModel<>(new 
ArrayList<SearchClause>())).required(false).enableSearch().build(id);
+                        new 
ListModel<>(clauses)).required(false).enableSearch().build(id);
                 break;
             case GROUP:
+                clause.setComparator(SearchClause.Comparator.EQUALS);
+                clause.setType(SearchClause.Type.ATTRIBUTE);
+                clause.setProperty("name");
+
                 panel = new GroupSearchPanel.Builder(
-                        new ListModel<>(new 
ArrayList<SearchClause>())).required(false).enableSearch().build(id);
+                        new 
ListModel<>(clauses)).required(false).enableSearch().build(id);
                 break;
             case ANY_OBJECT:
+                clause.setComparator(SearchClause.Comparator.EQUALS);
+                clause.setType(SearchClause.Type.ATTRIBUTE);
+                clause.setProperty("name");
+
                 panel = new AnyObjectSearchPanel.Builder(anyTypeTO.getKey(),
-                        new ListModel<>(new 
ArrayList<SearchClause>())).required(false).enableSearch().build(id);
+                        new 
ListModel<>(clauses)).required(false).enableSearch().build(id);
                 break;
             default:
                 panel = null;

http://git-wip-us.apache.org/repos/asf/syncope/blob/14246792/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java
index 3c46a9e..93ed552 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/AbstractSearchPanel.java
@@ -33,6 +33,7 @@ import org.apache.syncope.common.lib.to.AbstractSchemaTO;
 import org.apache.syncope.common.lib.to.ResourceTO;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.lib.types.SchemaType;
+import org.apache.wicket.event.IEventSink;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.IModel;
@@ -87,10 +88,17 @@ public abstract class AbstractSearchPanel extends Panel {
 
         protected boolean enableSearch = false;
 
+        protected IEventSink resultContainer;
+
         public Builder(final IModel<List<SearchClause>> model) {
             this.model = model;
         }
 
+        public Builder<T> enableSearch(final IEventSink resultContainer) {
+            this.resultContainer = resultContainer;
+            return enableSearch();
+        }
+
         public Builder<T> enableSearch() {
             this.enableSearch = true;
             return this;
@@ -132,7 +140,7 @@ public abstract class AbstractSearchPanel extends Panel {
                 types, anames, dnames, groupNames, roleNames, resourceNames);
 
         if (enableSearch) {
-            searchClausePanel.enableSearch();
+            searchClausePanel.enableSearch(builder.resultContainer);
         }
 
         final MultiFieldPanel.Builder<SearchClause> searchView = new 
MultiFieldPanel.Builder<SearchClause>(model) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/14246792/client/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java
index d72c8ba..e4327cb 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java
@@ -35,17 +35,23 @@ import org.apache.syncope.client.console.commons.Constants;
 import org.apache.syncope.client.console.panels.search.SearchClause.Comparator;
 import org.apache.syncope.client.console.panels.search.SearchClause.Operator;
 import org.apache.syncope.client.console.panels.search.SearchClause.Type;
+import 
org.apache.syncope.client.console.wicket.ajax.form.IndicatorAjaxEventBehavior;
 import 
org.apache.syncope.client.console.wicket.ajax.form.IndicatorAjaxFormComponentUpdatingBehavior;
 import 
org.apache.syncope.client.console.wicket.markup.html.form.AjaxDropDownChoicePanel;
 import 
org.apache.syncope.client.console.wicket.markup.html.form.AjaxTextFieldPanel;
 import org.apache.syncope.client.console.wicket.markup.html.form.FieldPanel;
 import org.apache.syncope.common.lib.to.RelationshipTypeTO;
 import org.apache.syncope.common.rest.api.service.RelationshipTypeService;
+import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.attributes.AjaxCallListener;
+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
 import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
 import org.apache.wicket.event.Broadcast;
+import org.apache.wicket.event.IEventSink;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.form.CheckBox;
 import org.apache.wicket.markup.html.form.Form;
@@ -88,6 +94,8 @@ public class SearchClausePanel extends 
FieldPanel<SearchClause> {
 
     private final AjaxSubmitLink searchButton;
 
+    private IEventSink resultContainer;
+
     public SearchClausePanel(
             final String id,
             final String name,
@@ -118,7 +126,11 @@ public class SearchClausePanel extends 
FieldPanel<SearchClause> {
 
             @Override
             protected void onSubmit(final AjaxRequestTarget target, final 
Form<?> form) {
-                send(this, Broadcast.BUBBLE, new SearchEvent(target));
+                if (resultContainer == null) {
+                    send(this, Broadcast.BUBBLE, new SearchEvent(target));
+                } else {
+                    send(resultContainer, Broadcast.EXACT, new 
SearchEvent(target));
+                }
             }
         };
 
@@ -224,8 +236,42 @@ public class SearchClausePanel extends 
FieldPanel<SearchClause> {
         };
     }
 
-    public void enableSearch() {
+    public void enableSearch(final IEventSink resultContainer) {
+        this.resultContainer = resultContainer;
         this.searchButton.setEnabled(true);
+
+        field.add(AttributeModifier.replace(
+                "onkeydown",
+                Model.of("if(event.keyCode == 13) 
{event.preventDefault();}")));
+
+        field.add(new AjaxEventBehavior("onkeydown") {
+
+            private static final long serialVersionUID = -7133385027739964990L;
+
+            @Override
+            protected void onEvent(final AjaxRequestTarget target) {
+                if (resultContainer == null) {
+                    send(SearchClausePanel.this, Broadcast.BUBBLE, new 
SearchEvent(target));
+                } else {
+                    send(resultContainer, Broadcast.EXACT, new 
SearchEvent(target));
+                }
+            }
+
+            @Override
+            protected void updateAjaxAttributes(final AjaxRequestAttributes 
attributes) {
+                super.updateAjaxAttributes(attributes);
+
+                attributes.getAjaxCallListeners().add(new AjaxCallListener() {
+
+                    private static final long serialVersionUID = 
7160235486520935153L;
+
+                    @Override
+                    public CharSequence getPrecondition(final Component 
component) {
+                        return "if (Wicket.Event.keyCode(attrs.event)  == 13) 
{ return true; } else { return false; }";
+                    }
+                });
+            }
+        });
     }
 
     @Override
@@ -345,6 +391,41 @@ public class SearchClausePanel extends 
FieldPanel<SearchClause> {
         value.hideLabel().setOutputMarkupId(true);
         field.add(value);
 
+        value.getField().add(AttributeModifier.replace(
+                "onkeydown",
+                Model.of("if(event.keyCode == 13) 
{event.preventDefault();}")));
+
+        value.getField().add(new IndicatorAjaxEventBehavior("onkeydown") {
+
+            private static final long serialVersionUID = -7133385027739964990L;
+
+            @Override
+            protected void onEvent(final AjaxRequestTarget target) {
+                target.focusComponent(null);
+                value.getField().inputChanged();
+                value.getField().validate();
+                if (value.getField().isValid()) {
+                    value.getField().valid();
+                    value.getField().updateModel();
+                }
+            }
+
+            @Override
+            protected void updateAjaxAttributes(final AjaxRequestAttributes 
attributes) {
+                super.updateAjaxAttributes(attributes);
+
+                attributes.getAjaxCallListeners().add(new AjaxCallListener() {
+
+                    private static final long serialVersionUID = 
7160235486520935153L;
+
+                    @Override
+                    public CharSequence getPrecondition(final Component 
component) {
+                        return "if (Wicket.Event.keyCode(attrs.event)  == 13) 
{ return true; } else { return false; }";
+                    }
+                });
+            }
+        });
+
         final AjaxDropDownChoicePanel<SearchClause.Type> type = new 
AjaxDropDownChoicePanel<>(
                 "type", "type", new 
PropertyModel<SearchClause.Type>(searchClause, "type"));
         
type.setChoices(types).hideLabel().setRequired(required).setOutputMarkupId(true);
@@ -669,7 +750,7 @@ public class SearchClausePanel extends 
FieldPanel<SearchClause> {
         panel.setReadOnly(this.isReadOnly());
         panel.setRequired(this.isRequired());
         if (searchButton.isEnabled()) {
-            panel.enableSearch();
+            panel.enableSearch(resultContainer);
         }
         return panel;
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/14246792/client/console/src/main/java/org/apache/syncope/client/console/wicket/ajax/form/IndicatorAjaxEventBehavior.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/wicket/ajax/form/IndicatorAjaxEventBehavior.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/wicket/ajax/form/IndicatorAjaxEventBehavior.java
new file mode 100644
index 0000000..a62e6ae
--- /dev/null
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/wicket/ajax/form/IndicatorAjaxEventBehavior.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.client.console.wicket.ajax.form;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.IAjaxIndicatorAware;
+
+/**
+ * An {@link AjaxEventBehavior} not showin veil.
+ */
+public abstract class IndicatorAjaxEventBehavior
+        extends AjaxEventBehavior implements IAjaxIndicatorAware {
+
+    private static final long serialVersionUID = -5144403874783384604L;
+
+    private final String indicator;
+
+    public IndicatorAjaxEventBehavior(final String event) {
+        this(event, StringUtils.EMPTY);
+    }
+
+    public IndicatorAjaxEventBehavior(final String event, final String 
indicator) {
+        super(event);
+        this.indicator = indicator;
+    }
+
+    @Override
+    public String getAjaxIndicatorMarkupId() {
+        return indicator;
+    }
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/14246792/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AbstractMultiPanel.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AbstractMultiPanel.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AbstractMultiPanel.java
index 34c9c8c..19c7cdf 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AbstractMultiPanel.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AbstractMultiPanel.java
@@ -59,6 +59,7 @@ public abstract class AbstractMultiPanel<INNER> extends 
AbstractFieldPanel<List<
         add(container);
 
         form = new Form<>("innerForm");
+        form.setDefaultButton(null);
         container.add(form);
         // -----------------------
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/14246792/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDropDownChoicePanel.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDropDownChoicePanel.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDropDownChoicePanel.java
index 7a1bfc4..6b9696f 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDropDownChoicePanel.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxDropDownChoicePanel.java
@@ -59,7 +59,7 @@ public class AjaxDropDownChoicePanel<T extends Serializable> 
extends FieldPanel<
                 }
             });
         }
-        
+
         setNullValid(true);
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/14246792/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Ownership.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Ownership.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Ownership.java
index 8eb7ab0..eb5b318 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Ownership.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Ownership.java
@@ -173,7 +173,8 @@ public class Ownership extends WizardStep implements 
WizardModel.ICondition {
 
         groupSearchFragment = new Fragment("search", "groupSearchFragment", 
this);
         groupSearchPanel = new GroupSearchPanel.Builder(
-                new ListModel<>(new 
ArrayList<SearchClause>())).required(false).enableSearch().build("groupsearch");
+                new ListModel<>(new 
ArrayList<SearchClause>())).required(false).enableSearch(Ownership.this).
+                build("groupsearch");
         groupSearchFragment.add(groupSearchPanel.setRenderBodyOnly(true));
 
         AnyTypeTO anyTypeTO = anyTypeRestClient.read(AnyTypeKind.GROUP.name());
@@ -187,7 +188,8 @@ public class Ownership extends WizardStep implements 
WizardModel.ICondition {
 
         userSearchFragment = new Fragment("search", "userSearchFragment", 
this);
         userSearchPanel = UserSearchPanel.class.cast(new 
UserSearchPanel.Builder(
-                new ListModel<>(new 
ArrayList<SearchClause>())).required(false).enableSearch().build("usersearch"));
+                new ListModel<>(new 
ArrayList<SearchClause>())).required(false).enableSearch(Ownership.this).
+                build("usersearch"));
         userSearchFragment.add(userSearchPanel.setRenderBodyOnly(true));
 
         anyTypeTO = anyTypeRestClient.read(AnyTypeKind.USER.name());

http://git-wip-us.apache.org/repos/asf/syncope/blob/14246792/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java
----------------------------------------------------------------------
diff --git 
a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java
 
b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java
index 99d2821..b73f73f 100644
--- 
a/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java
+++ 
b/client/console/src/main/java/org/apache/syncope/client/console/wizards/any/Relationships.java
@@ -328,7 +328,7 @@ public class Relationships extends WizardStep {
                         anyObjectSearchPanel = new 
AnyObjectSearchPanel.Builder(
                                 anyType.getKey(),
                                 new ListModel<>(new 
ArrayList<SearchClause>())).
-                                enableSearch().
+                                enableSearch(Specification.this).
                                 build("searchPanel");
                         
fragment.add(anyObjectSearchPanel.setRenderBodyOnly(true));
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/14246792/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyObjectsITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyObjectsITCase.java
 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyObjectsITCase.java
index 740ad9a..e7f7d89 100644
--- 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyObjectsITCase.java
+++ 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyObjectsITCase.java
@@ -50,7 +50,7 @@ public class AnyObjectsITCase extends AbstractConsoleITCase {
         
TESTER.clickLink("body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:title");
 
         
TESTER.executeAjaxEvent("body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:body:"
-                + 
"content:searchFormContainer:search:multiValueContainer:innerForm:content:panelPlus:add",
+                + 
"content:searchFormContainer:search:multiValueContainer:innerForm:content:view:0:panelPlus:add",
                 Constants.ON_CLICK);
 
         TESTER.assertComponent(

http://git-wip-us.apache.org/repos/asf/syncope/blob/14246792/fit/core-reference/src/test/java/org/apache/syncope/fit/console/GroupsITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/GroupsITCase.java
 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/GroupsITCase.java
index f71fa63..9b0ff4f 100644
--- 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/GroupsITCase.java
+++ 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/GroupsITCase.java
@@ -76,7 +76,7 @@ public class GroupsITCase extends AbstractConsoleITCase {
         
TESTER.clickLink("body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:title");
 
         
TESTER.executeAjaxEvent("body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:body:"
-                + 
"content:searchFormContainer:search:multiValueContainer:innerForm:content:panelPlus:add",
+                + 
"content:searchFormContainer:search:multiValueContainer:innerForm:content:view:0:panelPlus:add",
                 Constants.ON_CLICK);
 
         
TESTER.assertComponent("body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:body:"

http://git-wip-us.apache.org/repos/asf/syncope/blob/14246792/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java
 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java
index 7a6d343..f44121f 100644
--- 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java
+++ 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java
@@ -49,7 +49,7 @@ public class UsersITCase extends AbstractConsoleITCase {
         
TESTER.clickLink("body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:title");
 
         
TESTER.executeAjaxEvent("body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:body:"
-                + 
"content:searchFormContainer:search:multiValueContainer:innerForm:content:panelPlus:add",
+                + 
"content:searchFormContainer:search:multiValueContainer:innerForm:content:view:0:panelPlus:add",
                 Constants.ON_CLICK);
 
         TESTER.assertComponent(

Reply via email to