IDEMPIERE-259 Cannot set tab display logic based on specific tab value of field
Thanks to Ammar (hamur36) for the proposed solution here: http://sourceforge.net/projects/adempiere/forums/forum/610547/topic/5087640?message=11256178
This commit is contained in:
parent
03b9163c13
commit
162b0becf4
|
@ -83,7 +83,7 @@ public class Evaluator
|
|||
* </code>
|
||||
* @param source class implementing get_ValueAsString(variable)
|
||||
* @param logic logic string
|
||||
* @return locic result
|
||||
* @return logic result
|
||||
*/
|
||||
public static boolean evaluateLogic (Evaluatee source, String logic)
|
||||
{
|
||||
|
@ -97,11 +97,29 @@ public class Evaluator
|
|||
return false;
|
||||
}
|
||||
|
||||
boolean retValue = evaluateLogicTuple(source, st.nextToken());
|
||||
String exprStrand = st.nextToken().trim();
|
||||
if (exprStrand.matches("^@\\d+$"))
|
||||
{
|
||||
exprStrand = exprStrand.concat(st.nextToken());
|
||||
exprStrand = exprStrand.concat(st.nextToken());
|
||||
}
|
||||
|
||||
//boolean retValue = evaluateLogicTuple(source, st.nextToken());
|
||||
boolean retValue = evaluateLogicTuple(source, exprStrand);
|
||||
while (st.hasMoreTokens())
|
||||
{
|
||||
String logOp = st.nextToken().trim();
|
||||
boolean temp = evaluateLogicTuple(source, st.nextToken());
|
||||
//boolean temp = evaluateLogicTuple(source, st.nextToken());
|
||||
|
||||
exprStrand = st.nextToken().trim();
|
||||
if (exprStrand.matches("^@\\d+$"))
|
||||
{
|
||||
exprStrand = exprStrand.concat(st.nextToken());
|
||||
exprStrand = exprStrand.concat(st.nextToken());
|
||||
}
|
||||
|
||||
boolean temp = evaluateLogicTuple(source, exprStrand);
|
||||
|
||||
if (logOp.equals("&"))
|
||||
retValue = retValue & temp;
|
||||
else if (logOp.equals("|"))
|
||||
|
|
Loading…
Reference in New Issue