-// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
-
-// File: ModelAPI_AttributeRefList.cxx
-// Created: 8 May 2014
-// Author: Mikhail PONIKAROV
+// 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 "Model_AttributeRefList.h"
#include "Model_Application.h"
#include <TDF_Tool.hxx>
#include <TDataStd_ListIteratorOfListOfExtendedString.hxx>
-using namespace std;
-
void Model_AttributeRefList::append(ObjectPtr theObject)
{
if (owner()->document() == theObject->document()) {
bool Model_AttributeRefList::isInitialized()
{
- if (size(false) == 0) { // empty list is not initialized list: sketch will be not valid after add/undo
+ if (size(false) == 0) {
+ // empty list is not initialized list: sketch will be not valid after add/undo
return false;
}
return ModelAPI_AttributeRefList::isInitialized();
}
ObjectPtr Model_AttributeRefList::iteratedObject(TDF_ListIteratorOfLabelList& theLIter,
- TDataStd_ListIteratorOfListOfExtendedString& theExtIter,
+ TDataStd_ListIteratorOfListOfExtendedString& theExtIter,
std::shared_ptr<Model_Document> theDoc) const
{
ObjectPtr anObj;
return anObj;
}
-list<ObjectPtr> Model_AttributeRefList::list()
+std::list<ObjectPtr> Model_AttributeRefList::list()
{
std::list<ObjectPtr> aResult;
std::shared_ptr<Model_Document> aDoc = std::dynamic_pointer_cast<Model_Document>(
ObjectPtr Model_AttributeRefList::object(const int theIndex, const bool theWithEmpty) const
{
- std::shared_ptr<Model_Document> aDoc =
+ std::shared_ptr<Model_Document> aDoc =
std::dynamic_pointer_cast<Model_Document>(owner()->document());
if (aDoc) {
int anIndex = -1;
TDF_Label aCurrentLab = aData->label().Father();
TDF_Label aNewLab;
if (theNew.get() && theNew->data()->isValid()) { // the new may be null
- std::shared_ptr<Model_Data> aNewData =
+ std::shared_ptr<Model_Data> aNewData =
std::dynamic_pointer_cast<Model_Data>(theNew->data());
aNewLab = aNewData->label().Father();
} else {
if (aData1.get() && aData1->isValid()) {
TDF_Label aLab1 = aData1->label().Father();
if (theObject2.get() && theObject2->data()->isValid()) { // the new may be null
- std::shared_ptr<Model_Data> aData2 =
+ std::shared_ptr<Model_Data> aData2 =
std::dynamic_pointer_cast<Model_Data>(theObject2->data());
if (aData2.get() && aData2->isValid()) {
TDF_Label aLab2 = aData2->label().Father();
Model_AttributeRefList::Model_AttributeRefList(TDF_Label& theLabel)
{
- myIsInitialized = theLabel.FindAttribute(TDataStd_ReferenceList::GetID(), myRef) == Standard_True;
+ myLab = theLabel;
+ reinit();
+}
+
+void Model_AttributeRefList::reinit()
+{
+ myIsInitialized = myLab.FindAttribute(TDataStd_ReferenceList::GetID(), myRef) == Standard_True;
if (!myIsInitialized) {
- myRef = TDataStd_ReferenceList::Set(theLabel);
+ myRef = TDataStd_ReferenceList::Set(myLab);
}
- if (!theLabel.FindAttribute(TDataStd_ExtStringList::GetID(), myExtDocRef)) {
- myExtDocRef = TDataStd_ExtStringList::Set(theLabel);
+ if (!myLab.FindAttribute(TDataStd_ExtStringList::GetID(), myExtDocRef)) {
+ myExtDocRef = TDataStd_ExtStringList::Set(myLab);
}
}