Salome HOME
Merge branch 'BR_LAND_COVER' of ssh://git.salome-platform.org/modules/hydro into...
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_PriorityTableModel.h
index bd113ac47616b680b30ce43581cb9d88d1de8c73..9133843769deec66b81c69263f3be4624c7aaed7 100644 (file)
@@ -1,12 +1,8 @@
-// Copyright (C) 2007-2013  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
-// version 2.1 of the License.
+// 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
@@ -57,30 +53,45 @@ public:
                                Qt::Orientation theOrientation,
                                int theRole = Qt::DisplayRole ) const;
 
-  virtual bool removeRows ( int theRow, int theCount, const QModelIndex & theParent = QModelIndex() );
+  virtual bool removeRows( int theRow, int theCount, const QModelIndex & theParent = QModelIndex() );
+  
+  bool removeRows( const QList<int> theRows );
+  bool removeAll();
 
-  void removeRows ( const QList<int> theRows );
+  void setObjects( const QList<Handle(HYDROData_Entity)>& theObjects );
 
   void setRules( const HYDROData_ListOfRules& theObjects );
   HYDROData_ListOfRules getRules() const;
 
-  void setObjects( const QList<Handle(HYDROData_Object)>& theObjects );
-
-  void createNewRule();
+  bool createNewRule();
+  bool canCreateNewRule() const;
 
+  void setColumnCount( int theColumnCount );
+  
 protected:
-  QStringList getAvailableObjects() const;
+  bool isUsed( const Handle(HYDROData_Entity)& theObj1, 
+               const Handle(HYDROData_Entity)& theObj2 ) const;
+
+  QStringList getAvailablePairs( const Handle(HYDROData_Entity)& theObject ) const;
+  QStringList getAvailableObjectNames() const;
 
   QString priorityToString( const int thePriority ) const;
   QString mergeTypeToString( const int theMergeType ) const;
 
+signals:
+  void showError( const QString& theMsg );
+
 private:
+  const ObjectKind getObjectsKind() const;
+
   friend class test_HYDROGUI_PriorityTableModel;
 
   HYDROGUI_Module* myModule;
 
   HYDROData_ListOfRules myRules;
-  QList<Handle(HYDROData_Object)> myObjects;
+  QList<Handle(HYDROData_Entity)> myObjects;
+
+  int myColumnCount;
 };
 
 #endif
\ No newline at end of file