Salome HOME
NRI : Update in order to search MODULES documentation and open active MODULE document...
[modules/kernel.git] / src / SALOMEGUI / SALOME_NumberFilter.cxx
1 using namespace std;
2 //  File      : SALOME_NumberFilter.cxx
3 //  Created   : Wed Feb 20 17:24:59 2002
4 //  Author    : Nicolas REJNERI
5 //  Project   : SALOME
6 //  Module    : SALOMEGUI
7 //  Copyright : Open CASCADE 2002
8 //  $Header$
9
10 #include "SALOME_NumberFilter.ixx"
11 #include "SALOME_Selection.h"
12 #include "SALOME_InteractiveObject.hxx"
13
14 #include "QAD_Application.h"
15 #include "QAD_Desktop.h"
16 #include "QAD_Study.h"
17
18 SALOME_NumberFilter::SALOME_NumberFilter(NumberFilter TheKind, Standard_Integer aValue):
19 myKind(TheKind),
20 myValue(aValue){}
21
22 Standard_Boolean SALOME_NumberFilter::IsOk(const Handle(SALOME_InteractiveObject)& anObj) const 
23 {
24   bool result = false;
25   QAD_Study* myActiveStudy = QAD_Application::getDesktop()->getActiveStudy();
26   SALOME_Selection* Sel = SALOME_Selection::Selection( myActiveStudy->getSelection() );
27   int nbSel = Sel->IObjectCount();
28
29   switch ( myKind )
30     {
31     case 0 : // INFERIOR
32       {
33         if ( (nbSel + 1 ) < myValue )
34           result = true;
35         else
36           result = false;
37         break;
38       }
39     case 1 : // INFERIOR_OR_EQUAL
40       {
41         if ( (nbSel + 1 ) <= myValue )
42           result = true;
43         else
44           result = false;
45         break;
46       }
47     case 2 : // SUPERIOR
48       {
49         result = true;
50         break;
51       }
52     case 3 : // SUPERIOR_OR_EQUAL
53       {
54         result = true;
55         break;
56       }
57     case 4 : // EQUAL
58       {
59         if ( (nbSel + 1 ) == myValue )
60           result = true;
61         else
62           result = false;
63         break;
64       }
65     }
66
67   return result;
68 }