#include <ModelAPI_PluginManager.h>
#include <ModelAPI_Document.h>
#include <ModelAPI_Feature.h>
+#include <ModelAPI_Result.h>
#include <ModelAPI_Data.h>
#include <ModelAPI_AttributeDocRef.h>
#include <ModelAPI_Object.h>
+#include <ModelAPI_ResultPart.h>
+#include <ModelAPI_ResultConstruction.h>
+#include <ModelAPI_ResultParameters.h>
#include <QIcon>
#include <QBrush>
-//FeaturePtr featureObj(const FeaturePtr& theFeature)
+//ObjectPtr featureObj(const ObjectPtr& theFeature)
//{
// ObjectPtr aObject = boost::dynamic_pointer_cast<ModelAPI_Object>(theFeature);
// if (aObject)
case ParamObject:
{
DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
- FeaturePtr aFeature = aRootDoc->feature(ModelAPI_Document::PARAMETERS_GROUP(), theIndex.row());
- if (aFeature)
- return boost::dynamic_pointer_cast<ModelAPI_Object>(aFeature)->getName().c_str();
+ ObjectPtr aObject = aRootDoc->object(ModelAPI_ResultParameters::group(), theIndex.row());
+ if (aObject)
+ return boost::dynamic_pointer_cast<ModelAPI_Object>(aObject)->data()->name().c_str();
}
case ConstructFolder:
return tr("Constructions") + QString(" (%1)").arg(rowCount(theIndex));
case ConstructObject:
{
DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
- FeaturePtr aFeature = aRootDoc->feature(ModelAPI_Document::CONSTRUCTIONS_GROUP(), theIndex.row());
- if (aFeature)
- return boost::dynamic_pointer_cast<ModelAPI_Object>(aFeature)->getName().c_str();
+ ObjectPtr aObject = aRootDoc->object(ModelAPI_ResultConstruction::group(), theIndex.row());
+ if (aObject)
+ return boost::dynamic_pointer_cast<ModelAPI_Object>(aObject)->data()->name().c_str();
}
}
break;
case ConstructFolder:
return QIcon(":pictures/constr_folder.png");
case ConstructObject:
- {
- DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
- FeaturePtr aFeature = aRootDoc->feature(ModelAPI_Document::CONSTRUCTIONS_GROUP(), theIndex.row());
- if (aFeature)
- return QIcon(XGUI_Workshop::featureIcon(aFeature->getKind()));
- }
+ return QIcon(":pictures/constr_object.png");
+ //{
+ // DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
+ // ObjectPtr aObject = aRootDoc->object(ModelAPI_ResultConstruction::group(), theIndex.row());
+ // if (aObject)
+ // return QIcon(XGUI_Workshop::featureIcon(aObject->getKind()));
+ //}
}
break;
DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
if (theParent.internalId() == ParamsFolder)
- return aRootDoc->size(ModelAPI_Document::PARAMETERS_GROUP());
+ return aRootDoc->size(ModelAPI_ResultParameters::group());
if (theParent.internalId() == ConstructFolder)
- return aRootDoc->size(ModelAPI_Document::CONSTRUCTIONS_GROUP());
-
+ return aRootDoc->size(ModelAPI_ResultConstruction::group());
return 0;
}
return rowCount(theParent) > 0;
}
-FeaturePtr XGUI_TopDataModel::feature(const QModelIndex& theIndex) const
+ObjectPtr XGUI_TopDataModel::object(const QModelIndex& theIndex) const
{
switch (theIndex.internalId()) {
case ParamsFolder:
case ConstructFolder:
- return FeaturePtr();
+ return ObjectPtr();
case ParamObject:
{
DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
- return aRootDoc->feature(ModelAPI_Document::PARAMETERS_GROUP(), theIndex.row());
+ return aRootDoc->object(ModelAPI_ResultParameters::group(), theIndex.row());
}
case ConstructObject:
{
DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
- return aRootDoc->feature(ModelAPI_Document::CONSTRUCTIONS_GROUP(), theIndex.row());
+ return aRootDoc->object(ModelAPI_ResultConstruction::group(), theIndex.row());
}
}
- return FeaturePtr();
+ return ObjectPtr();
}
-QModelIndex XGUI_TopDataModel::findParent(const FeaturePtr& theFeature) const
+QModelIndex XGUI_TopDataModel::findParent(const ObjectPtr& theObject) const
{
- return findGroup(theFeature->getGroup().c_str());
+ return findGroup(theObject->groupName().c_str());
}
QModelIndex XGUI_TopDataModel::findGroup(const std::string& theGroup) const
{
- if (theGroup.compare(ModelAPI_Document::PARAMETERS_GROUP()) == 0)
+ if (theGroup.compare(ModelAPI_ResultParameters::group()) == 0)
return createIndex(0, 0, (qint32) ParamsFolder);
- if (theGroup.compare(ModelAPI_Document::CONSTRUCTIONS_GROUP()) == 0)
+ if (theGroup.compare(ModelAPI_ResultConstruction::group()) == 0)
return createIndex(1, 0, (qint32) ConstructFolder);
return QModelIndex();
}
-QModelIndex XGUI_TopDataModel::featureIndex(const FeaturePtr& theFeature) const
+QModelIndex XGUI_TopDataModel::objectIndex(const ObjectPtr& theObject) const
{
QModelIndex aIndex;
- if (theFeature) {
+ if (theObject) {
DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
- std::string aGroup = theFeature->getGroup();
+ std::string aGroup = theObject->groupName();
int aNb = aRootDoc->size(aGroup);
int aRow = -1;
for (int i = 0; i < aNb; i++) {
- if (aRootDoc->feature(aGroup, i) == theFeature) {
+ if (aRootDoc->object(aGroup, i) == theObject) {
aRow = i;
break;
}
}
if (aRow != -1) {
- if (aGroup.compare(ModelAPI_Document::PARAMETERS_GROUP()) == 0)
+ if (aGroup.compare(ModelAPI_ResultParameters::group()) == 0)
return createIndex(aRow, 0, (qint32) ParamObject);
- if (aGroup.compare(ModelAPI_Document::CONSTRUCTIONS_GROUP()) == 0)
+ if (aGroup.compare(ModelAPI_ResultConstruction::group()) == 0)
return createIndex(aRow, 0, (qint32) ConstructObject);
}
}
case MyRoot:
{
DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
- FeaturePtr aFeature = aRootDoc->feature(ModelAPI_Document::PARTS_GROUP(), myId);
- if (aFeature)
- return boost::dynamic_pointer_cast<ModelAPI_Object>(aFeature)->getName().c_str();
+ ObjectPtr aObject = aRootDoc->object(ModelAPI_ResultPart::group(), myId);
+ if (aObject)
+ return boost::dynamic_pointer_cast<ModelAPI_Object>(aObject)->data()->name().c_str();
}
case ParamsFolder:
return tr("Parameters") + QString(" (%1)").arg(rowCount(theIndex));
return tr("Bodies") + QString(" (%1)").arg(rowCount(theIndex));
case ParamObject:
{
- FeaturePtr aFeature = featureDocument()->feature(ModelAPI_Document::PARAMETERS_GROUP(), theIndex.row());
- if (aFeature)
- return boost::dynamic_pointer_cast<ModelAPI_Object>(aFeature)->getName().c_str();
+ ObjectPtr aObject = partDocument()->object(ModelAPI_ResultParameters::group(), theIndex.row());
+ if (aObject)
+ return boost::dynamic_pointer_cast<ModelAPI_Object>(aObject)->data()->name().c_str();
}
case ConstructObject:
{
- FeaturePtr aFeature = featureDocument()->feature(ModelAPI_Document::CONSTRUCTIONS_GROUP(), theIndex.row());
- if (aFeature)
- return boost::dynamic_pointer_cast<ModelAPI_Object>(aFeature)->getName().c_str();
+ ObjectPtr aObject = partDocument()->object(ModelAPI_ResultConstruction::group(), theIndex.row());
+ if (aObject)
+ return boost::dynamic_pointer_cast<ModelAPI_Object>(aObject)->data()->name().c_str();
}
case HistoryObject:
{
- FeaturePtr aFeature = featureDocument()->feature(ModelAPI_Document::FEATURES_GROUP(), theIndex.row() - 3);
- if (aFeature)
- return aFeature->data()->getName().c_str();
+ ObjectPtr aObject = partDocument()->object(ModelAPI_Feature::group(), theIndex.row() - 3);
+ if (aObject)
+ return aObject->data()->name().c_str();
}
}
break;
case BodiesFolder:
return QIcon(":pictures/constr_folder.png");
case ConstructObject:
- {
- FeaturePtr aFeature = featureDocument()->feature(ModelAPI_Document::CONSTRUCTIONS_GROUP(), theIndex.row());
- if (aFeature)
- return QIcon(XGUI_Workshop::featureIcon(aFeature->getKind()));
- }
+ return QIcon(":pictures/constr_object.png");
+ //{
+ // ObjectPtr aObject = partDocument()->object(ModelAPI_ResultConstruction::group(), theIndex.row());
+ // if (aObject)
+ // return QIcon(XGUI_Workshop::featureIcon(aObject->getKind()));
+ //}
case HistoryObject:
{
- FeaturePtr aFeature = featureDocument()->feature(ModelAPI_Document::FEATURES_GROUP(), theIndex.row() - 3);
+ ObjectPtr aObject = partDocument()->object(ModelAPI_Feature::group(), theIndex.row() - 3);
+ FeaturePtr aFeature = boost::dynamic_pointer_cast<ModelAPI_Feature>(aObject);
if (aFeature)
return QIcon(XGUI_Workshop::featureIcon(aFeature->getKind()));
}
{
if (!parent.isValid()) {
DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
- if (aRootDoc->feature(ModelAPI_Document::PARTS_GROUP(), myId))
+ if (aRootDoc->object(ModelAPI_ResultPart::group(), myId))
return 1;
else
return 0;
}
switch (parent.internalId()) {
case MyRoot:
- return 3 + featureDocument()->size(ModelAPI_Document::FEATURES_GROUP());
+ return 3 + partDocument()->size(ModelAPI_Feature::group());
case ParamsFolder:
- return featureDocument()->size(ModelAPI_Document::PARAMETERS_GROUP());
+ return partDocument()->size(ModelAPI_ResultParameters::group());
case ConstructFolder:
- return featureDocument()->size(ModelAPI_Document::CONSTRUCTIONS_GROUP());
+ return partDocument()->size(ModelAPI_ResultConstruction::group());
case BodiesFolder:
return 0;
}
}
-DocumentPtr XGUI_PartDataModel::featureDocument() const
+DocumentPtr XGUI_PartDataModel::partDocument() const
{
DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
- FeaturePtr aFeature = aRootDoc->feature(ModelAPI_Document::PARTS_GROUP(), myId, true);
- return aFeature->data()->docRef("PartDocument")->value();
+ ObjectPtr aObject = aRootDoc->object(ModelAPI_ResultPart::group(), myId);
+ return aObject->data()->docRef("PartDocument")->value();
}
-FeaturePtr XGUI_PartDataModel::feature(const QModelIndex& theIndex) const
+ObjectPtr XGUI_PartDataModel::object(const QModelIndex& theIndex) const
{
switch (theIndex.internalId()) {
case MyRoot:
{
DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
- return aRootDoc->feature(ModelAPI_Document::PARTS_GROUP(), myId);
+ return aRootDoc->object(ModelAPI_ResultPart::group(), myId);
}
case ParamsFolder:
case ConstructFolder:
case BodiesFolder:
- return FeaturePtr();
+ return ObjectPtr();
case ParamObject:
- return featureDocument()->feature(ModelAPI_Document::PARAMETERS_GROUP(), theIndex.row());
+ return partDocument()->object(ModelAPI_ResultParameters::group(), theIndex.row());
case ConstructObject:
- return featureDocument()->feature(ModelAPI_Document::CONSTRUCTIONS_GROUP(), theIndex.row());
+ return partDocument()->object(ModelAPI_ResultConstruction::group(), theIndex.row());
//case BodiesObject:
- // return featureDocument()->feature(ModelAPI_Document::CONSTRUCTIONS_GROUP(), theIndex.row());
+ // return partDocument()->feature(ModelAPI_ResultConstruction::group(), theIndex.row());
case HistoryObject:
- return featureDocument()->feature(ModelAPI_Document::FEATURES_GROUP(), theIndex.row() - 3);
+ return partDocument()->object(ModelAPI_Feature::group(), theIndex.row() - 3);
}
- return FeaturePtr();
+ return ObjectPtr();
}
bool XGUI_PartDataModel::hasDocument(const DocumentPtr& theDoc) const
{
- return (featureDocument() == theDoc);
+ return (partDocument() == theDoc);
}
-QModelIndex XGUI_PartDataModel::findParent(const FeaturePtr& theFeature) const
+QModelIndex XGUI_PartDataModel::findParent(const ObjectPtr& theObject) const
{
- return findGroup(theFeature->getGroup().c_str());
+ return findGroup(theObject->groupName().c_str());
}
QModelIndex XGUI_PartDataModel::findGroup(const std::string& theGroup) const
{
- if (theGroup.compare(ModelAPI_Document::PARAMETERS_GROUP()) == 0)
+ if (theGroup.compare(ModelAPI_ResultParameters::group()) == 0)
return createIndex(0, 0, (qint32) ParamsFolder);
- if (theGroup.compare(ModelAPI_Document::CONSTRUCTIONS_GROUP()) == 0)
+ if (theGroup.compare(ModelAPI_ResultConstruction::group()) == 0)
return createIndex(1, 0, (qint32) ConstructFolder);
return QModelIndex();
}
-FeaturePtr XGUI_PartDataModel::part() const
+ResultPartPtr XGUI_PartDataModel::part() const
{
DocumentPtr aRootDoc = ModelAPI_PluginManager::get()->rootDocument();
- return aRootDoc->feature(ModelAPI_Document::PARTS_GROUP(), myId, true);
+ ObjectPtr aObj = aRootDoc->object(ModelAPI_ResultPart::group(), myId);
+ return boost::dynamic_pointer_cast<ModelAPI_ResultPart>(aObj);
}
-QModelIndex XGUI_PartDataModel::featureIndex(const FeaturePtr& theFeature) const
+QModelIndex XGUI_PartDataModel::objectIndex(const ObjectPtr& theObject) const
{
QModelIndex aIndex;
- if (theFeature) {
- if (part() == theFeature)
+ if (theObject) {
+ if (part() == theObject)
return aIndex;
//std::string aGroup = theFeature->getGroup();
- DocumentPtr aDoc = theFeature->document();
- int aNb = aDoc->size(ModelAPI_Document::FEATURES_GROUP());
+ DocumentPtr aDoc = theObject->document();
+ int aNb = aDoc->size(ModelAPI_Feature::group());
int aRow = -1;
for (int i = 0; i < aNb; i++) {
- if (aDoc->feature(ModelAPI_Document::FEATURES_GROUP(), i) == theFeature) {
+ if (aDoc->object(ModelAPI_Feature::group(), i) == theObject) {
aRow = i;
break;
}
}
if (aRow != -1) {
return createIndex(aRow + 3, 0, (qint32) HistoryObject);
-/* if (aGroup.compare(PARAMETERS_GROUP) == 0)
+/* if (aGroup.compare(ModelAPI_ResultParameters::group()) == 0)
return createIndex(aRow, 0, (qint32) ParamObject);
- if (aGroup.compare(CONSTRUCTIONS_GROUP) == 0)
+ if (aGroup.compare(ModelAPI_ResultConstruction::group()) == 0)
return createIndex(aRow, 0, (qint32) ConstructObject);*/
}
}