//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- bool RIApplication::openEclipseCase(const QString& caseName, const QString& caseFileName) { QFileInfo gridFileName(caseFileName); QString casePath = gridFileName.absolutePath(); RimResultReservoir* rimResultReservoir = new RimResultReservoir(); rimResultReservoir->caseName = caseName; rimResultReservoir->caseFileName = caseFileName; rimResultReservoir->caseDirectory = casePath; m_project->reservoirs.push_back(rimResultReservoir); RimReservoirView* riv = rimResultReservoir->createAndAddReservoirView(); if (m_preferences->autocomputeSOIL) { // Select SOIL as default result variable riv->cellResult()->resultType = RimDefines::DYNAMIC_NATIVE; riv->cellResult()->resultVariable = "SOIL"; riv->animationMode = true; } riv->loadDataAndUpdate(); if (!riv->cellResult()->hasResult()) { riv->cellResult()->resultVariable = RimDefines::undefinedResultName(); } onProjectOpenedOrClosed(); return true; }
//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- bool RIApplication::loadProject(const QString& projectFileName) { if (!closeProject(true)) return false; if (!QFile::exists(projectFileName)) return false; m_project->fileName = projectFileName; m_project->readFile(); if (m_project->projectFileVersionString().isEmpty()) { closeProject(false); QString tmp = QString("Unknown project file version detected in file \n%1\n\nCould not open project.").arg(projectFileName); QMessageBox::warning(NULL, "Error when opening project file", tmp); RIMainWindow* mainWnd = RIMainWindow::instance(); mainWnd->setPdmRoot(NULL); // Delete all object possibly generated by readFile() delete m_project; m_project = new RimProject; } else { m_preferences->lastUsedProjectFileName = projectFileName; writePreferences(); size_t i; for (i = 0; i < m_project->reservoirs().size(); ++i) { RimReservoir* ri = m_project->reservoirs()[i]; CVF_ASSERT(ri); size_t j; for (j = 0; j < ri->reservoirViews().size(); j++) { RimReservoirView* riv = ri->reservoirViews()[j]; CVF_ASSERT(riv); riv->loadDataAndUpdate(); } } } onProjectOpenedOrClosed(); return true; }
//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- bool RIApplication::openInputEclipseCase(const QString& caseName, const QStringList& caseFileNames) { RimInputReservoir* rimInputReservoir = new RimInputReservoir(); rimInputReservoir->caseName = caseName; rimInputReservoir->openDataFileSet(caseFileNames); m_project->reservoirs.push_back(rimInputReservoir); RimReservoirView* riv = rimInputReservoir->createAndAddReservoirView(); riv->cellResult()->resultType = RimDefines::INPUT_PROPERTY; riv->animationMode = true; riv->loadDataAndUpdate(); if (!riv->cellResult()->hasResult()) { riv->cellResult()->resultVariable = RimDefines::undefinedResultName(); } onProjectOpenedOrClosed(); 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; }