Salome HOME
refs #611: redesign of the polylines extraction
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ImportLandCoverDlg.cxx
index b997bd4f084b329f724b4824b4fd7d14d7095b16..0e1f4772440cceca7a50447d20381f3d0c4d8aeb 100644 (file)
 #include <QListWidget>
 #include <QVBoxLayout>
 #include <QToolButton>
+#include <QCheckBox>
 #include <SUIT_ResourceMgr.h>
 #include <SUIT_Session.h>
 #include <SUIT_FileDlg.h>
 
 
 HYDROGUI_ImportLandCoverDlg::HYDROGUI_ImportLandCoverDlg( HYDROGUI_Module* theModule, const QString& theTitle )
-: HYDROGUI_InputPanel( theModule, theTitle )
+: HYDROGUI_Wizard( theModule, theTitle )
 {
+  addPage( createPage1() );
+  addPage( createPage2() );
+}
+
+QWizardPage* HYDROGUI_ImportLandCoverDlg::createPage1() {
+  QWizardPage* aPage = new QWizardPage( mainFrame() );
+  QFrame* aFrame = new QFrame( aPage );
+
   SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr();
 
-  // Import bathymetry from file
-  myFileNameGroup = new QGroupBox( tr( "IMPORT_POLYGON_FROM_FILE" ) );
+  myFileNameGroup = new QGroupBox( tr( "IMPORT_LANDCOVER_FROM_FILE" ) );
 
-  QLabel* aFileNameLabel = new QLabel( tr( "LANCOVER_NAME" ), myFileNameGroup );
+  QLabel* aFileNameLabel = new QLabel( tr( "FILE_NAME" ), myFileNameGroup );
 
   myFileName = new QLineEdit( myFileNameGroup );
   myFileName->setReadOnly( true );
@@ -52,80 +60,110 @@ HYDROGUI_ImportLandCoverDlg::HYDROGUI_ImportLandCoverDlg( HYDROGUI_Module* theMo
   aFileNameLayout->addWidget( myFileName );
   aFileNameLayout->addWidget( aBrowseBtn );
 
-  // Bathymetry name
-  myObjectNameGroup = new QGroupBox( tr( "FILE_NAME" ) );
+  myObjectNameGroup = new QGroupBox( tr( "LANDCOVER_NAME" ) );
 
-  QLabel* aBathymetryNameLabel = new QLabel( tr( "NAME" ), myObjectNameGroup );
+  QLabel* aLandcoverNameLabel = new QLabel( tr( "NAME" ), myObjectNameGroup );
   myObjectName = new QLineEdit( myObjectNameGroup );
 
-  QBoxLayout* aBathymetryNameLayout = new QHBoxLayout( myObjectNameGroup );
-  aBathymetryNameLayout->setMargin( 5 );
-  aBathymetryNameLayout->setSpacing( 5 );
-  aBathymetryNameLayout->addWidget( aBathymetryNameLabel );
-  aBathymetryNameLayout->addWidget( myObjectName );
-
-  // List of recognized polylines
-  QGroupBox* aPolylinesGroup = new QGroupBox( tr( "FOUND_POLYGONS_OF_SHP_FILE" ), mainFrame() );
-  myPolylines = new QListWidget( aPolylinesGroup );
-  myPolylines->setSelectionMode( QListWidget::ExtendedSelection );
-  myPolylines->setEditTriggers( QListWidget::NoEditTriggers );
-  myPolylines->setViewMode( QListWidget::ListMode );
-  myPolylines->setSortingEnabled( false );
-
-  QBoxLayout* aPolylinesLayout = new QVBoxLayout;
-  aPolylinesLayout->addWidget( myPolylines );
-  aPolylinesGroup->setLayout( aPolylinesLayout );
-  
+  QBoxLayout* aLandcoverNameLayout = new QHBoxLayout( myObjectNameGroup );
+  aLandcoverNameLayout->setMargin( 5 );
+  aLandcoverNameLayout->setSpacing( 5 );
+  aLandcoverNameLayout->addWidget( aLandcoverNameLabel );
+  aLandcoverNameLayout->addWidget( myObjectName );
+
+  QGroupBox* aPolygonsGroup = new QGroupBox( tr( "FOUNDED_POLYGONS" ) );
+  myPolygons = new QListWidget( aPolygonsGroup );
+  myPolygons->setSelectionMode( QListWidget::ExtendedSelection );
+  myPolygons->setEditTriggers( QListWidget::NoEditTriggers );
+  myPolygons->setViewMode( QListWidget::ListMode );
+  myPolygons->setSortingEnabled( false );
+
+  QBoxLayout* aPolygonsLayout = new QVBoxLayout;
+  aPolygonsLayout->addWidget( myPolygons );
+  aPolygonsGroup->setLayout( aPolygonsLayout );
+
   // Layout
-  addWidget( myFileNameGroup );
-  addWidget( myObjectNameGroup );  
-  addWidget( aPolylinesGroup );
+  QVBoxLayout* aPageLayout = new QVBoxLayout;
+  aPageLayout->setMargin( 5 );
+  aPageLayout->setSpacing( 5 );
+  aPageLayout->addWidget( myFileNameGroup );
+  aPageLayout->addWidget( myObjectNameGroup );
+  aPageLayout->addWidget( aPolygonsGroup );
+  aPage->setLayout( aPageLayout );
 
   // Conections
-  connect( myPolylines, SIGNAL( itemSelectionChanged() ), this, SLOT( onItemSelectionChanged() ) );
-  connect( aBrowseBtn, SIGNAL( clicked() ), this, SLOT( onBrowse() ) );
+  connect( myPolygons, SIGNAL( itemSelectionChanged() ), this, SLOT( onItemSelectionChanged() ) );
+  connect( aBrowseBtn, SIGNAL( clicked() ), this, SLOT( onBrowse() ) ); 
+
+  return aPage;
 }
 
-HYDROGUI_ImportLandCoverDlg::~HYDROGUI_ImportLandCoverDlg()
-{
+QWizardPage* HYDROGUI_ImportLandCoverDlg::createPage2() {
+  QWizardPage* aPage = new QWizardPage( mainFrame() );
+  QFrame* aFrame = new QFrame( aPage );
+
+  myAttrNameGroup = new QGroupBox( "Available attributes" );
+  QCheckBox* anAttrCheckBox = new QCheckBox( "Use dBase attributes as a Strickler Types", myAttrNameGroup );
+
+  QBoxLayout* aFileNameLayout = new QHBoxLayout( myAttrNameGroup );
+  aFileNameLayout->setMargin( 5 );
+  aFileNameLayout->setSpacing( 5 );
+  aFileNameLayout->addWidget( anAttrCheckBox );
+
+
+  myDBFAttr = new QListWidget( aPage );
+  myDBFAttr->setSelectionMode( QListWidget::ExtendedSelection );
+  myDBFAttr->setEditTriggers( QListWidget::NoEditTriggers );
+  myDBFAttr->setViewMode( QListWidget::ListMode );
+  myDBFAttr->setSortingEnabled( false );
+
+  // Layout
+  QVBoxLayout* aPageLayout = new QVBoxLayout;
+  aPageLayout->setMargin( 5 );
+  aPageLayout->setSpacing( 5 );
+  aPageLayout->addWidget( myAttrNameGroup );
+  aPageLayout->addWidget( myDBFAttr );
+  aPage->setLayout( aPageLayout );
+  return aPage;
 }
 
-void HYDROGUI_ImportLandCoverDlg::setImageName( const QString& theName )
+
+
+HYDROGUI_ImportLandCoverDlg::~HYDROGUI_ImportLandCoverDlg()
 {
-  myImageName->setText( theName );
 }
 
 void HYDROGUI_ImportLandCoverDlg::reset()
 {
-  myImageName->clear();
-  myPolylines->clear();
+  myPolygons->clear();
 }
 
-void HYDROGUI_ImportLandCoverDlg::setPolylineNames( const QStringList& theNames )
+void HYDROGUI_ImportLandCoverDlg::setPolygonNames( const QStringList& theNames )
 {
-  myPolylines->clear();
-  myPolylines->addItems( theNames );
+  myPolygons->clear();
+  myPolygons->addItems( theNames );
 }
 
-void HYDROGUI_ImportLandCoverDlg::removePolylineNames( const QStringList& theNames )
+void HYDROGUI_ImportLandCoverDlg::removePolygonNames( const QStringList& theNames )
 {
   QList<QListWidgetItem*> aFoundItems;
 
   foreach ( const QString& aName, theNames ) {
-    aFoundItems = myPolylines->findItems( aName, Qt::MatchExactly );
+    aFoundItems = myPolygons->findItems( aName, Qt::MatchExactly );
     foreach ( QListWidgetItem* anItem, aFoundItems ) {
-      anItem = myPolylines->takeItem( myPolylines->row( anItem ) );
+      anItem = myPolygons->takeItem( myPolygons->row( anItem ) );
       delete anItem;
     }
   }
 }
 
-void HYDROGUI_ImportLandCoverDlg::setSelectedPolylineNames( const QStringList& theNames )
+void HYDROGUI_ImportLandCoverDlg::setSelectedPolygonNames( const QStringList& theNames )
 {
-  myPolylines->clearSelection();
+  myPolygons->clearSelection();
 
   foreach( const QString aName, theNames ) {
-    QList<QListWidgetItem*> anItems = myPolylines->findItems( aName, Qt::MatchExactly );
+    QList<QListWidgetItem*> anItems = myPolygons->findItems( aName, Qt::MatchExactly );
     if ( anItems.count() == 1 ) {
       anItems.first()->setSelected( true );
     }
@@ -134,14 +172,14 @@ void HYDROGUI_ImportLandCoverDlg::setSelectedPolylineNames( const QStringList& t
 
 void HYDROGUI_ImportLandCoverDlg::onItemSelectionChanged()
 {
-  emit selectionChanged( getSelectedtPolylineNames() );
+  emit selectionChanged( getSelectedPolygonNames() );
 }
 
-QStringList HYDROGUI_ImportLandCoverDlg::getSelectedtPolylineNames() const
+QStringList HYDROGUI_ImportLandCoverDlg::getSelectedPolygonNames() const
 {
   QStringList aSelectedNames;
 
-  QList<QListWidgetItem*> aSelectedItems = myPolylines->selectedItems();
+  QList<QListWidgetItem*> aSelectedItems = myPolygons->selectedItems();
   foreach( const QListWidgetItem* anItem, aSelectedItems ) {
     aSelectedNames << anItem->text();
   }