From 91a080c7088c6dc16297450704ee39d1b539d742 Mon Sep 17 00:00:00 2001 From: Alex Kogon Date: Thu, 10 Sep 2015 14:24:25 +0200 Subject: [PATCH] refactorXPathMakerAndFixBug --- src/org/synthuse/XpathManager.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/org/synthuse/XpathManager.java b/src/org/synthuse/XpathManager.java index 3e0ac0e..c432b4f 100644 --- a/src/org/synthuse/XpathManager.java +++ b/src/org/synthuse/XpathManager.java @@ -108,6 +108,10 @@ public class XpathManager implements Runnable{ } public String buildXpathStatement() { + return buildXpathStatement(false, 20, 30); + } + + public String buildXpathStatement(boolean useFullTextMatching, int maxParentTextLength, int maxTextLength) { String builtXpath = ""; try { String xml = this.windowsXmlTextPane.getText(); @@ -131,8 +135,8 @@ public class XpathManager implements Runnable{ String parentTxtOrig = Api.getWindowText(parent); String parentTxtStr = WindowsEnumeratedXml.escapeXmlAttributeValue(parentTxtOrig); if (!parentTxtStr.isEmpty()) { - if (parentTxtOrig.length() > 20) {// if the parent text is too long only test the first 20 characters - parentTxtStr = WindowsEnumeratedXml.escapeXmlAttributeValue(parentTxtOrig.substring(0, 20)); + if (parentTxtOrig.length() > maxParentTextLength) {// if the parent text is too long only test the first maxParentTextLength characters + parentTxtStr = WindowsEnumeratedXml.escapeXmlAttributeValue(parentTxtOrig.substring(0, maxParentTextLength)); parentTxtStr = " and starts-with(@text,'" + parentTxtStr + "')"; } else @@ -153,8 +157,8 @@ public class XpathManager implements Runnable{ } if (resultList.size() == 0) { //some reason a window might have a parent window that is not associated with it's child (orphans!!) if (!txtStr.isEmpty()) { - if (parentTxtOrig.length() > 30) {// if the text is too long only test the first 20 characters - txtStr = WindowsEnumeratedXml.escapeXmlAttributeValue(txtStr.substring(0, 30)); + if (txtStr.length() > maxTextLength) {// if the text is too long only test the first maxTextLength characters + txtStr = WindowsEnumeratedXml.escapeXmlAttributeValue(txtStr.substring(0, maxTextLength)); txtStr = " and starts-with(@text,'" + txtStr + "')"; } else