X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_ImportLandCoverMapOp.cxx;h=5cb9d9478c73085f4c5aa6accd6cdfabae58dbde;hb=58bb6b7459bebeeb089c9ed486c4683a8bae7288;hp=e8797abf390d31fac2ad239f10ec94fb69003e01;hpb=f6ba7eb84ba008755704db27a828bb193353f0fe;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_ImportLandCoverMapOp.cxx b/src/HYDROGUI/HYDROGUI_ImportLandCoverMapOp.cxx index e8797abf..5cb9d947 100644 --- a/src/HYDROGUI/HYDROGUI_ImportLandCoverMapOp.cxx +++ b/src/HYDROGUI/HYDROGUI_ImportLandCoverMapOp.cxx @@ -113,106 +113,102 @@ void HYDROGUI_ImportLandCoverMapOp::onFileSelected() return; } - QString anExt = myFileName.split('.', QString::SkipEmptyParts).back(); - - if (anExt == "shp") - { - startDocOperation(); - QApplication::setOverrideCursor(Qt::WaitCursor); - - QStringList aPolygonsList; - myPolygonFaces.Clear(); - myImporter.Free(); + startDocOperation(); + QApplication::setOverrideCursor(Qt::WaitCursor); + + QStringList aPolygonsList; + myPolygonFaces.Clear(); + myImporter.Free(); - SalomeApp_Study* aStudy = dynamic_cast( module()->getApp()->activeStudy() ); - if ( !aStudy ) - return; + SalomeApp_Study* aStudy = dynamic_cast( module()->getApp()->activeStudy() ); + if ( !aStudy ) + return; - erasePreview(); + erasePreview(); - Handle(AIS_InteractiveContext) aCtx = NULL; - int aShapeTypeOfFile = -1; + Handle(AIS_InteractiveContext) aCtx = NULL; + int aShapeTypeOfFile = -1; - //Import polygons from SHP file as faces - //This faces should be added to the new LCM object + //Import polygons from SHP file as faces + //This faces should be added to the new LCM object - int aStat = myImporter.ImportPolygons(myFileName, aPolygonsList, myPolygonFaces, aShapeTypeOfFile); - if (aStat == 1) - { - aPanel->setPolygonNames(aPolygonsList); + int aStat = myImporter.ImportPolygons(doc(), myFileName, aPolygonsList, myPolygonFaces, aShapeTypeOfFile); + if (aStat == 1) + { + aPanel->setPolygonNames(aPolygonsList); - LightApp_Application* anApp = module()->getApp(); - if ( !getPreviewManager() ) - setPreviewManager( ::qobject_cast( anApp->getViewManager( OCCViewer_Viewer::Type(), true ) ) ); - OCCViewer_ViewManager* aViewManager = getPreviewManager(); + LightApp_Application* anApp = module()->getApp(); + if ( !getPreviewManager() ) + setPreviewManager( ::qobject_cast( anApp->getViewManager( OCCViewer_Viewer::Type(), true ) ) ); + OCCViewer_ViewManager* aViewManager = getPreviewManager(); - if ( aViewManager ) + if ( aViewManager ) + { + if ( OCCViewer_Viewer* aViewer = aViewManager->getOCCViewer() ) { - if ( OCCViewer_Viewer* aViewer = aViewManager->getOCCViewer() ) - { - aCtx = aViewer->getAISContext(); - connect( aViewer, SIGNAL( selectionChanged() ), this, SLOT( onViewerSelectionChanged() ) ); - } + aCtx = aViewer->getAISContext(); + connect( aViewer, SIGNAL( selectionChanged() ), this, SLOT( onViewerSelectionChanged() ) ); } + } - for ( int i = 1; i <= myPolygonFaces.Length(); i++ ) + for ( int i = 1; i <= myPolygonFaces.Length(); i++ ) + { + TopoDS_Face aFace = TopoDS::Face(myPolygonFaces.Value( i )); + if ( aViewManager && !aCtx.IsNull() ) { - TopoDS_Face aFace = TopoDS::Face(myPolygonFaces.Value( i )); - if ( aViewManager && !aCtx.IsNull() ) - { - HYDROGUI_Shape* aShape = new HYDROGUI_Shape( aCtx, NULL, getPreviewZLayer() ); - //Preview color is grey - aShape->setFillingColor(QColor(50,50,50), false, false); - aShape->setBorderColor(QColor(50,50,50), false, false); - if( !aFace.IsNull() ) - aShape->setShape( aFace); - - myPolygonName2PrsShape.insert( tr( "DEF_POLYGON_NAME" ) + "_" + QString::number(i), aShape); - } + HYDROGUI_Shape* aShape = new HYDROGUI_Shape( aCtx, NULL, getPreviewZLayer() ); + //Preview color is grey + aShape->setFillingColor(QColor(50,50,50), false, false); + aShape->setBorderColor(QColor(50,50,50), false, false); + if( !aFace.IsNull() ) + aShape->setShape( aFace); + + myPolygonName2PrsShape.insert( tr( "DEF_POLYGON_NAME" ) + "_" + QString::number(i), aShape); } + } - if ( !aCtx.IsNull() ) - { - UpdateZLayersOfHilightPresentationsOfDisplayedObjects( aCtx, Graphic3d_ZLayerId_TopOSD ); - aCtx->UpdateCurrentViewer(); - } - // - QApplication::restoreOverrideCursor(); - aPanel->setFirstPageState(true); - // - //Try to load DBF-database... - QString aDBFFileName; - aDBFFileName = myFileName.simplified().replace( myFileName.simplified().size() - 4, 4, ".dbf"); - bool DBF_Stat = myImporter.DBF_OpenDBF(aDBFFileName); - // TODO: - // add MSG BOX if stat is bad - if (DBF_Stat) - { - myFieldList = myImporter.DBF_GetFieldList(); - aPanel->setAttributeNames(myFieldList); - } - aPanel->setDbfState(DBF_Stat); + if ( !aCtx.IsNull() ) + { + UpdateZLayersOfHilightPresentationsOfDisplayedObjects( aCtx, Graphic3d_ZLayerId_TopOSD ); + aCtx->UpdateCurrentViewer(); } - else + // + QApplication::restoreOverrideCursor(); + aPanel->setFirstPageState(true); + // + //Try to load DBF-database... + QString aDBFFileName; + aDBFFileName = myFileName.simplified().replace( myFileName.simplified().size() - 4, 4, ".dbf"); + bool DBF_Stat = myImporter.DBF_OpenDBF(aDBFFileName); + // TODO: + // add MSG BOX if stat is bad + if (DBF_Stat) { - erasePreview(); - aPanel->setPolygonNames(QStringList()); - aPanel->setObjectName(""); - QApplication::restoreOverrideCursor(); - QString aMess = tr( "CANNT_IMPORT_LCM" ) + "\n"; - if (aStat == -1) - aMess += tr( "CANNT_OPEN_SHP" ); - else if (aStat == -2) - aMess += tr( "CANNT_OPEN_SHX" ); - else - aMess += tr ("SHP_TYPEFORMAT_MESS") + myImporter.GetShapeTypeName(aShapeTypeOfFile); - SUIT_MessageBox::warning( module()->getApp()->desktop(), tr( "IMPORT_LANDCOVER_MAP" ), aMess); - commitDocOperation(); - myImporter.Free(); - //abort(); - aPanel->setFirstPageState(false); + myFieldList = myImporter.DBF_GetFieldList(); + aPanel->setAttributeNames(myFieldList); } + aPanel->setDbfState(DBF_Stat); } + else + { + erasePreview(); + aPanel->setPolygonNames(QStringList()); + aPanel->setObjectName(""); + QApplication::restoreOverrideCursor(); + QString aMess = tr( "CANNT_IMPORT_LCM" ) + "\n"; + if (aStat == -1) + aMess += tr( "CANNT_OPEN_SHP" ); + else if (aStat == -2) + aMess += tr( "CANNT_OPEN_SHX" ); + else + aMess += tr ("SHP_TYPEFORMAT_MESS") + myImporter.GetShapeTypeName(aShapeTypeOfFile); + SUIT_MessageBox::warning( module()->getApp()->desktop(), tr( "IMPORT_LANDCOVER_MAP" ), aMess); + commitDocOperation(); + myImporter.Free(); + //abort(); + aPanel->setFirstPageState(false); + } + } HYDROGUI_InputPanel* HYDROGUI_ImportLandCoverMapOp::createInputPanel() const @@ -266,7 +262,7 @@ bool HYDROGUI_ImportLandCoverMapOp::processApply( int& theUpdateFlags, if ( !aPanel->getFileName().isEmpty() ) anObjName = aPanel->getObjectName(); - Handle_HYDROData_Document aDoc = HYDROData_Document::Document( application()->activeStudy()->id() ); + Handle(HYDROData_Document) aDoc = HYDROData_Document::Document( application()->activeStudy()->id() ); //check if name of LCM is already exists QSet aNameList; @@ -341,18 +337,16 @@ void HYDROGUI_ImportLandCoverMapOp::onViewerSelectionChanged() return; int aCurIndex = -1; - aCurIndex = aPanel->GetCurrentWizardIndex(); + aCurIndex = aPanel->getCurrentWizardIndex(); if (aCurIndex != 0) return; OCCViewer_ViewManager* aViewManager = getPreviewManager(); Handle(AIS_InteractiveContext) aCtx = NULL; - if ( aViewManager ) { - if ( OCCViewer_Viewer* aViewer = aViewManager->getOCCViewer() ) { + if ( aViewManager ) + if ( OCCViewer_Viewer* aViewer = aViewManager->getOCCViewer() ) aCtx = aViewer->getAISContext(); - } - } if ( !aCtx.IsNull() ) { @@ -414,7 +408,7 @@ void HYDROGUI_ImportLandCoverMapOp::onNext( const int theIndex ) //Collect all strickler_types QSet aSTSet; - Handle_HYDROData_Document aDoc = HYDROData_Document::Document( application()->activeStudy()->id() ); + Handle(HYDROData_Document) aDoc = HYDROData_Document::Document( application()->activeStudy()->id() ); Handle(HYDROData_StricklerTable) DefStricklerTableObj; if ( aDoc ) { @@ -448,7 +442,7 @@ void HYDROGUI_ImportLandCoverMapOp::onNext( const int theIndex ) aSTColors.prepend(QColor(Qt::gray)); QVector aCurCBIndices(aSetOfAttrValuesList.size()); - if (DefStricklerTableObj->GetAttrName() == aPanel->getSelectedFieldName()) + if (DefStricklerTableObj->GetAttrName().trimmed() == aPanel->getSelectedFieldName().trimmed()) for (int i = 0; i < aSetOfAttrValuesList.size(); i++) { QString aST = DefStricklerTableObj->GetType(aSetOfAttrValuesList[i]); @@ -468,6 +462,13 @@ void HYDROGUI_ImportLandCoverMapOp::onNext( const int theIndex ) void HYDROGUI_ImportLandCoverMapOp::onApply() { + HYDROGUI_ImportLandCoverMapDlg* aPanel = ::qobject_cast( inputPanel() ); + if ( !aPanel ) + return; + + if (!aPanel->CheckFirstPageFilling()) + return; + QApplication::setOverrideCursor( Qt::WaitCursor ); int anUpdateFlags = 0; QString anErrorMsg; @@ -494,8 +495,7 @@ void HYDROGUI_ImportLandCoverMapOp::onApply() } else { - Handle(HYDROData_Entity) LCM = Handle(HYDROData_Entity)::DownCast( myLCM ); - LCM->Remove(); + myLCM->Remove(); module()->setObjectRemoved( myLCM ); abort(); }