Salome HOME
Merge V8_4_BR branch.
[modules/gui.git] / src / SalomeApp / SalomeApp_DataModel.h
index a4ce5c8084266526decf08205493ae042ad95acf..ca5ce29b80817a4b4e70ad73ebcae5e5e0319353 100644 (file)
@@ -1,8 +1,29 @@
+// Copyright (C) 2007-2016  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
+//
+// 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
+//
+
 // File:      SalomeApp_DataModel.h
 // Created:   10/25/2004 10:32:33 AM
 // Author:    Sergey LITONIN
-// Copyright (C) CEA 2004
-
+//
 #ifndef SALOMEAPP_DATAMODEL_H
 #define SALOMEAPP_DATAMODEL_H
 
 #endif // _MSC_VER > 1000
 
 #include "SalomeApp.h"
-#include "CAM_DataModel.h"
+#include "LightApp_DataModel.h"
 
 #include "SALOMEDSClient.hxx"
 
-/*
-  Class       : SalomeApp_DataModel
-  Description : Base class of data model
-*/
-
 class SalomeApp_Module;
 class SalomeApp_Study;
-class SalomeApp_DataObject;
-class SalomeApp_SelectionMgr;
+class SUIT_DataObject;
+class LightApp_DataObject;
 
-class SALOMEAPP_EXPORT SalomeApp_DataModel : public CAM_DataModel
+//   Class       : SalomeApp_DataModel
+///  Description : Base class of data model
+class SALOMEAPP_EXPORT SalomeApp_DataModel : public LightApp_DataModel
 {
   Q_OBJECT
 
 public:
-  static SUIT_DataObject*             BuildTree(const _PTR(SObject)& obj, 
-                                               SUIT_DataObject* parent, 
-                                               SalomeApp_Study* study );
-
-                                      SalomeApp_DataModel ( CAM_Module* theModule );
-  virtual                             ~SalomeApp_DataModel();
+  static SUIT_DataObject*             synchronize( const _PTR( SComponent )&, SalomeApp_Study* );
 
-  // These methods should be redefined in successors.
-  virtual bool                        open( const QString&, CAM_Study* );
-  virtual bool                        save();
-  virtual bool                        saveAs( const QString&, CAM_Study* );
-  virtual bool                        close();
+  SalomeApp_DataModel ( CAM_Module* theModule );
+  virtual ~SalomeApp_DataModel();
 
-  virtual void                        update( SalomeApp_DataObject* = 0, SalomeApp_Study* = 0 );
+  virtual bool                        open( const QString&, CAM_Study*, QStringList );
+  virtual bool                        create( CAM_Study* );
+  virtual void                        update( LightApp_DataObject* = 0, LightApp_Study* = 0 );
 
-  virtual bool                        isModified() const;
-  virtual bool                        isSaved()  const;
-
-signals:
-  void                                opened();
-  void                                saved();
-  void                                closed();
+  QString                             getRootEntry( SalomeApp_Study* ) const;
+  SalomeApp_Module*                   getModule() const;
 
 protected:
-  SalomeApp_Module*                   getModule() const;
   SalomeApp_Study*                    getStudy() const;
-
-  virtual void                        buildTree(const _PTR(SObject)&, SUIT_DataObject*, SalomeApp_Study* );
-
-  // BEGIN: methods to be used by CORBAless modules
-  std::vector<std::string>            GetListOfFiles () const;
-  void                                SetListOfFiles (const std::vector<std::string> theListOfFiles);
-
-  static std::string                  GetTmpDir (const char* theURL,
-                                                const bool  isMultiFile);
-
-  void                                RemoveTemporaryFiles (const bool isMultiFile) const;
-  // END: methods to be used by CORBAless modules
-
-private:
-  QString                             getRootEntry( SalomeApp_Study* ) const;
+  virtual void                        updateTree( const _PTR( SComponent )&, SalomeApp_Study* );
 };
 
+
 #endif