Salome HOME
Issue #1834: Fix length of lines
[modules/shaper.git] / src / Model / Model_AttributeValidator.cpp
index 9a6c954653200f1ddd1b670d3df2d8928773294c..0f7c48082c4625626bb2f0d45cb0c376ba50104a 100644 (file)
@@ -5,19 +5,34 @@
 // Author:      Sergey POKHODENKO
 
 #include "Model_AttributeValidator.h"
+
+#include <Events_InfoMessage.h>
+
 #include <ModelAPI_AttributeDouble.h>
+#include <ModelAPI_AttributeInteger.h>
+
 #include <GeomDataAPI_Point.h>
 #include <GeomDataAPI_Point2D.h>
 
 bool Model_AttributeValidator::isValid(const AttributePtr& theAttribute, 
                                        const std::list<std::string>& theArguments, 
-                                       std::string& theError) const
+                                       Events_InfoMessage& theError) const
 {
+  if (theAttribute->attributeType() == ModelAPI_AttributeInteger::typeId()) {
+    AttributeIntegerPtr anAttribue =
+        std::dynamic_pointer_cast<ModelAPI_AttributeInteger>(theAttribute);
+    if (!anAttribue->expressionError().empty()) {
+      theError = "Expression error: %1";
+      theError.arg(anAttribue->expressionError());
+      return false;
+    }
+  } else
   if (theAttribute->attributeType() == ModelAPI_AttributeDouble::typeId()) {
     AttributeDoublePtr anAttribue = 
         std::dynamic_pointer_cast<ModelAPI_AttributeDouble>(theAttribute);
     if (!anAttribue->expressionError().empty()) {
-      theError = anAttribue->expressionError();
+      theError = "Expression error: %1";
+      theError.arg(anAttribue->expressionError());
       return false;
     }
   } else
@@ -29,10 +44,12 @@ bool Model_AttributeValidator::isValid(const AttributePtr& theAttribute,
     std::string anErrorMessage;
     for (int i = 0; i < 3; ++i) {
       if (!anAttribue->expressionError(i).empty())
-        anErrorMessage.append("\n").append(aComponent[i]).append(": ").append(anAttribue->expressionError(i));
+        anErrorMessage.append("\n").append(aComponent[i])
+          .append(": ").append(anAttribue->expressionError(i));
     }
     if (!anErrorMessage.empty()) {
-      theError = anErrorMessage;
+      theError = "Expression error: %1";
+      theError.arg(anErrorMessage);
       return false;
     }
   } else
@@ -44,13 +61,14 @@ bool Model_AttributeValidator::isValid(const AttributePtr& theAttribute,
     std::string anErrorMessage;
     for (int i = 0; i < 2; ++i) {
       if (!anAttribue->expressionError(i).empty())
-        anErrorMessage.append("\n").append(aComponent[i]).append(": ").append(anAttribue->expressionError(i));
+        anErrorMessage.append("\n").append(aComponent[i])
+          .append(": ").append(anAttribue->expressionError(i));
     }
     if (!anErrorMessage.empty()) {
-      theError = anErrorMessage;
+      theError = "Expression error: %1";
+      theError.arg(anErrorMessage);
       return false;
     }
   }
   return true;
 }
-