]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.spreadsheet.graph/src/org/simantics/spreadsheet/graph/CellValueVisitor.java
Sync git svn branch with SVN repository r33303.
[simantics/platform.git] / bundles / org.simantics.spreadsheet.graph / src / org / simantics / spreadsheet / graph / CellValueVisitor.java
index b0abb61b15627f3d828fd5404ccb6fd27a533797..0fa6ce0a599e65ec0132077c77d716502cd84c8a 100644 (file)
@@ -183,8 +183,7 @@ public class CellValueVisitor implements AstValueVisitor<Object> {
                        if(rightVal==null) rightResult = rightTemp.toString();\r
                        else rightResult = rightVal;\r
                }\r
-               \r
-               if ((leftResult instanceof String) || (rightResult instanceof String)) {\r
+               if ((leftResult instanceof String) && (rightResult instanceof String)) {\r
                        String leftString = (leftResult.toString()).toLowerCase();\r
                        String rightString = (rightResult.toString()).toLowerCase();\r
                        if("<".equals(astRelation.op.trim())) return leftString.compareTo(rightString) < 0;\r
@@ -195,8 +194,9 @@ public class CellValueVisitor implements AstValueVisitor<Object> {
                        else if(">=".equals(astRelation.op.trim())) return leftString.compareTo(rightString) >= 0 ;\r
                        else throw new IllegalStateException();\r
                } else {\r
-                       Number leftNumber = SpreadsheetGraphUtils.asNumber(leftResult);\r
-                       Number rightNumber = SpreadsheetGraphUtils.asNumber(rightResult);\r
+                       Number leftNumber = SpreadsheetGraphUtils.asDoubleWhereEmptyStringIsZero(leftResult);\r
+                       Number rightNumber = SpreadsheetGraphUtils.asDoubleWhereEmptyStringIsZero(rightResult);\r
+                       if(leftNumber==null || rightNumber==null) return false;\r
                        if("<".equals(astRelation.op.trim())) return leftNumber.doubleValue() < rightNumber.doubleValue();\r
                        else if(">".equals(astRelation.op.trim())) return leftNumber.doubleValue() > rightNumber.doubleValue();\r
                        else if("=".equals(astRelation.op.trim())) return leftNumber.doubleValue() == rightNumber.doubleValue();\r
@@ -434,7 +434,8 @@ public class CellValueVisitor implements AstValueVisitor<Object> {
 \r
        @Override\r
        public Object visit(AstIdentifier id) {\r
-               throw new IllegalStateException();\r
+               return FormulaError2.NAME.getString();\r
+               //throw new IllegalStateException();\r
        }\r
        \r
        @Override\r