Salome HOME
refs #618
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_DataModel.h
index 6cb1fbb63cde7a7846e1916b8ca1d9ff97bca422..33d6a07f4886c0a3847e13ec85dc08c5eeedf996 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
@@ -55,6 +51,11 @@ public:
   HYDROGUI_DataModel( CAM_Module* theModule );
   virtual ~HYDROGUI_DataModel();
 
+  /**
+   * Creates the document into the data model. Reimplemented.
+   */
+  virtual bool create( CAM_Study* );
+
   /**
    * Open the document into the data model. Reimplemented.
    * \param theURL opened study path
@@ -148,7 +149,9 @@ public:
   /**
    * Create a new region in the given calculation case containing given zones. 
    */
-  bool createNewRegion( Handle(HYDROData_CalculationCase) theCase, const QList<HYDROGUI_Zone*>& theZonesList );
+  bool createNewRegion( Handle(HYDROData_CalculationCase) theCase,
+                        const QList<HYDROGUI_Zone*>& theZonesList,
+                        const bool theLandCover );
 
   /**
    * Correct an internal model object according to the current document mode
@@ -230,9 +233,11 @@ public:
    * Creates the Calculation Case subtree for usage within an operation dialog.
    * \param theParent a created object will be appended as a child of this GUI object
    * \param theCase the calculation case model object
+   * \param theLandCover if true - land cover regions will be represented in the tree
    */
   void buildCaseTree( SUIT_DataObject*                  theParent,
-                      Handle(HYDROData_CalculationCase) theCase );
+                      Handle(HYDROData_CalculationCase) theCase,
+                      const bool theLandCover );
 
   /**
    * Updates the object subtree.
@@ -321,6 +326,13 @@ protected:
                                      const QString&           theParentEntry,
                                      const bool               theIsBuildTree ,
                                      const bool               theIsInOperation = false );
+  /**
+   * Creates the default Strickler table object: both GUI data object and corresponding model object
+   * \param theDocument a document into which created object will be added
+   * \param theParent a created object will be appended as a child of this GUI object
+   */
+  void                 createDefaultStricklerTable( const Handle(HYDROData_Document)& theDocument,
+                                                    LightApp_DataObject*              theParent );
   /**
    * Build partition for object.
    * \param theObject gui object for which the partition will be build
@@ -362,6 +374,17 @@ protected:
   static SUIT_DataObject* findChildByName( const SUIT_DataObject* theFather,
                                            const QString& theName );
 
+  void updateDocument();
+
+  /**
+   * Set object visibility state.
+   * \param theModelObject the data model object
+   * \param theDataObject the GUI object
+   */
+  void setObjectVisibilityState( Handle(HYDROData_Entity) theModelObject,
+                                 HYDROGUI_DataObject* theObject );
+                                 
+
 protected:
   QString myStudyURL; ///< the saved/opened document URL
   QByteArray myStates;