Salome HOME
19563ce5a758c077b4895c822bbd7b61321a32cc
[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
17 /** 
18  * Class for ports values management (for internal using)
19  */
20 class SUPERVGUI_PortField : public QObject {
21
22   Q_OBJECT
23
24 public:
25   SUPERVGUI_PortField( QWidget* theParent, SUPERV_Port thePort );
26   virtual ~SUPERVGUI_PortField() {};
27
28   bool eventFilter( QObject* o, QEvent* e );
29
30   bool isEditable () { return myIsEditable; }
31
32   void setData( const QString& data ) { myValue->setText( data ); myValue->home( false ); }
33   void updateGUI()   { myValue->setText( myPort->ToString() ); }
34
35   bool setNewValue();
36   
37 signals :
38   void activated();
39
40 public:
41   SUPERV_Port myPort;
42   QLabel*     myLabel;
43   QLineEdit*  myValue;
44   bool        myIsEditable;
45 };
46
47
48 /**
49  * Browse Node Dialog box
50  */
51 class SUPERVGUI_CanvasNode;
52
53 class SUPERVGUI_BrowseNodeDlg: public QDialog {
54   
55   Q_OBJECT
56
57 public:
58   SUPERVGUI_BrowseNodeDlg( SUPERVGUI_CanvasNode* theNode );
59   virtual ~SUPERVGUI_BrowseNodeDlg();
60
61   void setValues();
62
63 protected slots:
64   void accept();
65   void reject();
66   void onFieldActivated();
67   void onSelectionChanged();
68
69 protected:
70   void showEvent( QShowEvent* theEvent );
71
72 private:
73   void init();
74
75   SUPERVGUI_CanvasNode*         myNodeCanvas;
76   
77   bool                          myIsEditable;
78   QPtrList<SUPERVGUI_PortField> myPortsList;
79   SUPERVGUI_PortField*          myActiveField;
80 };
81
82 /**
83  * Get Value dialog box
84  */
85 class SUPERVGUI_CanvasPort;
86
87 class SUPERVGUI_GetValueDlg: public QDialog {
88   Q_OBJECT
89
90 public:
91   SUPERVGUI_GetValueDlg( SUPERVGUI_CanvasPort* thePort );
92   ~SUPERVGUI_GetValueDlg();
93
94 private slots:
95   void accept();
96   void reject();
97   void onSelectionChanged();
98   
99 private:
100   void init();
101
102   QPushButton*         myOKBtn;
103   QPushButton*         myCancelBtn;    
104   SUPERVGUI_PortField* myField;
105
106   SUPERVGUI_CanvasPort*      myPortCanvas;
107
108 };
109
110
111 /**
112  * Stream Port Parameter dialog box
113  */
114 class SUPERVGUI_CanvasStreamPortIn;
115 class SUPERVGUI_StreamInDlg: public QDialog
116 {
117   Q_OBJECT
118 public:
119   SUPERVGUI_StreamInDlg(SUPERVGUI_CanvasStreamPortIn* thePort);
120   virtual ~SUPERVGUI_StreamInDlg() {};
121
122 protected slots:
123   void accept();
124
125 private:
126   void init();
127   void setData(); 
128
129   SUPERVGUI_CanvasStreamPortIn* myPortCanvas;
130   QComboBox* mySchemaCombo;
131   QComboBox* myInterCombo;
132   QComboBox* myExterCombo;
133 };
134
135 class SUPERVGUI_CanvasStreamPortOut;
136 class SUPERVGUI_StreamOutDlg: public QDialog
137 {
138   Q_OBJECT
139 public:
140   SUPERVGUI_StreamOutDlg(SUPERVGUI_CanvasStreamPortOut* thePort);
141   virtual ~SUPERVGUI_StreamOutDlg() {};
142
143 protected slots:
144   void accept();
145
146 private:
147   void init();
148
149   SUPERVGUI_CanvasStreamPortOut* myPortCanvas;
150   QLineEdit* myValEdit;
151 };
152
153 #endif