Salome HOME
refs #568: use ordered list view with selection synchronized with object browser...
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_StricklerTableDlg.h
index 95f1261bf874ca7624ae10d558dcd340568bdf89..0fa872b2d18fd1e27e35e48b70b5af70031a28bd 100644 (file)
 
 #include "HYDROGUI_InputPanel.h"
 
+class HYDROData_StricklerTable;
+
+class QGroupBox;
 class QLineEdit;
+class QToolButton;
+class QTableWidget;
+class QtxFilePath;
 
 class HYDROGUI_StricklerTableDlg : public HYDROGUI_InputPanel
 {
-  Q_OBJECT
+    Q_OBJECT
 
 public:
-  HYDROGUI_StricklerTableDlg( HYDROGUI_Module* theModule, const QString& theTitle );
-  virtual ~HYDROGUI_StricklerTableDlg();
+    struct StricklerCoefficient
+    {
+        QString myType;
+        double  myCoefficient;
+
+        StricklerCoefficient(  const QString& theType,
+            double theCoefficient )
+            : myType( theType ), myCoefficient( theCoefficient ) {}
+    };
+    typedef QList<StricklerCoefficient> StricklerCoefficientList;
+
+    enum { Edit, Import, Export };
+
+public:
+    HYDROGUI_StricklerTableDlg( HYDROGUI_Module* theModule, const QString& theTitle, int theType );
+    virtual ~HYDROGUI_StricklerTableDlg();
+
+    void                       reset();
+
+    QString                    getFileName() const;
+    void                       setFileName( const QString& theName );
+
+    void                       setTableName( const QString& theName );
+    QString                    getTableName() const;
+
+    bool                       isTableNameReadOnly() const;
+    void                       setTableNameReadOnly( bool );
+
+    StricklerCoefficientList   getData() const;
+    void                       setData(const StricklerCoefficientList& theData);
+
+protected:
+    void                       updateControls();
+    void                       removeRows( const QList<int> theRows );
+
+protected Q_SLOTS:
+    void                       onBrowse();
+
+    void                       onAddCoefficient();
+    void                       onRemoveCoefficient();
+    void                       onClearCoefficients();
+
+    void                       onSelectionChanged();
 
-  void  setStricklerTableName( const QString& theName );
-  QString getStricklerTableName() const;
+Q_SIGNALS:
+    void                       fileSelected( const QString& theFileName );
 
 private:
-  QLineEdit*            myName;
+    int                        myType;
+    QLineEdit*                 myFileName;   //!< Source Strickler table file name input field
+    QLineEdit*                 myName;       //!< The Strickler table name input field
+    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