Salome HOME
Image positioning by two points.
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_DataObject.h
index 4e92dfffa3fad5688fb8211c7c65061314c7584b..c48daaa04fd8ec0647b98aa8806d65c9276d828f 100644 (file)
 #ifndef HYDROGUI_DATAOBJECT_H
 #define HYDROGUI_DATAOBJECT_H
 
-#include "HYDROGUI.h"
-
-#include <HYDROData_Object.h>
+#include <HYDROData_Entity.h>
 
 #include <LightApp_DataObject.h>
 
 #include <QString>
 #include <QMap>
 #include <QPixmap>
+#include <QColor>
 
 /**
  * \class HYDROGUI_DataObject
 class HYDROGUI_DataObject : public LightApp_DataObject
 {
 public:
+  //! Column id
+  enum { 
+    RefObjectId = RefEntryId + 1,    //!< Ref.Object column
+    BathymetryId                     //!< Bathymetry column
+  };
+
   /**
    * Constructor.
    * \param theParent parent data object
    * \param theData reference to the corresponding object from data structure
+   * \param theParentEntry entry of the parent data object (for reference objects)
    */
   HYDROGUI_DataObject( SUIT_DataObject* theParent,
-                       Handle(HYDROData_Object) theData );
+                       Handle(HYDROData_Entity) theData,
+                       const QString& theParentEntry );
     
   /**
    * Returns the unique object identifier string.
    */
   virtual QString entry() const;
 
+  /**
+   * Returns the entry of the referenced object.
+   */
+  virtual QString refEntry() const;
+
   /**
    * Returns the name of object.
    */
   virtual QString name() const;
 
+  /**
+   * Returns the font of displayed object name.
+   */
+  virtual QFont font( const int = SUIT_DataObject::NameId ) const;
+
   /**
    * Returns the model data object.
    */
-  const Handle(HYDROData_Object)& modelObject() const { return myData; }
+  const Handle(HYDROData_Entity)& modelObject() const { return myData; }
 
   /**
    * Redefines the object.
    */
-  void setObject( Handle(HYDROData_Object) theObject ) { myData = theObject; }
+  void setObject( const Handle(HYDROData_Entity)& theObject ) { myData = theObject; }
+
+  /**
+   * Returns the entry prefix for all HYDRO data objects.
+   */
+  static QString entryPrefix() { return QString( "HYDRO:" ); }
 
   /**
-   * Returns \a HYDROGUI_DataObject by the entry string of this object.
-   * \returns NULL if this is not HYDRO entry, or cannot cast to HYDROGUI_DataObject
+   * Returns the full entry for the specified data object.
    */
-  static HYDROGUI_DataObject* objectByEntry( const QString& theEntry );
+  static QString dataObjectEntry( const Handle(HYDROData_Entity)& theObject,
+                                  const bool theWithPrefix = true );
 
 protected:
-  Handle(HYDROData_Object) myData; ///< object from data model
-  QString myEntry; ///< optimization: store generated entry to return it quickly
-  int myStudyId; ///< the study identifier: check an object validity in the corresponded document
+  Handle(HYDROData_Entity) myData; ///< object from data model
+  QString myParentEntry;
 };
 
 /**
@@ -103,7 +124,8 @@ public:
    * \param theName displayed name
    */
   HYDROGUI_NamedObject( SUIT_DataObject* theParent,
-                        const QString& theName );
+                        const QString& theName,
+                        const QString& theParentEntry  );
     
   /**
    * Returns the unique object identifier string.
@@ -115,15 +137,9 @@ public:
    */
   virtual QString name() const;
 
-  /**
-   * Returns name of the named object that is identified by this entry.
-   * \param theEntry entry of the object (used for selection identification).
-   * \returns name of the object, or empty string if it is not HYDRO named object
-   */
-  static QString nameByEntry( const QString& theEntry );
-
 private:
   QString myName; ///< name in the OB
+  QString myParentEntry;
 };
 
 #endif