]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
refs #562: GUI to import/modify Strickler table objects.
authormkr <mkr@opencascade.com>
Thu, 4 Jun 2015 09:18:17 +0000 (12:18 +0300)
committermkr <mkr@opencascade.com>
Thu, 4 Jun 2015 09:18:17 +0000 (12:18 +0300)
src/HYDROGUI/CMakeLists.txt
src/HYDROGUI/HYDROGUI_GeoreferencementDlg.cxx
src/HYDROGUI/HYDROGUI_GeoreferencementDlg.h
src/HYDROGUI/HYDROGUI_LineEditDoubleValidator.cxx [new file with mode: 0644]
src/HYDROGUI/HYDROGUI_LineEditDoubleValidator.h [new file with mode: 0644]
src/HYDROGUI/HYDROGUI_StricklerTableDlg.cxx
src/HYDROGUI/HYDROGUI_StricklerTableDlg.h
src/HYDROGUI/HYDROGUI_StricklerTableOp.cxx
src/HYDROGUI/resources/HYDROGUI_msg_en.ts

index dadac13bfffad53aa3a85581cc62e956e94be910..62035c763c82937550b068979db04b3e660eac33 100644 (file)
@@ -70,6 +70,7 @@ set(PROJECT_HEADERS
     HYDROGUI_ShowHideOp.h
     HYDROGUI_StreamDlg.h
     HYDROGUI_StreamOp.h
+    HYDROGUI_LineEditDoubleValidator.h
     HYDROGUI_StricklerTableDlg.h
     HYDROGUI_StricklerTableOp.h
     HYDROGUI_SubmersibleOp.h
@@ -185,6 +186,7 @@ set(PROJECT_SOURCES
     HYDROGUI_ShowHideOp.cxx
     HYDROGUI_StreamDlg.cxx
     HYDROGUI_StreamOp.cxx
+    HYDROGUI_LineEditDoubleValidator.cxx
     HYDROGUI_StricklerTableDlg.cxx
     HYDROGUI_StricklerTableOp.cxx
     HYDROGUI_SubmersibleOp.cxx
index 45b8d55a95deb8035cb2a2aa69358c9dbf8a092d..8c31879e395bac82e8ab9b183d5ee86365150462 100644 (file)
@@ -19,6 +19,7 @@
 #include "HYDROGUI_GeoreferencementDlg.h"
 
 #include "HYDROGUI_Tool.h"
+#include "HYDROGUI_LineEditDoubleValidator.h"
 
 #include <CurveCreator_Utils.hxx>
 
@@ -29,7 +30,6 @@
 #include <AIS_InteractiveContext.hxx>
 
 #include <QTableWidget>
-#include <QItemDelegate>
 #include <QHeaderView>
 #include <QRadioButton>
 #include <QPushButton>
@@ -67,64 +67,6 @@ HYDROGUI_GeoreferencementDlg::ProfileGeoData::ProfileGeoData(
   }
 }
 
-//! Custom item delegate (line edit with double validator)
-class HYDROGUI_GeoreferencementDlg::Delegate : public QItemDelegate
-{
-public:
-  Delegate( QObject* = 0 );
-  
-  QWidget* createEditor( QWidget*, const QStyleOptionViewItem&,
-                         const QModelIndex& ) const;
-  
-  void setEditorData( QWidget*, const QModelIndex& ) const;
-  void setModelData( QWidget*, QAbstractItemModel*, const QModelIndex& ) const;
-};
-
-HYDROGUI_GeoreferencementDlg::Delegate::Delegate( QObject* theParent )
- : QItemDelegate( theParent )
-{
-}
-
-QWidget* HYDROGUI_GeoreferencementDlg::Delegate::createEditor( 
-  QWidget* theParent, const QStyleOptionViewItem& theOption,
-  const QModelIndex& theIndex ) const
-{
-  QWidget* anEditor = 0;
-
-  if ( theIndex.column() > 0 ) {
-    QLineEdit* aLineEdit = new QLineEdit( theParent );
-    QDoubleValidator* aDoubleValidator = new QDoubleValidator();
-    aDoubleValidator->setNotation( QDoubleValidator::StandardNotation );
-    aDoubleValidator->setDecimals( 2 );
-    aLineEdit->setValidator( aDoubleValidator );
-    anEditor = aLineEdit;
-  } else {
-    anEditor = QItemDelegate::createEditor( theParent, theOption, theIndex );
-  }
-
-  return anEditor;
-}
-
-void HYDROGUI_GeoreferencementDlg::Delegate::setEditorData( 
-  QWidget* theEditor, const QModelIndex& theIndex ) const
-{
-  if ( QLineEdit* aLineEdit = dynamic_cast<QLineEdit*>( theEditor ) ) {
-    aLineEdit->setText( theIndex.data( Qt::EditRole ).toString() );
-  } else {
-    QItemDelegate::setEditorData( theEditor, theIndex );
-  }
-}
-
-void HYDROGUI_GeoreferencementDlg::Delegate::setModelData( 
-  QWidget* theEditor, QAbstractItemModel* theModel, const QModelIndex& theIndex) const
-{
-  if ( QLineEdit* aLineEdit = dynamic_cast<QLineEdit*>( theEditor ) ) {
-    theModel->setData( theIndex, aLineEdit->text() );
-  } else {
-    QItemDelegate::setModelData( theEditor, theModel, theIndex );
-  }
-}
-
 HYDROGUI_GeoreferencementDlg::HYDROGUI_GeoreferencementDlg( HYDROGUI_Module* theModule, const QString& theTitle )
 : HYDROGUI_InputPanel( theModule, theTitle ), myIsModified( false )
 {
@@ -153,7 +95,7 @@ HYDROGUI_GeoreferencementDlg::HYDROGUI_GeoreferencementDlg( HYDROGUI_Module* the
 
   // Table
   myTable = new QTableWidget( mainFrame() );
-  myTable->setItemDelegate( new Delegate( this ) );
+  myTable->setItemDelegate( new HYDROGUI_LineEditDoubleValidator( this ) );
   myTable->verticalHeader()->setVisible( false );
   myTable->setSelectionBehavior( QAbstractItemView::SelectItems );
   myTable->setSelectionMode( QAbstractItemView::SingleSelection );
index 028c2e75ba4fe18c301c3c7482d8e81862d780d0..6c993ec3fce01743b59f495960f194262af1436c 100644 (file)
@@ -33,8 +33,6 @@ class HYDROGUI_GeoreferencementDlg : public HYDROGUI_InputPanel
 {
   Q_OBJECT
 
-  class Delegate;
-
 public:
   enum ProfilesMode { AllProfiles, SelectedProfiles };
 
diff --git a/src/HYDROGUI/HYDROGUI_LineEditDoubleValidator.cxx b/src/HYDROGUI/HYDROGUI_LineEditDoubleValidator.cxx
new file mode 100644 (file)
index 0000000..c932ec1
--- /dev/null
@@ -0,0 +1,66 @@
+// Copyright (C) 2014-2015  EDF-R&D
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+#include "HYDROGUI_LineEditDoubleValidator.h"
+
+#include <QLineEdit>
+
+HYDROGUI_LineEditDoubleValidator::HYDROGUI_LineEditDoubleValidator( QObject* theParent )
+ : QItemDelegate( theParent )
+{
+}
+
+QWidget* HYDROGUI_LineEditDoubleValidator::createEditor( 
+  QWidget* theParent, const QStyleOptionViewItem& theOption,
+  const QModelIndex& theIndex ) const
+{
+  QWidget* anEditor = 0;
+
+  if ( theIndex.column() > 0 ) {
+    QLineEdit* aLineEdit = new QLineEdit( theParent );
+    QDoubleValidator* aDoubleValidator = new QDoubleValidator();
+    aDoubleValidator->setNotation( QDoubleValidator::StandardNotation );
+    aDoubleValidator->setDecimals( 2 );
+    aLineEdit->setValidator( aDoubleValidator );
+    anEditor = aLineEdit;
+  } else {
+    anEditor = QItemDelegate::createEditor( theParent, theOption, theIndex );
+  }
+
+  return anEditor;
+}
+
+void HYDROGUI_LineEditDoubleValidator::setEditorData( 
+  QWidget* theEditor, const QModelIndex& theIndex ) const
+{
+  if ( QLineEdit* aLineEdit = dynamic_cast<QLineEdit*>( theEditor ) ) {
+    aLineEdit->setText( theIndex.data( Qt::EditRole ).toString() );
+  } else {
+    QItemDelegate::setEditorData( theEditor, theIndex );
+  }
+}
+
+void HYDROGUI_LineEditDoubleValidator::setModelData( 
+  QWidget* theEditor, QAbstractItemModel* theModel, const QModelIndex& theIndex) const
+{
+  if ( QLineEdit* aLineEdit = dynamic_cast<QLineEdit*>( theEditor ) ) {
+    theModel->setData( theIndex, aLineEdit->text() );
+  } else {
+    QItemDelegate::setModelData( theEditor, theModel, theIndex );
+  }
+}
diff --git a/src/HYDROGUI/HYDROGUI_LineEditDoubleValidator.h b/src/HYDROGUI/HYDROGUI_LineEditDoubleValidator.h
new file mode 100644 (file)
index 0000000..bd9c825
--- /dev/null
@@ -0,0 +1,37 @@
+// Copyright (C) 2014-2015  EDF-R&D
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+#ifndef HYDROGUI_LINEEDITDOUBLEVALIDATOR_H
+#define HYDROGUI_LINEEDITDOUBLEVALIDATOR_H
+
+#include <QItemDelegate>
+
+//! Custom item delegate (line edit with double validator)
+class HYDROGUI_LineEditDoubleValidator : public QItemDelegate
+{
+public:
+  HYDROGUI_LineEditDoubleValidator( QObject* = 0 );
+  
+  QWidget* createEditor( QWidget*, const QStyleOptionViewItem&,
+                         const QModelIndex& ) const;
+  
+  void setEditorData( QWidget*, const QModelIndex& ) const;
+  void setModelData( QWidget*, QAbstractItemModel*, const QModelIndex& ) const;
+};
+
+#endif
index 1d13f24f407041f1216a5bc3e7983759951fa4cc..3bcab2d8feb5a359b51254e12dd948d7074aee74 100644 (file)
 //
 
 #include "HYDROGUI_StricklerTableDlg.h"
+
 #include "HYDROGUI_Module.h"
+#include "HYDROGUI_Tool.h"
+#include "HYDROGUI_LineEditDoubleValidator.h"
 
 #include <LightApp_Application.h>
 
@@ -32,6 +35,8 @@
 #include <QToolButton>
 #include <QLayout>
 #include <QLabel>
+#include <QTableWidget>
+#include <QHeaderView>
 
 HYDROGUI_StricklerTableDlg::HYDROGUI_StricklerTableDlg( HYDROGUI_Module* theModule, const QString& theTitle )
 : HYDROGUI_InputPanel( theModule, theTitle ), myName(NULL)
@@ -69,15 +74,66 @@ HYDROGUI_StricklerTableDlg::HYDROGUI_StricklerTableDlg( HYDROGUI_Module* theModu
   anImageNameLayout->addWidget( myName );
 
   // Strickler table
-  //...
+  myTableGroup = new QGroupBox( tr( "STRICKLER_TABLE_TABLE" ), this );
+
+  // Main layout
+  QVBoxLayout* aTableLayout = new QVBoxLayout( myTableGroup );
+  aTableLayout->setMargin( 5 );
+  aTableLayout->setSpacing( 5 );
+
+  // Buttons
+  myAddBtn = new QToolButton;
+  myAddBtn->setText( tr( "ADD" ) );
+  myRemoveBtn = new QToolButton;
+  myRemoveBtn->setText( tr( "REMOVE" ) );
+  myClearBtn = new QToolButton;
+  myClearBtn->setText( tr( "CLEAR_ALL" ) );
+
+  // Table
+  myTable = new QTableWidget( mainFrame() );
+  myTable->setItemDelegate( new HYDROGUI_LineEditDoubleValidator( this ) );
+  myTable->setEditTriggers( QAbstractItemView::DoubleClicked |
+                            QAbstractItemView::SelectedClicked |
+                            QAbstractItemView::EditKeyPressed );
+
+  myTable->setColumnCount( 2 );
+  QStringList aColumnNames;
+  aColumnNames << tr( "STRICKLER_TYPE" ) << tr( "STRICKLER_COEFFICIENT" );
+  myTable->setHorizontalHeaderLabels( aColumnNames );
+
+  myTable->horizontalHeader()->setStretchLastSection( false);
+  myTable->horizontalHeader()->setResizeMode( 0, QHeaderView::Stretch );
+  myTable->horizontalHeader()->setResizeMode( 1, QHeaderView::ResizeToContents );
 
+  myTable->verticalHeader()->setResizeMode( QHeaderView::ResizeToContents );
+
+  // Layout
+  // buttons
+  QHBoxLayout* aButtonsLayout = new QHBoxLayout();
+  aButtonsLayout->addWidget( myAddBtn );
+  aButtonsLayout->addWidget( myRemoveBtn );
+  aButtonsLayout->addStretch( 1 );
+  aButtonsLayout->addWidget( myClearBtn );
+
+  // main
+  aTableLayout->addLayout( aButtonsLayout );
+  aTableLayout->addWidget( myTable );
+  
   // Common
   addWidget( myFileNameGroup );
   addWidget( myNameGroup );
-  //addWidget( myTableGroup );
-  addStretch();
+  addWidget( myTableGroup );
+  
+  // Update controls
+  updateControls();
 
+  // Connections
   connect( myBrowseBtn, SIGNAL( clicked() ), this, SLOT( onBrowse() ) );
+  connect( myAddBtn, SIGNAL( clicked() ), this, SLOT( onAddCoefficient() ) );
+  connect( myRemoveBtn, SIGNAL( clicked() ), this, SLOT( onRemoveCoefficient() ) );
+  connect( myClearBtn, SIGNAL( clicked() ), this, SLOT( onClearCoefficients() ) );
+  connect( myTable->selectionModel(), SIGNAL( selectionChanged( QItemSelection, QItemSelection ) ), 
+           this, SLOT( onSelectionChanged() ) );  
 
   setMinimumWidth( 350 );
 }
@@ -90,7 +146,9 @@ void HYDROGUI_StricklerTableDlg::setIsEdit( const bool theIsEdit )
 {
   myFileNameGroup->setVisible( !theIsEdit );
   myNameGroup->setEnabled( theIsEdit );
-  //myTableGroup->setEnabled( theIsEdit );
+  myTableGroup->setVisible( theIsEdit );
+  if ( !theIsEdit )
+    addStretch();
 }
 
 void HYDROGUI_StricklerTableDlg::reset()
@@ -99,10 +157,6 @@ void HYDROGUI_StricklerTableDlg::reset()
 
   myName->clear();
   myNameGroup->setEnabled( false );
-   
-  //myTableGroup->setEnabled( false );
-
-  //myIsInitialized = false;
 }
 
 QString HYDROGUI_StricklerTableDlg::getFileName() const
@@ -113,6 +167,9 @@ QString HYDROGUI_StricklerTableDlg::getFileName() const
 void HYDROGUI_StricklerTableDlg::setFileName( const QString& theName )
 {
   myFileName->setText( theName );
+
+  if ( !myNameGroup->isEnabled() )
+    myNameGroup->setEnabled( true );
 }
 
 void HYDROGUI_StricklerTableDlg::setStricklerTableName( const QString& theName )
@@ -125,6 +182,62 @@ QString HYDROGUI_StricklerTableDlg::getStricklerTableName() const
   return myName->text();
 }
 
+void HYDROGUI_StricklerTableDlg::setData(const StricklerCoefficientList& theData)
+{
+  myTable->setRowCount( 0 );
+
+  foreach ( const StricklerCoefficient& aData, theData ) {
+    // Check the current Strickler type
+    if ( aData.myType.isEmpty() ) {
+      continue;
+    }
+
+    // Get Strickler coefficient value for the current Strickler type
+    QString aCoefficient = HYDROGUI_Tool::GetCoordinateString( aData.myCoefficient, false );
+    
+    // Insert row with the data
+    int aRow = myTable->rowCount();
+    myTable->insertRow( aRow );
+
+    // "Type" column
+    QTableWidgetItem* aTypeItem = new QTableWidgetItem( aData.myType );    
+    myTable->setItem( aRow, 0, aTypeItem );
+
+    // "Coefficient" column
+    myTable->setItem( aRow, 1, new QTableWidgetItem( aCoefficient ) );
+  }
+
+  myTable->resizeColumnToContents( 0 );
+  myTable->resizeRowsToContents();
+
+  updateControls();
+}
+
+void HYDROGUI_StricklerTableDlg::updateControls()
+{
+  bool isTableNotEmpty = myTable->rowCount() > 0;
+  myClearBtn->setEnabled( isTableNotEmpty );  
+  onSelectionChanged();
+}
+
+void HYDROGUI_StricklerTableDlg::removeRows( const QList<int> theRows )
+{
+  QList<int> aSortedRows = theRows;
+  qSort( aSortedRows );
+
+  int aRowToRemove = -1;
+  int aNbRemoved = 0;
+  foreach ( int aRow, aSortedRows ) {
+    aRowToRemove = aRow - aNbRemoved;
+       if ( myTable->model()->removeRow( aRowToRemove ) ) {
+      aNbRemoved++;
+    }
+  }
+
+  if ( aNbRemoved > 0 )
+    updateControls();
+}
+
 void HYDROGUI_StricklerTableDlg::onBrowse()
 {
   QString aFilter( tr( "STRICKLER_TABLE_FILTER" ) );
@@ -135,3 +248,53 @@ void HYDROGUI_StricklerTableDlg::onBrowse()
     emit fileSelected( aFileName );
   }
 }
+
+/**
+  Add the new default constructed Strickler coefficient.
+ */
+void HYDROGUI_StricklerTableDlg::onAddCoefficient()
+{
+  int aRow = myTable->rowCount();
+  myTable->insertRow( aRow );
+
+  // Set default type (=> generate unique type name) and coefficient
+  //...
+
+  updateControls();  
+}
+
+/**
+  Remove the selected Strickler coefficient.
+ */
+void HYDROGUI_StricklerTableDlg::onRemoveCoefficient()
+{
+  QList<int> aRows;
+  QModelIndexList aSelectedIndexes = myTable->selectionModel()->selectedRows();
+  foreach ( const QModelIndex& anIndex, aSelectedIndexes ) {
+    aRows << anIndex.row();
+  }
+
+  removeRows( aRows );
+}
+
+/**
+  Clear all Strickler coefficients.
+ */
+void HYDROGUI_StricklerTableDlg::onClearCoefficients()
+{
+  QList<int> aRows;
+  for ( int i=0; i< myTable->rowCount(); i++ ) {
+    aRows << i;
+  }
+
+  removeRows( aRows );
+}
+
+/**
+ Slot called on table selection change.
+*/
+void HYDROGUI_StricklerTableDlg::onSelectionChanged()
+{
+  QModelIndexList aSelectedIndexes = myTable->selectionModel()->selectedRows();
+  myRemoveBtn->setEnabled( aSelectedIndexes.count() > 0 );
+}
index 282648de9455229c1ba88c1c51f5f86c03f2ba2a..fef70326d6f887f42ab82dee11f99874eee8ddb7 100644 (file)
 
 #include "HYDROGUI_InputPanel.h"
 
+class HYDROData_StricklerTable;
+
 class QGroupBox;
 class QLineEdit;
 class QToolButton;
+class QTableWidget;
 
 class HYDROGUI_StricklerTableDlg : public HYDROGUI_InputPanel
 {
   Q_OBJECT
 
+public:
+  struct StricklerCoefficient
+  {
+    QString myType;
+       double  myCoefficient;
+
+    StricklerCoefficient(  const QString& theType,
+                           double theCoefficient )
+      : myType( theType ), myCoefficient( theCoefficient ) {}
+  };
+  typedef QList<StricklerCoefficient> StricklerCoefficientList;
+
 public:
   HYDROGUI_StricklerTableDlg( HYDROGUI_Module* theModule, const QString& theTitle );
   virtual ~HYDROGUI_StricklerTableDlg();
@@ -42,9 +57,21 @@ public:
   void                       setStricklerTableName( const QString& theName );
   QString                    getStricklerTableName() const;
 
+  void                       setData(const StricklerCoefficientList& theData);
+
+protected:
+  void                       updateControls();
+  void                       removeRows( const QList<int> theRows );
+
 protected slots:
   void                       onBrowse();
 
+  void                       onAddCoefficient();
+  void                       onRemoveCoefficient();
+  void                       onClearCoefficients();
+
+  void                       onSelectionChanged();
+
 signals:
   void                       fileSelected( const QString& theFileName );
 
@@ -56,6 +83,11 @@ private:
   QGroupBox*                 myNameGroup;   //!< The group for the Strickler table name input field
   QLineEdit*                 myName;        //!< The Strickler table name input field
 
+  QGroupBox*                 myTableGroup; //!< The group for the Strickler table table control and buttons
+  QTableWidget*              myTable;      //!< The table of Strickler coefficients
+  QToolButton*               myAddBtn;     //!< The add Strickler coefficient button
+  QToolButton*               myRemoveBtn;  //!< The remove Strickler coefficient button
+  QToolButton*               myClearBtn;   //!< The clear all Strickler coefficients button
 };
 
 #endif
index 88de04a2c8e1eeb26744cdb8ee4939add82ffe1c..464b74854a8da9ce893e9a72461bf31b6564cb10 100644 (file)
@@ -24,6 +24,8 @@
 
 #include <HYDROData_Document.h>
 
+#include <LightApp_UpdateFlags.h>
+
 #include <QFileInfo>
 
 HYDROGUI_StricklerTableOp::HYDROGUI_StricklerTableOp( HYDROGUI_Module* theModule, bool theIsEdit )
@@ -43,8 +45,8 @@ void HYDROGUI_StricklerTableOp::startOperation()
   HYDROGUI_Operation::startOperation();
 
   HYDROGUI_StricklerTableDlg* aPanel = (HYDROGUI_StricklerTableDlg*)inputPanel();
-  //aPanel->reset();
-  //aPanel->setIsEdit( myIsEdit );
+  aPanel->reset();
+  aPanel->setIsEdit( myIsEdit );
 
   if( myIsEdit )
   {
@@ -53,6 +55,31 @@ void HYDROGUI_StricklerTableOp::startOperation()
     if ( !myEditedObject.IsNull() )
     {
       // Edit selected Strickler table
+
+      aPanel->setStricklerTableName( myEditedObject->GetName() );
+
+      // Get Strickler table data from the data model
+      // ...
+
+      // The code below is a sample of data filling Strickler table
+      HYDROGUI_StricklerTableDlg::StricklerCoefficientList aData;
+      HYDROGUI_StricklerTableDlg::StricklerCoefficient aStricklerCoef1( "Zones de champs, prairies, sans cultures", 20.0 );
+      HYDROGUI_StricklerTableDlg::StricklerCoefficient aStricklerCoef2( "Zones de champs cultivé à végétation basse", 17.5 );
+      HYDROGUI_StricklerTableDlg::StricklerCoefficient aStricklerCoef3( "Zones de champs cultivé à végétation haute", 12.5 );
+      HYDROGUI_StricklerTableDlg::StricklerCoefficient aStricklerCoef4( "Zones d'arbustes, de sous-bois", 10.0 );
+      HYDROGUI_StricklerTableDlg::StricklerCoefficient aStricklerCoef5( "Zones à faible urbanization (bourg)", 9.0 );
+      HYDROGUI_StricklerTableDlg::StricklerCoefficient aStricklerCoef6( "Zones à forte urbanization (agglomération)", 9.0 );
+      HYDROGUI_StricklerTableDlg::StricklerCoefficient aStricklerCoef7( "Canaux naturels", 35.0 );
+      HYDROGUI_StricklerTableDlg::StricklerCoefficient aStricklerCoef8( "Canaux artificiels en béton", 65.0 );
+      aData.append( aStricklerCoef1 );
+      aData.append( aStricklerCoef2 );
+      aData.append( aStricklerCoef3 );
+      aData.append( aStricklerCoef4 );
+      aData.append( aStricklerCoef5 );
+      aData.append( aStricklerCoef6 );
+      aData.append( aStricklerCoef7 );
+      aData.append( aStricklerCoef8 );
+      aPanel->setData(aData);
     }
     else
     {
@@ -136,10 +163,15 @@ bool HYDROGUI_StricklerTableOp::processApply( int& theUpdateFlags, QString& theE
   if( myIsEdit )
   {
     // Get data from input panel's table and save it into data model object
+    
+    // Check, that type names are unique within the current
+    // Strickler table and show error message, if needed
+
+    //...
   }
   else
   {
-    // Import data from Strickler table file into data model model object
+    // Import data from Strickler table file into data model object
     aStricklerTableObj->Import( HYDROGUI_Tool::ToAsciiString( aFilePath ) );
   }
 
@@ -151,6 +183,8 @@ bool HYDROGUI_StricklerTableOp::processApply( int& theUpdateFlags, QString& theE
     theBrowseObjectsEntries.append( anEntry );
   }
 
+  theUpdateFlags |= UF_ObjBrowser;
+
   return true;
 }
 
index fa95456b031b37ee85889ea168715dbb63337291..5022b7eef227f5eb5e292b1e832c3f4b6eed35f7 100644 (file)
@@ -2261,10 +2261,6 @@ Polyline should consist from one not closed curve.</translation>
 
   <context>
     <name>HYDROGUI_StricklerTableDlg</name>
-    <message>
-      <source>STRICKLER_TABLE_NAME</source>
-      <translation>Strickler table name</translation>
-    </message>
     <message>
       <source>IMPORT_STRICKLER_TABLE_FROM_FILE</source>
       <translation>Import Strickler table from file</translation>
@@ -2285,6 +2281,30 @@ Polyline should consist from one not closed curve.</translation>
       <source>DEFAULT_STRICKLER_TABLE_NAME</source>
       <translation>Strickler table</translation>
     </message>
+    <message>
+      <source>STRICKLER_TABLE_TABLE</source>
+      <translation>Strickler table definition</translation>
+    </message>
+    <message>
+      <source>ADD</source>
+      <translation>Add</translation>
+    </message>
+    <message>
+      <source>REMOVE</source>
+      <translation>Remove</translation>
+    </message>
+    <message>
+      <source>CLEAR_ALL</source>
+      <translation>Clear all</translation>
+    </message>
+    <message>
+      <source>STRICKLER_TYPE</source>
+      <translation>Type</translation>
+    </message>
+    <message>
+      <source>STRICKLER_COEFFICIENT</source>
+      <translation>Coefficient</translation>
+    </message>
   </context>
 
   <context>