Salome HOME
refs #568: use ordered list view with selection synchronized with object browser...
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ProfileInterpolateOp.h
index c3fe408fd7ed56ba67c2b461c221ded18d261c40..bd05e2c0c638303fccda2a0b56be01d9034e39d7 100644 (file)
@@ -1,8 +1,4 @@
-// Copyright (C) 2007-2015  CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
+// 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
 
 #include <HYDROData_Profile.h>
 
-class HYDROGUI_CurveCreatorProfile;
+#include <AIS_Shape.hxx>
+
+#include <QPair>
+#include <QList>
+
+class HYDROData_IProfilesInterpolator;
 
 class HYDROGUI_ProfileInterpolateOp : public HYDROGUI_Operation
 {
   Q_OBJECT
 
 public:
-  HYDROGUI_ProfileInterpolateOp( HYDROGUI_Module* theModule, bool isEdit );
+  HYDROGUI_ProfileInterpolateOp( HYDROGUI_Module* theModule );
   virtual ~HYDROGUI_ProfileInterpolateOp();
 
-  void                       deleteSelected();
-  bool                       deleteEnabled();
+protected:
+  typedef QList< QPair<QString, QString> > ParamsList;
 
 protected:
   virtual void               startOperation();
@@ -50,14 +51,22 @@ protected:
   virtual bool               processApply( int& theUpdateFlags, QString& theErrorMsg,
                                            QStringList& theBrowseObjectsEntries );
 
-private:
-  void                       displayPreview();
-  void                       erasePreview();
+  QStringList                interpolators() const;
+  HYDROData_IProfilesInterpolator* interpolator( const QString& ) const;
+  void                       updateInterpolator( HYDROData_IProfilesInterpolator* );
+  HYDROData_Profile::ProfilePoints profile( const QString& ) const;
+  ParamsList                 parameters( const QString& ) const;
+  QString                    parameters( const ParamsList& ) const;
+
+  TopoDS_Shape               previewShape( HYDROData_IProfilesInterpolator* ) const;
+
+private slots:
+  void                       updatePreview();
+  void                       onRiverChanged( const QString& );
+  void                       onInterpolatorChanged( const QString& );
 
 private:
-  bool                       myIsEdit;
-  Handle(HYDROData_Profile)  myEditedObject;
-  HYDROGUI_CurveCreatorProfile* myProfile;
+  Handle(AIS_Shape)          myPreview;
 };
 
 #endif