]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Code correction
authornds <nds@opencascade.com>
Thu, 21 Jan 2016 11:21:13 +0000 (14:21 +0300)
committernds <nds@opencascade.com>
Thu, 21 Jan 2016 11:21:13 +0000 (14:21 +0300)
src/ModuleBase/ModuleBase_WidgetMultiSelector.cpp

index 1144a30a3f91af6f75c318cc04417b8e048dd697..af47d9d7c734ed4acd0497114c107ed2e0cb3422 100755 (executable)
@@ -189,8 +189,7 @@ bool ModuleBase_WidgetMultiSelector::storeValueCustom() const
   AttributePtr anAttribute = myFeature->data()->attribute(attributeID());
   std::string aType = anAttribute->attributeType();
   if (aType == ModelAPI_AttributeSelectionList::typeId()) {
-    AttributeSelectionListPtr aSelectionListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeSelectionList>(anAttribute);
+    AttributeSelectionListPtr aSelectionListAttr = myFeature->data()->selectionList(attributeID());
     aSelectionListAttr->setSelectionType(myTypeCombo->currentText().toStdString());
   }
   return true;
@@ -206,8 +205,7 @@ bool ModuleBase_WidgetMultiSelector::restoreValueCustom()
   AttributePtr anAttribute = myFeature->data()->attribute(attributeID());
   std::string aType = anAttribute->attributeType();
   if (aType == ModelAPI_AttributeSelectionList::typeId()) {
-    AttributeSelectionListPtr aSelectionListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeSelectionList>(anAttribute);
+    AttributeSelectionListPtr aSelectionListAttr = myFeature->data()->selectionList(attributeID());
     // Restore shape type
     setCurrentShapeType(ModuleBase_Tools::shapeType(aSelectionListAttr->selectionType().c_str()));
   }
@@ -220,23 +218,20 @@ void ModuleBase_WidgetMultiSelector::storeAttributeValue()
 {
   ModuleBase_WidgetValidated::storeAttributeValue();
 
-  AttributePtr anAttribute = myFeature->data()->attribute(attributeID());
+  DataPtr aData = myFeature->data();
+  AttributePtr anAttribute = aData->attribute(attributeID());
   std::string aType = anAttribute->attributeType();
-
   if (aType == ModelAPI_AttributeSelectionList::typeId()) {
-    AttributeSelectionListPtr aSelectionListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeSelectionList>(anAttribute);
+    AttributeSelectionListPtr aSelectionListAttr = aData->selectionList(attributeID());
     mySelectionType = aSelectionListAttr->selectionType();
     mySelectionCount = aSelectionListAttr->size();
   }
   else if (aType == ModelAPI_AttributeRefList::typeId()) {
-    AttributeRefListPtr aRefListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeRefList>(anAttribute);
+    AttributeRefListPtr aRefListAttr = aData->reflist(attributeID());
     mySelectionCount = aRefListAttr->size();
   }
   else if (aType == ModelAPI_AttributeRefAttrList::typeId()) {
-    AttributeRefAttrListPtr aRefAttrListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeRefAttrList>(anAttribute);
+    AttributeRefAttrListPtr aRefAttrListAttr = aData->refattrlist(attributeID());
     mySelectionCount = aRefAttrListAttr->size();
   }
 }
@@ -246,11 +241,11 @@ void ModuleBase_WidgetMultiSelector::restoreAttributeValue(bool theValid)
 {
   ModuleBase_WidgetValidated::restoreAttributeValue(theValid);
 
-  AttributePtr anAttribute = myFeature->data()->attribute(attributeID());
+  DataPtr aData = myFeature->data();
+  AttributePtr anAttribute = aData->attribute(attributeID());
   std::string aType = anAttribute->attributeType();
   if (aType == ModelAPI_AttributeSelectionList::typeId()) {
-    AttributeSelectionListPtr aSelectionListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeSelectionList>(anAttribute);
+    AttributeSelectionListPtr aSelectionListAttr = aData->selectionList(attributeID());
     aSelectionListAttr->setSelectionType(mySelectionType);
 
     // restore selection in the attribute. Indeed there is only one stored object
@@ -259,16 +254,14 @@ void ModuleBase_WidgetMultiSelector::restoreAttributeValue(bool theValid)
       aSelectionListAttr->removeLast();
   }
   else if (aType == ModelAPI_AttributeRefList::typeId()) {
-    AttributeRefListPtr aRefListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeRefList>(anAttribute);
+    AttributeRefListPtr aRefListAttr = aData->reflist(attributeID());
     // restore objects in the attribute. Indeed there is only one stored object
     int aCountAppened = aRefListAttr->size() - mySelectionCount;
     for (int i = 0; i < aCountAppened; i++)
       aRefListAttr->removeLast();
   }
   else if (aType == ModelAPI_AttributeRefAttrList::typeId()) {
-    AttributeRefAttrListPtr aRefAttrListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeRefAttrList>(anAttribute);
+    AttributeRefAttrListPtr aRefAttrListAttr = aData->refattrlist(attributeID());
     // restore objects in the attribute. Indeed there is only one stored object
     int aCountAppened = aRefAttrListAttr->size() - mySelectionCount;
     for (int i = 0; i < aCountAppened; i++)
@@ -279,21 +272,19 @@ void ModuleBase_WidgetMultiSelector::restoreAttributeValue(bool theValid)
 //********************************************************************
 void ModuleBase_WidgetMultiSelector::clearAttribute()
 {
-  AttributePtr anAttribute = myFeature->data()->attribute(attributeID());
+  DataPtr aData = myFeature->data();
+  AttributePtr anAttribute = aData->attribute(attributeID());
   std::string aType = anAttribute->attributeType();
   if (aType == ModelAPI_AttributeSelectionList::typeId()) {
-    AttributeSelectionListPtr aSelectionListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeSelectionList>(anAttribute);
+    AttributeSelectionListPtr aSelectionListAttr = aData->selectionList(attributeID());
     aSelectionListAttr->clear();
   }
   else if (aType == ModelAPI_AttributeRefList::typeId()) {
-    AttributeRefListPtr aRefListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeRefList>(anAttribute);
+    AttributeRefListPtr aRefListAttr = aData->reflist(attributeID());
     aRefListAttr->clear();
   }
   else if (aType == ModelAPI_AttributeRefAttrList::typeId()) {
-    AttributeRefAttrListPtr aRefAttrListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeRefAttrList>(anAttribute);
+    AttributeRefAttrListPtr aRefAttrListAttr = aData->refattrlist(attributeID());
     aRefAttrListAttr->clear();
   }
 }
@@ -302,22 +293,20 @@ void ModuleBase_WidgetMultiSelector::clearAttribute()
 void ModuleBase_WidgetMultiSelector::setObject(ObjectPtr theSelectedObject,
                                                GeomShapePtr theShape)
 {
-  AttributePtr anAttribute = myFeature->data()->attribute(attributeID());
+  DataPtr aData = myFeature->data();
+  AttributePtr anAttribute = aData->attribute(attributeID());
   std::string aType = anAttribute->attributeType();
   if (aType == ModelAPI_AttributeSelectionList::typeId()) {
-    AttributeSelectionListPtr aSelectionListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeSelectionList>(anAttribute);
+    AttributeSelectionListPtr aSelectionListAttr = aData->selectionList(attributeID());
     ResultPtr aResult = std::dynamic_pointer_cast<ModelAPI_Result>(theSelectedObject);
     aSelectionListAttr->append(aResult, theShape, myIsInValidate);
   }
   else if (aType == ModelAPI_AttributeRefList::typeId()) {
-    AttributeRefListPtr aRefListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeRefList>(anAttribute);
+    AttributeRefListPtr aRefListAttr = aData->reflist(attributeID());
     aRefListAttr->append(theSelectedObject);
   }
   else if (aType == ModelAPI_AttributeRefAttrList::typeId()) {
-    AttributeRefAttrListPtr aRefAttrListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeRefAttrList>(anAttribute);
+    AttributeRefAttrListPtr aRefAttrListAttr = aData->refattrlist(attributeID());
 
     AttributePtr anAttribute = myWorkshop->module()->findAttribute(theSelectedObject, theShape);
     if (anAttribute.get())
@@ -405,23 +394,21 @@ bool ModuleBase_WidgetMultiSelector::processDelete()
 
   // refill attribute by the items which indices are not in the list of ids
   bool aDone = false;
-  AttributePtr anAttribute = myFeature->data()->attribute(attributeID());
+  DataPtr aData = myFeature->data();
+  AttributePtr anAttribute = aData->attribute(attributeID());
   std::string aType = anAttribute->attributeType();
   aDone = !anAttributeIds.empty();
   if (aType == ModelAPI_AttributeSelectionList::typeId()) {
-    AttributeSelectionListPtr aSelectionListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeSelectionList>(anAttribute);
+    AttributeSelectionListPtr aSelectionListAttr = aData->selectionList(attributeID());
     aSelectionListAttr->remove(anAttributeIds);
 
   }
   else if (aType == ModelAPI_AttributeRefList::typeId()) {
-    AttributeRefListPtr aRefListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeRefList>(anAttribute);
-      aRefListAttr->remove(anAttributeIds);
+    AttributeRefListPtr aRefListAttr = aData->reflist(attributeID());
+    aRefListAttr->remove(anAttributeIds);
   }
   else if (aType == ModelAPI_AttributeRefAttrList::typeId()) {
-    AttributeRefAttrListPtr aRefAttrListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeRefAttrList>(anAttribute);
+    AttributeRefAttrListPtr aRefAttrListAttr = aData->refattrlist(attributeID());
     aRefAttrListAttr->remove(anAttributeIds);
   }
 
@@ -522,11 +509,11 @@ void ModuleBase_WidgetMultiSelector::updateSelectionList()
 {
   myListControl->clear();
 
-  AttributePtr anAttribute = myFeature->data()->attribute(attributeID());
+  DataPtr aData = myFeature->data();
+  AttributePtr anAttribute = aData->attribute(attributeID());
   std::string aType = anAttribute->attributeType();
   if (aType == ModelAPI_AttributeSelectionList::typeId()) {
-    AttributeSelectionListPtr aSelectionListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeSelectionList>(anAttribute);
+    AttributeSelectionListPtr aSelectionListAttr = aData->selectionList(attributeID());
     for (int i = 0; i < aSelectionListAttr->size(); i++) {
       AttributeSelectionPtr aAttr = aSelectionListAttr->value(i);
       QListWidgetItem* anItem = new QListWidgetItem(aAttr->namingName().c_str(), myListControl);
@@ -535,8 +522,7 @@ void ModuleBase_WidgetMultiSelector::updateSelectionList()
     }
   }
   else if (aType == ModelAPI_AttributeRefList::typeId()) {
-    AttributeRefListPtr aRefListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeRefList>(anAttribute);
+    AttributeRefListPtr aRefListAttr = aData->reflist(attributeID());
     for (int i = 0; i < aRefListAttr->size(); i++) {
       ObjectPtr anObject = aRefListAttr->object(i);
       if (anObject.get()) {
@@ -548,8 +534,7 @@ void ModuleBase_WidgetMultiSelector::updateSelectionList()
     }
   }
   else if (aType == ModelAPI_AttributeRefAttrList::typeId()) {
-    AttributeRefAttrListPtr aRefAttrListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeRefAttrList>(anAttribute);
+    AttributeRefAttrListPtr aRefAttrListAttr = aData->refattrlist(attributeID());
     for (int i = 0; i < aRefAttrListAttr->size(); i++) {
       AttributePtr anAttribute = aRefAttrListAttr->attribute(i);
       QString aName;
@@ -640,11 +625,11 @@ void ModuleBase_WidgetMultiSelector::convertIndicesToViewerSelection(std::set<in
   if(myFeature.get() == NULL)
     return;
 
-  AttributePtr anAttribute = myFeature->data()->attribute(attributeID());
+  DataPtr aData = myFeature->data();
+  AttributePtr anAttribute = aData->attribute(attributeID());
   std::string aType = anAttribute->attributeType();
   if (aType == ModelAPI_AttributeSelectionList::typeId()) {
-    AttributeSelectionListPtr aSelectionListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeSelectionList>(anAttribute);
+    AttributeSelectionListPtr aSelectionListAttr = aData->selectionList(attributeID());
     for (int i = 0; i < aSelectionListAttr->size(); i++) {
       // filter by attribute indices only if the container is not empty otherwise return all items
       if (!theAttributeIds.empty() && theAttributeIds.find(i) == theAttributeIds.end())
@@ -662,8 +647,7 @@ void ModuleBase_WidgetMultiSelector::convertIndicesToViewerSelection(std::set<in
     }
   }
   else if (aType == ModelAPI_AttributeRefList::typeId()) {
-    AttributeRefListPtr aRefListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeRefList>(anAttribute);
+    AttributeRefListPtr aRefListAttr = aData->reflist(attributeID());
     for (int i = 0; i < aRefListAttr->size(); i++) {
       // filter by attribute indices only if the container is not empty otherwise return all items
       if (!theAttributeIds.empty() && theAttributeIds.find(i) == theAttributeIds.end())
@@ -675,8 +659,7 @@ void ModuleBase_WidgetMultiSelector::convertIndicesToViewerSelection(std::set<in
     }
   }
   else if (aType == ModelAPI_AttributeRefAttrList::typeId()) {
-    AttributeRefAttrListPtr aRefAttrListAttr =
-                 std::dynamic_pointer_cast<ModelAPI_AttributeRefAttrList>(anAttribute);
+    AttributeRefAttrListPtr aRefAttrListAttr = aData->refattrlist(attributeID());
     for (int i = 0; i < aRefAttrListAttr->size(); i++) {
       // filter by attribute indices only if the container is not empty otherwise return all items
       if (!theAttributeIds.empty() && theAttributeIds.find(i) == theAttributeIds.end())