X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModel%2FModel_ResultPart.cpp;h=0392787f3c7a2b7a44558b0b851a81a3914a5eb6;hb=c44da4cdb21b305f2350bb4b2c9044eaba08f171;hp=75b2f8b412f732f28e2ad83e8286aabece48e293;hpb=63e86d82608e83f49339f946a8a3f5ebcaa0f7b5;p=modules%2Fshaper.git diff --git a/src/Model/Model_ResultPart.cpp b/src/Model/Model_ResultPart.cpp index 75b2f8b41..0392787f3 100644 --- a/src/Model/Model_ResultPart.cpp +++ b/src/Model/Model_ResultPart.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D + // File: ModelAPI_ResultPart.cpp // Created: 07 Jul 2014 // Author: Mikhail PONIKAROV @@ -5,25 +7,48 @@ #include #include #include +#include -boost::shared_ptr Model_ResultPart::partDoc() +std::shared_ptr Model_ResultPart::partDoc() { - return data()->docRef("PartDocument")->value(); + return data()->document("PartDocument")->value(); } -boost::shared_ptr Model_ResultPart::owner() +std::shared_ptr Model_ResultPart::owner() { - return boost::shared_ptr(); // return empty pointer + return std::shared_ptr(); // return empty pointer } Model_ResultPart::Model_ResultPart() { + setIsConcealed(false); } -void Model_ResultPart::setData(boost::shared_ptr theData) +void Model_ResultPart::setData(std::shared_ptr theData) { ModelAPI_Result::setData(theData); if (theData) { data()->addAttribute(DOC_REF(), ModelAPI_AttributeDocRef::type()); } } + +void Model_ResultPart::activate() +{ + std::shared_ptr aDocRef = data()->document(DOC_REF()); + + if (!aDocRef->value().get()) { // create (or open) a document if it is not yet created + std::shared_ptr aDoc = document()->subDocument(data()->name()); + if (aDoc) { + aDocRef->setValue(aDoc); + } + } + if (aDocRef->value().get()) { + ModelAPI_Session::get()->setActiveDocument(aDocRef->value()); + } +} + +bool Model_ResultPart::isActivated() +{ + std::shared_ptr aDocRef = data()->document(DOC_REF()); + return aDocRef->value().get(); +}