CollectionPlugin_Field.h
CollectionPlugin_WidgetCreator.h
CollectionPlugin_WidgetField.h
+ CollectionPlugin_Validators.h
)
SET(PROJECT_MOC_HEADERS
CollectionPlugin_Field.cpp
CollectionPlugin_WidgetCreator.cpp
CollectionPlugin_WidgetField.cpp
+ CollectionPlugin_Validators.cpp
)
SET(XML_RESOURCES
void CollectionPlugin_Field::initAttributes()
{
data()->addAttribute(SELECTED_ID(), ModelAPI_AttributeSelectionList::typeId());
- // for the whole part result it is not obligatory
+ // for the whole part result is not obligatory
ModelAPI_Session::get()->validators()->registerNotObligatory(getKind(), SELECTED_ID());
data()->addAttribute(COMPONENTS_NAMES_ID(), ModelAPI_AttributeStringArray::typeId());
#include <CollectionPlugin_Group.h>
#include <CollectionPlugin_Field.h>
+#include <CollectionPlugin_Validators.h>
#include <ModelAPI_Session.h>
#include <ModuleBase_WidgetCreatorFactory.h>
std::shared_ptr<CollectionPlugin_WidgetCreator>(new CollectionPlugin_WidgetCreator()));
SessionPtr aMgr = ModelAPI_Session::get();
+
+ ModelAPI_ValidatorsFactory* aFactory = aMgr->validators();
+ aFactory->registerValidator("CollectionPlugin_FieldValidator",
+ new CollectionPlugin_FieldValidator);
+
// register this plugin
ModelAPI_Session::get()->registerPlugin(this);
}
--- /dev/null
+// Copyright (C) 2014-2017 CEA/DEN, EDF R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or
+// email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
+//
+
+#include "CollectionPlugin_Validators.h"
+#include "CollectionPlugin_Field.h"
+#include <ModelAPI_AttributeSelectionList.h>
+#include <Events_InfoMessage.h>
+
+
+bool CollectionPlugin_FieldValidator::isValid(const FeaturePtr& theFeature,
+ const std::list<std::string>& theArguments,
+ Events_InfoMessage& theError) const
+{
+ AttributeSelectionListPtr aSelList =
+ theFeature->selectionList(CollectionPlugin_Field::SELECTED_ID());
+ if (aSelList->isInitialized()) {
+ int aSize = aSelList->size();
+ std::string aTypeStr = aSelList->selectionType();
+ if (aTypeStr == "part")
+ return true;
+ else {
+ bool aIsDefined = aSize > 0;
+ if (!aIsDefined)
+ theError = "Selection list is not initialized";
+ return aIsDefined;
+ }
+ }
+ theError = "Selection list is not initialized";
+ return false;
+}
--- /dev/null
+// Copyright (C) 2014-2017 CEA/DEN, EDF R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or
+// email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
+//
+
+#ifndef CollectionPlugin_Validators_H
+#define CollectionPlugin_Validators_H
+
+#include "CollectionPlugin.h"
+#include <ModelAPI_FeatureValidator.h>
+
+/**\class SketchPlugin_SolverErrorValidator
+* \ingroup Validators
+* \brief Validator for the solver error.
+*
+* Simply checks that solver error attribute is empty. Returns the attribute value as an error.
+*/
+class CollectionPlugin_FieldValidator : public ModelAPI_FeatureValidator
+{
+public:
+ //! returns true if there are no solver errors
+ //! \param theFeature the checked feature
+ //! \param theArguments arguments of the feature (not used)
+ //! \param theError error message
+ virtual bool isValid(const FeaturePtr& theFeature,
+ const std::list<std::string>& theArguments,
+ Events_InfoMessage& theError) const;
+};
+
+#endif
\ No newline at end of file
<translation>Objects not selected.</translation>
</message>
</context>
+ <context>
+ <name>Field:Model_FeatureValidator</name>
+ <message>
+ <source>Attribute "components_names" is not initialized.</source>
+ <translation>Components are not selected</translation>
+ </message>
+ </context>
</TS>
filter_points="false" >
<validator id="GeomValidators_BodyShapes"/>
</field-panel>
+ <validator id="CollectionPlugin_FieldValidator"/>
</feature>
</group>
</workbench>