aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrik Lindström <patrik@vaadin.com>2013-10-09 16:19:00 +0300
committerPatrik Lindström <patrik@vaadin.com>2013-10-09 16:25:30 +0300
commitc2b81b20ca3a981b775ac5f16506861724119df4 (patch)
tree26596d88abae6c08af803f1c16c79d2163771fb0
parent5cc968b378ccf99ed511deaadd8c47073c300365 (diff)
downloadvaadin-framework-c2b81b20ca3a981b775ac5f16506861724119df4.tar.gz
vaadin-framework-c2b81b20ca3a981b775ac5f16506861724119df4.zip
Accept "=" in caption/id strings (#12737)
Change-Id: I220fe86bcbfbf1c7188d7da78bb0ee446a5df7c2
-rw-r--r--client/src/com/vaadin/client/componentlocator/VaadinFinderLocatorStrategy.java26
1 files changed, 17 insertions, 9 deletions
diff --git a/client/src/com/vaadin/client/componentlocator/VaadinFinderLocatorStrategy.java b/client/src/com/vaadin/client/componentlocator/VaadinFinderLocatorStrategy.java
index a95b2013ed..264574788c 100644
--- a/client/src/com/vaadin/client/componentlocator/VaadinFinderLocatorStrategy.java
+++ b/client/src/com/vaadin/client/componentlocator/VaadinFinderLocatorStrategy.java
@@ -51,7 +51,6 @@ import com.vaadin.shared.AbstractComponentState;
public class VaadinFinderLocatorStrategy implements LocatorStrategy {
public static final String SUBPART_SEPARATOR = "#";
-
private ComponentLocator componentLocator;
public VaadinFinderLocatorStrategy(ComponentLocator componentLocator) {
@@ -215,19 +214,22 @@ public class VaadinFinderLocatorStrategy implements LocatorStrategy {
*/
private ComponentConnector filterPotentialMatches(
List<ComponentConnector> potentialMatches, String predicateString) {
+
if (potentialMatches.isEmpty()) {
return null;
}
if (predicateString != null) {
- String[] parts = predicateString.split("=");
- if (parts.length == 1) {
- int index = Integer.valueOf(predicateString);
- return index < potentialMatches.size() ? potentialMatches
- .get(index) : null;
- } else {
- String propertyName = parts[0].trim();
- String value = unquote(parts[1].trim());
+
+ int split_idx = predicateString.indexOf('=');
+
+ if (split_idx != -1) {
+
+ String propertyName = predicateString.substring(0, split_idx)
+ .trim();
+ String value = unquote(predicateString.substring(split_idx + 1)
+ .trim());
+
for (ComponentConnector connector : potentialMatches) {
Property property = AbstractConnector.getStateType(
connector).getProperty(propertyName);
@@ -236,8 +238,14 @@ public class VaadinFinderLocatorStrategy implements LocatorStrategy {
return connector;
}
}
+
+ } else {
+ int index = Integer.valueOf(predicateString);
+ return index < potentialMatches.size() ? potentialMatches
+ .get(index) : null;
}
}
+
return potentialMatches.get(0);
}