Salome HOME
Bug fix: don't set "Loading" state for MacroNodes in InitialState() function (called...
[modules/superv.git] / src / SUPERVGUI / SUPERVGUI_BrowseNodeDlg.h
1 //  SUPERV SUPERVGUI : GUI for Supervisor component
2 //
3 //  Copyright (C) 2003  CEA/DEN, EDF R&D
4 //
5 //
6 //
7 //  File   : SUPERVGUI_BrowseNodeDlg.h
8 //  Author : Vitaly SMETANNIKOV
9 //  Module : SUPERV
10
11 #ifndef SUPERVGUI_BrowseNodeDlg_H
12 #define SUPERVGUI_BrowseNodeDlg_H
13
14 #include <qdialog.h>
15 #include "SUPERVGUI_Def.h"
16 #include "SALOME_Selection.h"
17
18
19 /** 
20  * Class for ports values management (for internal using)
21  */
22 class SUPERVGUI_PortField : public QObject {
23
24   Q_OBJECT
25
26 public:
27   SUPERVGUI_PortField( QWidget* theParent, SUPERV_Port thePort );
28   virtual ~SUPERVGUI_PortField() {};
29
30   bool eventFilter( QObject* o, QEvent* e );
31
32   bool isEditable () { return myIsEditable; }
33
34   void setData( const QString& data ) { myValue->setText( data ); myValue->home( false ); }
35   void updateGUI()   { myValue->setText( myPort->ToString() ); }
36
37   bool setNewValue();
38   
39 signals :
40   void activated();
41
42 public:
43   SUPERV_Port myPort;
44   QLabel*     myLabel;
45   QLineEdit*  myValue;
46   bool        myIsEditable;
47 };
48
49
50 /**
51  * Browse Node Dialog box
52  */
53 class SUPERVGUI_CanvasNode;
54
55 class SUPERVGUI_BrowseNodeDlg: public QDialog {
56   
57   Q_OBJECT
58
59 public:
60   SUPERVGUI_BrowseNodeDlg( SUPERVGUI_CanvasNode* theNode );
61   virtual ~SUPERVGUI_BrowseNodeDlg();
62
63   void setValues();
64
65 protected slots:
66   void accept();
67   void reject();
68   void onFieldActivated();
69   void onSelectionChanged();
70
71 protected:
72   void showEvent( QShowEvent* theEvent );
73
74 private:
75   void init();
76
77   SUPERVGUI_CanvasNode*         myNodeCanvas;
78   
79   bool                          myIsEditable;
80   QPtrList<SUPERVGUI_PortField> myPortsList;
81   SUPERVGUI_PortField*          myActiveField;
82   SALOME_Selection*             mySelection;
83 };
84
85 /**
86  * Get Value dialog box
87  */
88 class SUPERVGUI_CanvasPort;
89
90 class SUPERVGUI_GetValueDlg: public QDialog {
91   Q_OBJECT
92
93 public:
94   SUPERVGUI_GetValueDlg( SUPERVGUI_CanvasPort* thePort );
95   ~SUPERVGUI_GetValueDlg();
96
97 private slots:
98   void accept();
99   void reject();
100   void onSelectionChanged();
101   
102 private:
103   void init();
104
105   QPushButton*         myOKBtn;
106   QPushButton*         myCancelBtn;    
107   SUPERVGUI_PortField* myField;
108
109   SUPERVGUI_CanvasPort*      myPortCanvas;
110
111   SALOME_Selection*    mySelection;
112 };
113
114
115 /**
116  * Stream Port Parameter dialog box
117  */
118 class SUPERVGUI_CanvasStreamPortIn;
119 class SUPERVGUI_StreamInDlg: public QDialog
120 {
121   Q_OBJECT
122 public:
123   SUPERVGUI_StreamInDlg(SUPERVGUI_CanvasStreamPortIn* thePort);
124   virtual ~SUPERVGUI_StreamInDlg() {};
125
126 protected slots:
127   void accept();
128
129 private:
130   void init();
131   void setData(); 
132
133   SUPERVGUI_CanvasStreamPortIn* myPortCanvas;
134   QComboBox* mySchemaCombo;
135   QComboBox* myInterCombo;
136   QComboBox* myExterCombo;
137 };
138
139 class SUPERVGUI_CanvasStreamPortOut;
140 class SUPERVGUI_StreamOutDlg: public QDialog
141 {
142   Q_OBJECT
143 public:
144   SUPERVGUI_StreamOutDlg(SUPERVGUI_CanvasStreamPortOut* thePort);
145   virtual ~SUPERVGUI_StreamOutDlg() {};
146
147 protected slots:
148   void accept();
149
150 private:
151   void init();
152
153   SUPERVGUI_CanvasStreamPortOut* myPortCanvas;
154   QLineEdit* myValEdit;
155 };
156
157 #endif