using namespace std;
#include "SUPERVGUI.h"
-
-#include "QAD_Resource.h"
-#include "QAD_FileDlg.h"
-#include "QAD_Application.h"
-#include "QAD_StudyFrame.h"
-#include "QAD_RightFrame.h"
-#include "QAD_LeftFrame.h"
-#include "QAD_ViewFrame.h"
-#include "QAD_ObjectBrowser.h"
-#include "QAD_ObjectBrowserItem.h"
-#include "QAD_MessageBox.h"
-
-#include "SALOME_Selection.h"
+#include "SUPERVGUI_DataModel.h"
+
+#include "SALOMEDSClient.hxx"
+#include <boost/shared_ptr.hpp>
+using namespace boost;
+
+#include "CAM_Application.h"
+#include "OB_Browser.h"
+#include "OB_ListItem.h"
+#include "SalomeApp_Application.h"
+#include "SalomeApp_ImportOperation.h"
+#include "SalomeApp_NameDlg.h"
+#include "SalomeApp_SelectionMgr.h"
+#include "SalomeApp_Study.h"
+#include "SUIT_Desktop.h"
+#include "SUIT_FileDlg.h"
+#include "SUIT_MessageBox.h"
+#include "SUIT_Operation.h"
+#include "SUIT_ResourceMgr.h"
+#include "SUIT_Session.h"
+#include "SUIT_Study.h"
+
+#include "SUPERVGraph_ViewManager.h"
+
+#include "SALOME_ListIO.hxx"
#include "SALOME_ListIteratorOfListIO.hxx"
#include "SALOME_InteractiveObject.hxx"
-#include "SALOMEGUI_ImportOperation.h"
-#include "SALOMEGUI_NameDlg.h"
#include "Utils_ORB_INIT.hxx"
#include CORBA_SERVER_HEADER(SALOMEDS_Attributes)
+#include <qmenubar.h>
int SUPERVGUI::factory = 0;
-SUPERVGUI Supervision("");
+extern "C" {
+ Standard_EXPORT CAM_Module* createModule() {
+ return new SUPERVGUI();
+ }
+}
-SUPERVGUI::SUPERVGUI(const QString& theName, QObject* theParent)
- : SALOMEGUI( theName, theParent ),
- desktop(0),
+
+SUPERVGUI::SUPERVGUI()
+ : SalomeApp_Module( "SUPERV" ),
study(0),
browser(0)
//info(0)
};
}
-void SUPERVGUI::init(QAD_Desktop* parent) {
- Trace("SUPERVGUI::init")
- if (desktop==0) {
- desktop = parent;
- study = desktop->getActiveStudy();
- SALOME_NamingService* namingService = desktop->getNameService();
- loadEngine(namingService);
- browser = new SUPERVGUI_Service(namingService);
- //info = new SUPERVGUI_Information();
- cursor = desktop->cursor();
- connect(desktop->getMainFrame(), SIGNAL(windowActivated(QWidget*)), this, SLOT(setMain(QWidget*)));
-
- int anId = 300;
- parent->menuBar()->changeItem(anId,parent->getComponentUserName("SUPERV"));
-
- };
+SUPERVGUI* SUPERVGUI::Supervision() {
+ CAM_Application* anApp = dynamic_cast<CAM_Application*>( SUIT_Session::session()->activeApplication() );
+ if ( anApp ) {
+ SUPERVGUI* aSupervModule = dynamic_cast<SUPERVGUI*>( anApp->activeModule() );
+ return aSupervModule;
+ }
+ return NULL;
+}
+
+void SUPERVGUI::createSupervAction( const int id, const QString& po_id, const QString& icon_id, const int key, const bool toggle )
+{
+ QIconSet icon;
+ QWidget* parent = application()->desktop();
+ SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
+ QPixmap pix;
+ if ( icon_id.length() )
+ pix = resMgr->loadPixmap( "SUPERV", tr( icon_id ) );
+ else
+ pix = resMgr->loadPixmap( "SUPERV", tr( QString( "ICO_" )+po_id ) );
+ if ( !pix.isNull() )
+ icon = QIconSet( pix );
+
+ QString tooltip = tr( QString( "TOP_" )+po_id ),
+ menu = tr( QString( "MEN_" )+po_id ),
+ status_bar = tr( QString( "STB_" )+po_id );
+
+ createAction( id, tooltip, icon, menu, status_bar, key, parent, toggle, this, SLOT( OnGUIEvent() ) );
}
+void SUPERVGUI::initialize( CAM_Application* app )
+{
+ SalomeApp_Module::initialize( app );
+
+ SALOME_NamingService* namingService = (( SalomeApp_Application* )application())->namingService();
+ loadEngine(namingService);
+
+ browser = new SUPERVGUI_Service(namingService);
+ //info = new SUPERVGUI_Information();
+ cursor = application()->desktop()->cursor();
+
+ // ----- create actions --------------
+ createSupervAction( 301, "IMPORT" );
+ createSupervAction( 302, "EXPORT" );
+
+ createSupervAction( 303, "NEW" );
+ createSupervAction( 304, "MODIFY" );
+
+ createSupervAction( 305, "RELOAD" );
+ createSupervAction( 306, "RUN" );
+ createSupervAction( 307, "KILL" );
+ createSupervAction( 308, "SUSPEND/RESUME" );
+ createSupervAction( 309, "ADDNODE" );
+ createSupervAction( 310, "STEPBYSTEP" );
+
+ // ----- create menu -----------------
+ int fileId = createMenu( tr( "MEN_FILE" ), -1, -1 );
+ createMenu( 301, fileId, 10 );
+ createMenu( 302, fileId, 10 );
+ createMenu( separator(), fileId, 10 );
+
+ int editId = createMenu( tr( "MEN_EDIT" ), -1, -1 );
+ createMenu( separator(), fileId, 7 );
+ createMenu( 303, editId, -1 );
+ createMenu( 304, editId, -1 );
+
+ int supervId = createMenu( tr( "MEN_SUPERV" ), -1, -1, 10/*, 300*/ );
+ createMenu( 305, supervId, -1 );
+ createMenu( 309, supervId, -1 );
+ createMenu( separator(), fileId, 3 );
+ createMenu( 306, supervId, -1 );
+ createMenu( 310, supervId, -1 );
+ createMenu( 307, supervId, -1 );
+ createMenu( 308, supervId, -1 );
+
+ // ----- create toolbars -------------
+ int supervisorId = createTool( tr( "TOOL_SUPERVISOR" ) );
+ createTool( 301, supervisorId );
+ createTool( 302, supervisorId );
+ createTool( 303, supervisorId );
+ createTool( 304, supervisorId );
+ createTool( 305, supervisorId );
+ createTool( 309, supervisorId );
+
+ int executionId = createTool( tr( "TOOL_EXECUTION" ) );
+ createTool( 306, executionId );
+ createTool( 310, executionId );
+ createTool( 307, executionId );
+ createTool( 308, executionId );
+
+}
+
+ void SUPERVGUI::activateModule( SUIT_Study* theStudy )
+{
+ SalomeApp_Module::activateModule( theStudy );
+
+ //---------------------------------------
+ setMenuShown( true );
+ setToolShown( true );
+
+ study = application()->activeStudy();
+
+ connect( application()->desktop(), SIGNAL( windowActivated( SUIT_ViewWindow* ) ),
+ this, SLOT( setMain( SUIT_ViewWindow* ) ) );
-QAD_StudyFrame* SUPERVGUI::createGraph() {
- QAD_StudyFrame* aStudyFrame = study->newWindow3d(study->getNextStudyFrameName(),
- VIEW_GRAPHSUPERV, false);
- if (aStudyFrame) {
- connect(study,
- SIGNAL(supervStudyFrameClosing(QAD_ViewFrame*)),
- &Supervision,
- SLOT(onGraphClosed(QAD_ViewFrame*)));
+}
+
+QString SUPERVGUI::engineIOR() const
+{
+ if ( !CORBA::is_nil( engine ) )
+ return QString( getApp()->orb()->object_to_string( engine));
+ return QString( "" );
+}
+
+void SUPERVGUI::deactivateModule( SUIT_Study* theStudy )
+{
+ setMenuShown( false );
+ setToolShown( false );
+
+ disconnect( application()->desktop(), SIGNAL( windowActivated( SUIT_ViewWindow* ) ),
+ this, SLOT( setMain( SUIT_ViewWindow* ) ) );
+ //---------------------------------------
+
+ SalomeApp_Module::deactivateModule( theStudy );
+}
+
+CAM_DataModel* SUPERVGUI::createDataModel()
+{
+ return new SUPERVGUI_DataModel( this );
+}
+
+SUIT_ViewWindow* SUPERVGUI::createGraph() {
+ SUPERVGraph_ViewManager* aVM = new SUPERVGraph_ViewManager( study, application()->desktop(), new SUPERVGraph_Viewer() );
+ SUIT_ViewWindow* aVW = aVM->createViewWindow();
+ if ( aVW ) {
+ connect( aVM,
+ SIGNAL( deleteView( SUIT_ViewWindow* ) ),
+ this,
+ SLOT( onGraphClosed( SUIT_ViewWindow* ) ) );
}
- return aStudyFrame;
+ return aVW;
}
SALOME_LifeCycleCORBA LCC(namingService);
Engines::Component_var objComponent = LCC.FindOrLoad_Component("SuperVisionContainer", "SUPERV");
if (CORBA::is_nil(objComponent)) {
- QMessageBox::warning(QAD_Application::getDesktop(), tr("ERROR"), tr("MSG_CANT_LOAD_SUPERV"));
+ QMessageBox::warning(application()->desktop(), tr("ERROR"), tr("MSG_CANT_LOAD_SUPERV"));
return;
};
SUPERV::SuperG_var aSuperVisionComponent;
aSuperVisionComponent = SUPERV::SuperG::_narrow(objComponent);
if (CORBA::is_nil(aSuperVisionComponent)) {
- QMessageBox::warning(QAD_Application::getDesktop(), tr("ERROR"), tr("MSG_CANT_NARROW_SUPERV"));
+ QMessageBox::warning(application()->desktop(), tr("ERROR"), tr("MSG_CANT_NARROW_SUPERV"));
return;
};
// engine = new SUPERV::SuperG_var;
engine = aSuperVisionComponent;
}
+
/*
bool SUPERVGUI::information(SUPERV_CNode node, bool isReadOnly) {
Trace("SUPERVGUI::information")
*/
void SUPERVGUI::putInfo(const char* mess) {
Trace("SUPERVGUI::putInfo")
- desktop->putInfo(mess);
-}
-
-QAD_Desktop* SUPERVGUI::getDesktop() {
- Trace("SUPERVGUI::getDesktop")
- return(desktop);
+ application()->putInfo(mess);
}
SUPERV_Engine SUPERVGUI::getEngine() {
}
-bool SUPERVGUI::isContains(QAD_Study* theStudy, const QString theKey) {
+bool SUPERVGUI::isContains(SUIT_Study* theStudy, const QString theKey) {
SUPERVGUI_Main* aMain;
for (aMain = myGraphList.first(); aMain; aMain = myGraphList.next()) {
if ((aMain->getStudy() == theStudy) && (aMain->getHashCode() == theKey))
}
-void SUPERVGUI::onGraphClosed(QAD_ViewFrame* theViewFrame) {
- if(SUPERVGraph_ViewFrame* supervFrame = dynamic_cast<SUPERVGraph_ViewFrame*>(theViewFrame)){
- disconnect(study, 0 , this, 0);
+void SUPERVGUI::onGraphClosed(SUIT_ViewWindow* theViewWindow) {
+ if( SUPERVGraph_ViewFrame* supervFrame = dynamic_cast<SUPERVGraph_ViewFrame*>(theViewWindow) ) {
+ disconnect(supervFrame->getViewManager(), 0 , this, 0);
SUPERVGraph_View* view = supervFrame->getViewWidget();
SUPERVGUI_Main* aGraph = dynamic_cast<SUPERVGUI_Main*>(view);
- if (aGraph) {
+ if ( aGraph ) {
unregisterGraph(aGraph);
SUPERV_Graph aDataFlow = aGraph->getDataflow();
if ( !SUPERV_isNull( aDataFlow ) ) {
if ( aDataFlow->IsExecuting() ) {
- const int aMsgResult = QMessageBox::warning(QAD_Application::getDesktop(),
+ const int aMsgResult = QMessageBox::warning(application()->desktop(),
tr("WARNING"),
tr("MSG_DF_RUNNING"),
tr("MSG_DF_EXECUTION"),
}
}
-void SUPERVGUI::setMain(QWidget* w) {
+void SUPERVGUI::setMain( SUIT_ViewWindow* w) {
main = 0;
- QAD_StudyFrame* aStudyFrame = dynamic_cast<QAD_StudyFrame*>(w);
- if (!aStudyFrame) return;
+ if ( !w ) return;
- study = aStudyFrame->getStudy();
- if (!study) return;
+ study = w->getViewManager()->study();
+ if (!study) {
+ cout<<" setMain(...) : NULL study!";
+ return;
+ }
- QAD_ViewFrame* viewFrame = aStudyFrame->getRightFrame()->getViewFrame();
- if(SUPERVGraph_ViewFrame* supervFrame = dynamic_cast<SUPERVGraph_ViewFrame*>(viewFrame)){
+ if(SUPERVGraph_ViewFrame* supervFrame = dynamic_cast<SUPERVGraph_ViewFrame*>(w)){
SUPERVGraph_View* view = supervFrame->getViewWidget();
if (view) {
main = dynamic_cast<SUPERVGUI_Main*>(view);
- connect(&Supervision, SIGNAL(KillMainThread(bool)), main->getMyThread(), SLOT(KillThread(bool)));
+ connect(this, SIGNAL(KillMainThread(bool)), main->getMyThread(), SLOT(KillThread(bool)));
}
}
Trace("SUPERVGUI::setMain - main: "<<main);
void SUPERVGUI::displayDataflow() {
Trace("SUPERVGUI::displayDataflow");
- QAD_ObjectBrowser* aBrowser = ((QAD_StudyFrame*)(desktop->getMainFrame()->activeWindow()))->getLeftFrame()->getObjectBrowser();
+ OB_Browser* aBrowser = (( SalomeApp_Application* )application())->objectBrowser();
SUPERV_Graph aDataFlow;
QString aIORName;
- QAD_ObjectBrowserItem* item = (QAD_ObjectBrowserItem*)(aBrowser->getListView()->currentItem());
- SALOMEDS::SObject_var aObj = desktop->getActiveStudy()->getStudyDocument()->FindObjectID(item->getEntry().latin1());
- SALOMEDS::GenericAttribute_var anAttr;
+ OB_ListItem* item = (OB_ListItem*)(aBrowser->getListView()->currentItem());
+ _PTR(SObject) aObj
+ ( (( SalomeApp_Study* )(application()->activeStudy()))->studyDS()->FindObjectID(item->text(2).latin1()) );
+ _PTR(GenericAttribute) anAttr;
if (aObj->FindAttribute(anAttr, "AttributeIOR")) {
- SALOMEDS::AttributeIOR_var anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
- Standard_CString ior = anIOR->Value();
- aIORName = ior;
+ _PTR(AttributeIOR) anIOR ( anAttr );
+ aIORName = QString(anIOR->Value().c_str());
if (isContains(study, aIORName)) {
- if (QMessageBox::warning(QAD_Application::getDesktop(), tr("WARNING"),
+ if (QMessageBox::warning(application()->desktop(), tr("WARNING"),
tr("MSG_GRAPH_DISPLAYED").arg(""),
QMessageBox::Yes, QMessageBox::No) == QMessageBox::No)
return;
}
- //aDataFlow = engine->getStreamGraph(ior);
- aDataFlow = engine->getGraph(ior);
+ //aDataFlow = engine->getStreamGraph(anIOR->Value().c_str());
+ aDataFlow = engine->getGraph(anIOR->Value().c_str());
if (SUPERV_isNull(aDataFlow)) {
QMessageBox::warning(0, tr("ERROR"), tr("MSG_ACCESS_BAD_IOR"));
return;
}
*/
}
- QAD_StudyFrame* aStudyFrame = createGraph();
- SUPERVGraph_ViewFrame* aViewFrame = dynamic_cast<SUPERVGraph_ViewFrame*>
- (aStudyFrame->getRightFrame()->getViewFrame());
- if(aViewFrame) {
- main = new SUPERVGUI_Main(aViewFrame, desktop, aDataFlow);
- registerGraph(aIORName, main);
- study->showFrame(aStudyFrame);
+ SUPERVGraph_ViewFrame* aViewFrame = dynamic_cast<SUPERVGraph_ViewFrame*>( createGraph() );
+ if( aViewFrame ) {
+ main = new SUPERVGUI_Main( aViewFrame, application()->desktop(), aDataFlow );
+ registerGraph( aIORName, main );
+ aViewFrame->show();
}
}
void SUPERVGUI::renameDataflow() {
- SALOME_Selection* Sel = SALOME_Selection::Selection( study->getSelection() );
- SALOME_ListIteratorOfListIO It( Sel->StoredIObjects() );
+ SALOME_ListIO aList;
+ aList.Clear();
+ (( SalomeApp_Application* )application())->selectionMgr()->selectedObjects( aList );
+
+ SALOME_ListIteratorOfListIO It( aList );
for ( ; It.More(); It.Next() ) {
Handle(SALOME_InteractiveObject) IObject = It.Value();
- SALOMEDS::Study_var aStudy = study->getStudyDocument();
- SALOMEDS::SObject_var obj = aStudy->FindObjectID( IObject->getEntry() );
- SALOMEDS::GenericAttribute_var anAttr;
- SALOMEDS::AttributeName_var aName;
- if ( !obj->_is_nil() ) {
- if (obj->FindAttribute(anAttr, "AttributeName")) {
- aName = SALOMEDS::AttributeName::_narrow(anAttr);
- QString nm = QString( aName->Value() );
- nm = SALOMEGUI_NameDlg::getName( QAD_Application::getDesktop(), nm );
+ _PTR(Study) aStudy = (( SalomeApp_Study* )study)->studyDS();
+ _PTR(SObject) obj ( aStudy->FindObjectID( IObject->getEntry() ) );
+ _PTR(GenericAttribute) anAttr;
+ if ( obj ) {
+ if ( obj->FindAttribute(anAttr, "AttributeName") ) {
+ _PTR(AttributeName) aName ( anAttr );
+ QString nm = QString( aName->Value().c_str() );
+ nm = SalomeApp_NameDlg::getName( application()->desktop(), nm );
if ( !nm.isEmpty() ) {
// sak : 24.11.04 : fix for PAL6898 : if rename fails (study locked),
// a message box is displayed, and cursor is "wait cursor". We think that "wait cursor"
// is not neccessary here, because the rename operation is fast.
//QApplication::setOverrideCursor( Qt::waitCursor );
- study->renameIObject( IObject, nm );
+ //study->renameIObject( IObject, nm );
+
+ //--->
+ aName->SetValue( nm.latin1() );
+ //rename Interactive object
+ IObject->setName( ( char* )nm.latin1() );
+ //<---
+
+ updateObjBrowser();
//QApplication::restoreOverrideCursor();
}
}
void SUPERVGUI::exportDataflow() {
Trace("SUPERVGUI::exportDataflow")
if ( main==0 ) {
- QMessageBox::warning(QAD_Application::getDesktop(), tr("WARNING"), tr("MSG_NOWINDOW_TO_EXPORT"));
+ QMessageBox::warning(application()->desktop(), tr("WARNING"), tr("MSG_NOWINDOW_TO_EXPORT"));
}
else if ( SUPERV_isNull( main->getDataflow() ) ) { // should not normally happen..
- QMessageBox::warning(QAD_Application::getDesktop(), tr("WARNING"), tr("MSG_NOWINDOW_TO_EXPORT"));
+ QMessageBox::warning(application()->desktop(), tr("WARNING"), tr("MSG_NOWINDOW_TO_EXPORT"));
}
else {
- QString f = QAD_FileDlg::getFileName(QAD_Application::getDesktop(),
- "",
- "*.xml",
- tr("TTL_EXPORT_DATAFLOW"),
- false);
+ QString f = SUIT_FileDlg::getFileName(application()->desktop(),
+ "",
+ "*.xml",
+ tr("TTL_EXPORT_DATAFLOW"),
+ false);
if ( !f.isEmpty() ) {
// asv : bug [VSR Bugs and Improvements in Supervisor] 1.8 : when exporting a file,
QFile::remove( aBackupFile );
}
else {
- QMessageBox::warning(QAD_Application::getDesktop(), tr("ERROR"), tr("MSG_BAD_WRITING").arg(aBackupFile));
+ QMessageBox::warning(application()->desktop(), tr("ERROR"), tr("MSG_BAD_WRITING").arg(aBackupFile));
}
}
}
return theBackupFileName;
}
+void SUPERVGUI::windows( QMap<int, int>& mappa ) const
+{
+ mappa.insert( SalomeApp_Application::WT_ObjectBrowser, Qt::DockLeft );
+ mappa.insert( SalomeApp_Application::WT_PyConsole, Qt::DockBottom );
+ mappa.insert( SalomeApp_Application::WT_LogWindow, Qt::DockBottom );
+}
+
void SUPERVGUI::newDataflow() {
createDataflow( New );
}
Trace("SUPERVGUI::createDataflow, mode = " << mode );
// asv : 27.01.05 : fix for PAL7823 : if the study is locked - warn the user and return.
- SALOMEDS::Study_var aStudy = study->getStudyDocument();
+ _PTR(Study) aStudy = (( SalomeApp_Study* )study)->studyDS();
if ( aStudy->GetProperties()->IsLocked() ) {
- QMessageBox::warning(QAD_Application::getDesktop(), tr("WRN_WARNING"), tr("WRN_STUDY_LOCKED"));
+ QMessageBox::warning(application()->desktop(), tr("WRN_WARNING"), tr("WRN_STUDY_LOCKED"));
return false;
}
QString f; // file name. declared here because may be used below in error msg construction..
if ( mode == Import || mode == Modify ) { // 0. import or modify existing dataflow - select XML file
QString title = QString( "TLT_CREATE_DF_%1" ).arg( mode );
- f = QAD_FileDlg::getFileName( QAD_Application::getDesktop(), "", "*.xml", tr( title ), true );
+ f = SUIT_FileDlg::getFileName( application()->desktop(), "", "*.xml", tr( title ), true );
if ( f.isEmpty() ) // pressed Cancel in file select dialog
return false;
// check if study already contains a graph imported from the same file
if ( isContains( study, f ) ) {
- if ( QMessageBox::warning( QAD_Application::getDesktop(), tr("WARNING"), tr("MSG_GRAPH_DISPLAYED").arg(f),
+ if ( QMessageBox::warning( application()->desktop(), tr("WARNING"), tr("MSG_GRAPH_DISPLAYED").arg(f),
QMessageBox::Yes, QMessageBox::No) == QMessageBox::No )
return false;
}
if ( CORBA::is_nil( aGraph ) ) {
QString msg( mode == New ? tr("MSG_CANT_CREATE_DF") : tr("MSG_BAD_FILE").arg(f) );
- QAD_MessageBox::warn1( QAD_Application::getDesktop(), tr("ERROR"), tr(msg), tr("BUT_OK") );
+ SUIT_MessageBox::warn1( application()->desktop(), tr("ERROR"), tr(msg), tr("BUT_OK") );
return false;
}
// 2. create a ViewFrame object
- QAD_StudyFrame* aStudyFrame = createGraph();
- SUPERVGraph_ViewFrame* aViewFrame = dynamic_cast<SUPERVGraph_ViewFrame*>
- (aStudyFrame->getRightFrame()->getViewFrame());
+ SUPERVGraph_ViewFrame* aViewFrame = dynamic_cast<SUPERVGraph_ViewFrame*>( createGraph() );
if ( aViewFrame ) {
// 3. bind Graph and ViewFrame == create SUPERVGUI_Main object
- main = new SUPERVGUI_Main(aViewFrame, desktop, aGraph);
+ main = new SUPERVGUI_Main( aViewFrame, application()->desktop(), aGraph );
if ( mode == New )
main->addNode();
else
registerGraph( f, main );
- study->showFrame(aStudyFrame);
+ aViewFrame->show();
}
return true;
if ( main )
main->sync();
else
- QMessageBox::warning(QAD_Application::getDesktop(), tr("WARNING"), tr("MSG_NOWINDOW_TO_RELOAD"));
+ QMessageBox::warning(application()->desktop(), tr("WARNING"), tr("MSG_NOWINDOW_TO_RELOAD"));
}
void SUPERVGUI::runDataflow() {
if ( main )
main->run( /*andSuspend=*/false );
else
- QMessageBox::warning(QAD_Application::getDesktop(), tr("WARNING"), tr("MSG_NOWINDOW_TO_RUN"));
+ QMessageBox::warning(application()->desktop(), tr("WARNING"), tr("MSG_NOWINDOW_TO_RUN"));
}
void SUPERVGUI::stepByStep() {
if ( main )
main->run( /*andSuspend=*/true );
else
- QMessageBox::warning(QAD_Application::getDesktop(), tr("WARNING"), tr("MSG_NOWINDOW_TO_RUN"));
+ QMessageBox::warning(application()->desktop(), tr("WARNING"), tr("MSG_NOWINDOW_TO_RUN"));
}
void SUPERVGUI::killDataflow() {
if ( main )
main->kill();
else
- QMessageBox::warning(QAD_Application::getDesktop(), tr("WARNING"), tr("MSG_NOWINDOW_TO_KILL"));
+ QMessageBox::warning(application()->desktop(), tr("WARNING"), tr("MSG_NOWINDOW_TO_KILL"));
}
void SUPERVGUI::suspendResumeDataflow() {
if ( main )
main->suspendResume();
else
- QMessageBox::warning(QAD_Application::getDesktop(), tr("WARNING"), tr("MSG_NOWINDOW_TO_SUSPEND"));
+ QMessageBox::warning(application()->desktop(), tr("WARNING"), tr("MSG_NOWINDOW_TO_SUSPEND"));
}
void SUPERVGUI::showComponents() {
if ( main->isEditable() )
main->addNode();
else
- QMessageBox::warning(QAD_Application::getDesktop(), tr("WARNING"), tr("MSG_NOTEDITABLE"));
+ QMessageBox::warning(application()->desktop(), tr("WARNING"), tr("MSG_NOTEDITABLE"));
}
else
- QMessageBox::warning(QAD_Application::getDesktop(), tr("WARNING"), tr("MSG_NOWINDOW_TO_ADD"));
+ QMessageBox::warning(application()->desktop(), tr("WARNING"), tr("MSG_NOWINDOW_TO_ADD"));
}
-bool SUPERVGUI::CustomPopup(QAD_Desktop* parent, QPopupMenu* popup, const QString& theContext, const QString& theParent, const QString& theObject) {
+/*bool SUPERVGUI::CustomPopup(QPopupMenu* popup, const QString& theContext, const QString& theParent, const QString& theObject) {
Trace("SUPERVGUI::customPopup");
- Supervision.init(parent);
+ Supervision.init();
if(popup->count() > 3) {
// Temporary code: is to be deleted soon
popup->removeItem(QAD_Display_Popup_ID);
if (id < 0 && id != -1) popup->removeItem(id); // separator
// Temporary code end
}
- SALOME_Selection* Sel = SALOME_Selection::Selection(study->getSelection() );
- if ((Sel==NULL) || (Sel->IObjectCount() == 0)) return false;
-
- if (Sel->IObjectCount() == 1) {
- Handle(SALOME_InteractiveObject) anIObj = Sel->firstIObject();
-
- // insert SUPERV-specific popup items here
+
+ SALOME_ListIO aList;
+ aList.Clear();
+ (( SalomeApp_Application* )application())->selectionMgr()->selectedObjects( aList );
+ if ( aList.Extent() == 0 ) return false;
+
+ if ( aList.Extent() == 1 ) {
+ Handle(SALOME_InteractiveObject) anIObj = aList.First();
+
+ // insert SUPERV-specific popup items here
+
+ bool isDataflow, ownObj;
+ whatIsSelected(anIObj, ownObj, isDataflow);
+
+ if (isDataflow) {
+ popup->insertItem(tr( "MSG_RENAME" ), this, SLOT(renameDataflow()));
+ popup->insertItem("Display", this, SLOT(displayDataflow()));
+ popup->insertSeparator();
+ }
+ if (ownObj)
+ popup->insertItem(tr("MSG_DELETE"), this, SLOT(deleteObject()));
+ }
- bool isDataflow, ownObj;
- whatIsSelected(anIObj, ownObj, isDataflow);
+ if ( aList.Extent() > 1 ) {
+ int aIObjCount = 0;
+ SALOME_ListIteratorOfListIO It_forCheckOwner( aList );
+ for(;It_forCheckOwner.More();It_forCheckOwner.Next()) {
+ Handle(SALOME_InteractiveObject) anIObj = It_forCheckOwner.Value();
+ bool aIsOwner, aIsDataflow;
+ whatIsSelected(anIObj, aIsOwner, aIsDataflow);
- if (isDataflow) {
- popup->insertItem(tr( "MSG_RENAME" ), this, SLOT(renameDataflow()));
- popup->insertItem("Display", this, SLOT(displayDataflow()));
- popup->insertSeparator();
- }
- if (ownObj)
- popup->insertItem(tr("MSG_DELETE"), this, SLOT(deleteObject()));
- }
- if (Sel->IObjectCount() > 1) {
- int aIObjCount = 0;
- SALOME_ListIteratorOfListIO It_forCheckOwner(Sel->StoredIObjects());
- for(;It_forCheckOwner.More();It_forCheckOwner.Next()) {
- Handle(SALOME_InteractiveObject) anIObj = It_forCheckOwner.Value();
- bool aIsOwner, aIsDataflow;
- whatIsSelected(anIObj, aIsOwner, aIsDataflow);
-
- if (aIsOwner) aIObjCount++;
- }
- if (aIObjCount == Sel->IObjectCount()) //all selected objects belong to Supervision
- popup->insertItem(tr("MSG_DELETE"), this, SLOT(deleteObject()));
+ if (aIsOwner) aIObjCount++;
}
+ if ( aIObjCount == aList.Extent() ) //all selected objects belong to Supervision
+ popup->insertItem(tr("MSG_DELETE"), this, SLOT(deleteObject()));
+ }
+
return(true);
-}
+ }*/
if (theObj.IsNull()) return;
- SALOMEDS::Study_var aStudy = study->getStudyDocument();
- SALOMEDS::SObject_var obj = aStudy->FindObjectID( theObj->getEntry() );
-
- if ( !obj->_is_nil() ) {
- SALOMEDS::SComponent_var comp = obj->GetFatherComponent();
- if ( !comp->_is_nil() ) {
- SALOMEDS::GenericAttribute_var anAttr;
- SALOMEDS::AttributeName_var aName;
+ _PTR(Study) aStudy = (( SalomeApp_Study* )study)->studyDS();
+ _PTR(SObject) obj ( aStudy->FindObjectID( theObj->getEntry() ) );
+
+ if ( obj ) {
+ _PTR(SComponent) comp ( obj->GetFatherComponent() );
+ if ( comp ) {
+ _PTR(GenericAttribute) anAttr;
if (comp->FindAttribute(anAttr, "AttributeName")) {
- aName = SALOMEDS::AttributeName::_narrow(anAttr);
- QString compName(aName->Value());
- //if (compName.compare(STUDY_SUPERVISION) == 0) {
- if (compName.compare(QAD_Application::getDesktop()->getComponentUserName("SUPERV")) == 0) {
- SALOMEDS::GenericAttribute_var anAttr;
+ _PTR(AttributeName) aName ( anAttr );
+ QString compName(aName->Value().c_str());
+ if ( compName.compare( (( CAM_Application* )application())->moduleTitle( moduleName() ) ) == 0 ) {
+ _PTR(GenericAttribute) anAttr;
if (obj->FindAttribute(anAttr, "AttributeIOR")) {
- SALOMEDS::AttributeIOR_var anIOR = SALOMEDS::AttributeIOR::_narrow(anAttr);
- //SUPERV_Graph aDataFlow = engine->getStreamGraph(anIOR->Value());
- SUPERV_Graph aDataFlow = engine->getGraph(anIOR->Value());
+ _PTR(AttributeIOR) anIOR ( anAttr );
+ SUPERV_Graph aDataFlow = engine->getGraph(anIOR->Value().c_str());
if (!SUPERV_isNull(aDataFlow)) {
if (aDataFlow->IsStreamGraph()) {
if (!SUPERV_isNull(aDataFlow->ToStreamGraph()))
theIsDataflow = true;
}
}
- CORBA::String_var anObjectID = obj->GetID();
- CORBA::String_var aComponentID = comp->GetID();
+ CORBA::String_var anObjectID = obj->GetID().c_str();
+ CORBA::String_var aComponentID = comp->GetID().c_str();
if (strcmp(anObjectID, aComponentID)) theIsOwner = true;
}
}
}
void SUPERVGUI::deleteObject() {
- SALOME_Selection* Sel = SALOME_Selection::Selection(study->getSelection() );
- if ((Sel==NULL) || (Sel->IObjectCount() == 0)) return;
+ SALOME_ListIO aList;
+ aList.Clear();
+ (( SalomeApp_Application* )application())->selectionMgr()->selectedObjects( aList );
+ if ( aList.Extent() == 0 ) return;
// sak : 24.11.04 : fix for PAL6899 : if the study is locked - warn the user and return.
- SALOMEDS::Study_var aStudy = study->getStudyDocument();
+ _PTR(Study) aStudy = (( SalomeApp_Study* )study)->studyDS();
if ( aStudy->GetProperties()->IsLocked() ) {
- QMessageBox::warning(QAD_Application::getDesktop(), tr("WRN_WARNING"), tr("WRN_STUDY_LOCKED"));
+ QMessageBox::warning(application()->desktop(), tr("WRN_WARNING"), tr("WRN_STUDY_LOCKED"));
return;
}
// sak : 24.11.04 : fix for PAL6901 : Incorrect deletion of the objects : pressing ESC button
// emitted "YES" button click, now it is corrected, and treated as "NO" button click.
- if (QMessageBox::warning(QAD_Application::getDesktop(),
+ if (QMessageBox::warning(application()->desktop(),
tr("WARNING"),
tr("MSG_ASK_DELETE"),
QMessageBox::No, QMessageBox::Yes) != QMessageBox::Yes)
return;
- SALOME_ListIteratorOfListIO It(Sel->StoredIObjects());
+ SALOME_ListIteratorOfListIO It( aList );
for(;It.More();It.Next()) {
Handle(SALOME_InteractiveObject) anIObj = It.Value();
bool aIsOwner, aIsDataflow;
whatIsSelected(anIObj, aIsOwner, aIsDataflow);
- SALOMEDS::SObject_var aObj = aStudy->FindObjectID( anIObj->getEntry() );
- if (!aObj->_is_nil()) {
- QAD_Operation* op = new SALOMEGUI_ImportOperation( study );
- SALOMEDS::StudyBuilder_var aBuilder = aStudy->NewBuilder();
+ _PTR(SObject) aObj ( aStudy->FindObjectID( anIObj->getEntry() ) );
+ if ( aObj ) {
+ SUIT_Operation* op = new SalomeApp_ImportOperation( application() );
+ _PTR(StudyBuilder) aBuilder ( aStudy->NewBuilder() );
op->start();
- aBuilder->RemoveObjectWithChildren(aObj);
- op->finish();
+ aBuilder->RemoveObjectWithChildren( aObj );
+ op->commit();
}
}
- Sel->ClearIObjects() ;
+ (( SalomeApp_Application* )application())->selectionMgr()->clearSelected();
}
-bool SUPERVGUI::OnGUIEvent(int command, QAD_Desktop* parent) {
- Supervision.init(parent);
+void SUPERVGUI::OnGUIEvent()
+{
+ const QObject* obj = sender();
+ if ( !obj || !obj->inherits( "QAction" ) )
+ return;
+ int id = actionId((QAction*)obj);
+ if ( id != -1 )
+ OnGUIEvent( id );
+}
+
+bool SUPERVGUI::OnGUIEvent(int command) {
switch (command) {
case 301:
- Supervision.importDataflow();
+ importDataflow();
return(false);
case 302:
- Supervision.exportDataflow();
+ exportDataflow();
return(false);
case 303:
- Supervision.newDataflow();
+ newDataflow();
return(false);
case 304:
- Supervision.modifyDataflow();
+ modifyDataflow();
return(false);
case 305:
- Supervision.reloadDataflow();
+ reloadDataflow();
return(false);
case 306:
- Supervision.runDataflow();
+ runDataflow();
return(false);
case 307:
- Supervision.killDataflow();
+ killDataflow();
return(false);
case 308:
- Supervision.suspendResumeDataflow();
+ suspendResumeDataflow();
return(false);
case 309:
- Supervision.showComponents();
+ showComponents();
return(false);
case 310:
- Supervision.stepByStep();
+ stepByStep();
return(false);
default:
- QMessageBox::warning(QAD_Application::getDesktop(), "Supervision Error", "Unknown Command From Salome");
+ QMessageBox::warning(application()->desktop(), "Supervision Error", "Unknown Command From Salome");
return(false);
}
}
-bool SUPERVGUI::SetSettings(QAD_Desktop* parent) {
+/*bool SUPERVGUI::SetSettings() {
Trace("SUPERVGUI::SetSettings");
- Supervision.init(parent);
+ Supervision.init();
return(true);
-}
+ }*/
-void SUPERVGUI::DefinePopup(QString& theContext, QString& theParent, QString& theObject) {
+/*void SUPERVGUI::DefinePopup(QString& theContext, QString& theParent, QString& theObject) {
theObject = "";
theContext = "";
-}
+ }*/
-bool SUPERVGUI::ActiveStudyChanged(QAD_Desktop* parent) {
+bool SUPERVGUI::ActiveStudyChanged() {
Trace("SUPERVGUI::activeStudyChanged");
- study = desktop->getActiveStudy();
+ study = application()->activeStudy();
return true;
}
-void SUPERVGUI::SupportedViewType (int* buffer, int bufferSize)
+/*void SUPERVGUI::SupportedViewType (int* buffer, int bufferSize)
{
if (!buffer || !bufferSize) return;
buffer[0] = (int)VIEW_GRAPHSUPERV;
-}
+}*/
-extern "C"
-{
- Standard_EXPORT SALOMEGUI* GetComponentGUI() {
- return &Supervision;
- }
-}