Salome HOME
Add functionality for Table view based on QCanvas.
[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_Node;
54 class SUPERVGUI_CanvasNode;
55
56 class SUPERVGUI_BrowseNodeDlg: public QDialog {
57   
58   Q_OBJECT
59
60 public:
61   SUPERVGUI_BrowseNodeDlg( SUPERVGUI_Node* theNode );
62   SUPERVGUI_BrowseNodeDlg( SUPERVGUI_CanvasNode* theNode );
63   virtual ~SUPERVGUI_BrowseNodeDlg();
64
65   void setValues();
66
67 protected slots:
68   void accept();
69   void reject();
70   void onFieldActivated();
71   void onSelectionChanged();
72
73 protected:
74   void showEvent( QShowEvent* theEvent );
75
76 private:
77   void init();
78
79   SUPERVGUI_Node*               myNode;
80   SUPERVGUI_CanvasNode*         myNodeCanvas;
81   
82   bool                          myIsEditable;
83   QPtrList<SUPERVGUI_PortField> myPortsList;
84   SUPERVGUI_PortField*          myActiveField;
85   SALOME_Selection*             mySelection;
86 };
87
88 /**
89  * Get Value dialog box
90  */
91 class SUPERVGUI_PortIn;
92 class SUPERVGUI_PortInESNode;
93 class SUPERVGUI_CanvasPort;
94
95 class SUPERVGUI_GetValueDlg: public QDialog {
96   Q_OBJECT
97
98 public:
99 //  SUPERVGUI_GetValueDlg( SUPERVGUI_Port thePort );
100   SUPERVGUI_GetValueDlg( SUPERVGUI_PortIn* thePort );
101   SUPERVGUI_GetValueDlg( SUPERVGUI_PortInESNode* thePort );
102   SUPERVGUI_GetValueDlg( SUPERVGUI_CanvasPort* thePort );
103   ~SUPERVGUI_GetValueDlg();
104
105 private slots:
106   void accept();
107   void reject();
108   void onSelectionChanged();
109   
110 private:
111   void init();
112
113   QPushButton*         myOKBtn;
114   QPushButton*         myCancelBtn;    
115   SUPERVGUI_PortField* myField;
116
117   SUPERVGUI_PortIn*          myPort;
118   SUPERVGUI_PortInESNode*    myPortESNode;  //last correction
119   SUPERVGUI_CanvasPort*      myPortCanvas;
120
121   SALOME_Selection*    mySelection;
122 };
123
124
125 /**
126  * Stream Port Parameter dialog box
127  */
128 class SUPERVGUI_StreamPortIn;
129 class SUPERVGUI_CanvasStreamPortIn;
130 class SUPERVGUI_StreamInDlg: public QDialog
131 {
132   Q_OBJECT
133 public:
134   SUPERVGUI_StreamInDlg(SUPERVGUI_StreamPortIn* thePort);
135   SUPERVGUI_StreamInDlg(SUPERVGUI_CanvasStreamPortIn* thePort);
136   virtual ~SUPERVGUI_StreamInDlg() {};
137
138 protected slots:
139   void accept();
140
141 private:
142   void init();
143   void setData(); 
144
145   SUPERVGUI_StreamPortIn* myPort;
146   SUPERVGUI_CanvasStreamPortIn* myPortCanvas;
147   QComboBox* mySchemaCombo;
148   QComboBox* myInterCombo;
149   QComboBox* myExterCombo;
150 };
151
152 class SUPERVGUI_StreamPortOut;
153 class SUPERVGUI_CanvasStreamPortOut;
154 class SUPERVGUI_StreamOutDlg: public QDialog
155 {
156   Q_OBJECT
157 public:
158   SUPERVGUI_StreamOutDlg(SUPERVGUI_StreamPortOut* thePort);
159   SUPERVGUI_StreamOutDlg(SUPERVGUI_CanvasStreamPortOut* thePort);
160   virtual ~SUPERVGUI_StreamOutDlg() {};
161
162 protected slots:
163   void accept();
164
165 private:
166   void init();
167
168   SUPERVGUI_StreamPortOut* myPort;
169   SUPERVGUI_CanvasStreamPortOut* myPortCanvas;
170   QLineEdit* myValEdit;
171 };
172
173 #endif