//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- bool RimUiTreeModelPdm::deleteReservoirView(const QModelIndex& itemIndex) { CVF_ASSERT(itemIndex.isValid()); caf::PdmUiTreeItem* uiItem = getTreeItemFromIndex(itemIndex); CVF_ASSERT(uiItem); RimReservoirView* reservoirView = dynamic_cast<RimReservoirView*>(uiItem->dataObject().p()); CVF_ASSERT(reservoirView); // Remove Ui items pointing at the pdm object to delete removeRow(itemIndex.row(), itemIndex.parent()); reservoirView->eclipseCase()->removeReservoirView(reservoirView); delete reservoirView; return true; }
//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RimReservoirView* RimUiTreeModelPdm::addReservoirView(const QModelIndex& itemIndex, QModelIndex& insertedModelIndex) { caf::PdmUiTreeItem* currentItem = getTreeItemFromIndex(itemIndex); if (!currentItem) return NULL; RimReservoirView* reservoirView = dynamic_cast<RimReservoirView*>(currentItem->dataObject().p()); if (!reservoirView) return NULL; RimReservoirView* insertedView = reservoirView->eclipseCase()->createAndAddReservoirView(); caf::PdmUiTreeItem* collectionItem = currentItem->parent(); size_t viewCount = rowCount(itemIndex.parent()); beginInsertRows(itemIndex.parent(), viewCount, viewCount); caf::PdmUiTreeItem* childItem = new caf::PdmUiTreeItem(collectionItem, viewCount, insertedView); endInsertRows(); insertedView->loadDataAndUpdate(); rebuildUiSubTree(insertedView); return insertedView; }