// Acces a l`ihm de SALOME
// -----------------------
-#include "QAD_Desktop.h"
-
-
#include "SUPERVGUI_Def.h"
#include "SUPERVGUI_Service.h"
#include "SUPERVGUI_Main.h"
-//#include "SUPERVGUI_Information.h"
-#include "SALOMEGUI.h"
+#include "SalomeApp_Module.h"
+#include "SALOMEDSClient.hxx"
+
+class SUIT_Study;
// Definition de la classe principale du module de supervision
// -----------------------------------------------------------
-class SUPERVGUI: public SALOMEGUI {
+class SUPERVGUI: public SalomeApp_Module {
Q_OBJECT
public:
- SUPERVGUI( const QString&, QObject* = 0 );
+ SUPERVGUI();
virtual ~SUPERVGUI();
- QAD_Desktop* getDesktop();
+ static SUPERVGUI* Supervision();
+
+ virtual void initialize( CAM_Application* );
+ virtual QString engineIOR() const;
SUPERV_Engine getEngine();
- QAD_Study* getActiveStudy()
- { return study; };
+ SUIT_Study* getActiveStudy() { return study; }
SUPERVGUI_Service* getBrowser();
QCursor getCursor();
void suspendResumeDataflow();
void showComponents();
- void init(QAD_Desktop* parent);
SUPERVGUI_Main* getMain();
- bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
- bool SetSettings(QAD_Desktop* parent);
- void DefinePopup(QString & theContext,
- QString & theParent,
- QString & theObject ) ;
- bool CustomPopup(QAD_Desktop* parent,
- QPopupMenu* popup,
- const QString & theContext,
- const QString & theParent,
- const QString & theObject);
- bool ActiveStudyChanged( QAD_Desktop* parent );
- void SupportedViewType (int* buffer, int bufferSize);
-
- bool isContains(QAD_Study* theStudy, const QString theKey);
+ bool OnGUIEvent(int theCommandID);
+ //bool SetSettings();
+ //void DefinePopup(QString & theContext,
+ // QString & theParent,
+ // QString & theObject ) ;
+ //bool CustomPopup(QPopupMenu* popup,
+ // const QString & theContext,
+ // const QString & theParent,
+ // const QString & theObject);
+ bool ActiveStudyChanged();
+ //void SupportedViewType (int* buffer, int bufferSize);
+
+ bool isContains(SUIT_Study* theStudy, const QString theKey);
void registerGraph(QString theName, SUPERVGUI_Main* theGraph);
void unregisterGraph(SUPERVGUI_Main* theGraph);
- QAD_StudyFrame* createGraph();
+ SUIT_ViewWindow* createGraph();
/** Returns:
theIsOwner = true if Selected object belongs to Suipervision.
theIsDataflow = true if Selected object is Dataflow
*/
- void whatIsSelected(const Handle(SALOME_InteractiveObject)& theObj, bool& theIsOwner, bool& theIsDataflow);
+ void whatIsSelected(const _PTR(SObject)& theObj, bool& theIsOwner, bool& theIsDataflow);
+
+ /* asv : bug [VSR Bugs and Improvements in Supervisor] 1.8 : when exporting a file,
+ a backup copy of an existing file must be created (in case Export fails..)
+ This method creates a backup file and returns its name or QString::null if it fails
+ Function is static because it is called from
+ SUPERVGUI::exportDataflow() and SUPERVGUI_CanvasMacroNode::exportDataflow()
+ */
+ static QString createBackupFile( const QString& theOriginalFileName );
+
+ virtual void windows( QMap<int, int>& ) const;
+
+ QMap<QString, QString> getInterfaceNameMap() const;
+
+ /*!
+ * \brief The method nullify myInitalViewFrame variable
+ * to avoid using this view frame once more, it is using
+ * after add any node into first new dataflow in study.
+ */
+ void nullifyInitialVF() { if ( myInitialViewFrame ) myInitialViewFrame = 0; }
+
+ // mkr : IPAL10825
+ QColor getIVFBackgroundColor() { return myIVFBackgroundColor; }
+ void setIVFBackgroundColor( QColor theColor ) { if ( myInitialViewFrame ) myIVFBackgroundColor = theColor; }
signals:
void KillMainThread(bool theValue);
private slots:
- void setMain(QWidget* w);
+ void setMain(SUIT_ViewWindow* w);
void displayDataflow();
void renameDataflow();
void deleteObject();
- void onGraphClosed(QAD_ViewFrame* );
+ void onGraphClosed( SUIT_ViewWindow* );
+ void OnGUIEvent();
+
+ public slots:
+ virtual bool activateModule( SUIT_Study* );
+ virtual bool deactivateModule( SUIT_Study* );
+
+ protected:
+ virtual CAM_DataModel* createDataModel();
+ virtual LightApp_Selection* createSelection() const;
private:
void loadEngine(SALOME_NamingService* namingService);
+ // enumeration used in newDataflow() method
+ enum NEW_DF_MODE { Import, Modify, New };
+ // method called from importDataflow(), modifyDataflow(), newDataflow() with
+ // different modes. The behavior of the function is very similar in all 3 cases,
+ // but some differences still exist. These differences are implemented using NEW_DF_MODE param.
+ bool createDataflow( const NEW_DF_MODE f, bool theInitialDF = false );
+
+ void createSupervAction( const int id, const QString& po_id, const QString& icon_id = QString(""),
+ const int key = 0, const bool toggle = false );
+
+ void fillInterfaceNameMap();
+
static int factory;
- QAD_Desktop* desktop;
- QAD_Study* study;
+ SUIT_Study* study;
SUPERV_Engine engine;
SUPERVGUI_Service* browser;
//SUPERVGUI_Information* info;
SUPERVGUI_Main* main; // active main
QPtrList<SUPERVGUI_Main> myGraphList;
-};
+ QMap<QString, QString> myInterfaceNameMap;
-
-// Acces a l'instance unique de la classe du module de l'interface graphique de la supervision
-// -------------------------------------------------------------------------------------------
-extern SUPERVGUI Supervision;
+ bool myFirstActivation;
+ bool myAllGraphsClosed;
+ SUPERVGraph_ViewFrame* myInitialViewFrame;
+ QColor myIVFBackgroundColor; // mkr : IPAL10825
+};
#endif