Salome HOME
Bug fix: don't set "Loading" state for MacroNodes in InitialState() function (called...
[modules/superv.git] / src / SUPERVGUI / SUPERVGUI_Information.cxx
index 7909d7c06025e43514cdb1f98f22b0794271cf63..fe1c270a124d7b2a65f7d01306f9e92dcdddac72 100644 (file)
@@ -1,11 +1,31 @@
-using namespace std;
-//  File      : SUPERVGUI_Information.cxx
-//  Created   : 22 / 01 / 2002
-//  Author    : Francis KLOSS
-//  Project   : SALOME
-//  Module    : SUPERVGUI
-//  Copyright : CEA
+//  SUPERV SUPERVGUI : GUI for Supervisor component
+//
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  This library is free software; you can redistribute it and/or 
+//  modify it under the terms of the GNU Lesser General Public 
+//  License as published by the Free Software Foundation; either 
+//  version 2.1 of the License. 
+// 
+//  This library is distributed in the hope that it will be useful, 
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+//  Lesser General Public License for more details. 
+// 
+//  You should have received a copy of the GNU Lesser General Public 
+//  License along with this library; if not, write to the Free Software 
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+// 
+//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+//
+//
+//
+//  File   : SUPERVGUI_Information.cxx
+//  Author : Francis KLOSS
+//  Module : SUPERV
 
+using namespace std;
 #include "SUPERVGUI_Information.h"
 #include "QAD_Application.h"
 #include "QAD_Desktop.h"
@@ -60,6 +80,24 @@ SUPERVGUI_Information::SUPERVGUI_Information(SUPERV_CNode node, bool isReadOnly)
     contV = new QLineEdit( TopGroup );
     contV->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
     contV->setMinimumSize( 200, 0 );
+    contV->setReadOnly( false/*isReadOnly*/ );
+    contV->setText( SUPERV::FNode::_narrow(node)->GetContainer() );
+    
+    compnameL = new QLabel( tr( "COMPONENT_NAME_LBL" ), TopGroup ); 
+    compnameV = new QLineEdit( TopGroup );      
+    compnameV->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
+    compnameV->setMinimumSize( 200, 0 );
+    compnameV->setReadOnly( true/*isReadOnly*/ );
+    compnameV->setText( QAD_Application::getDesktop()->getComponentUserName(
+                  SUPERV::FNode::_narrow(node)->GetComponentName()) );
+
+    intnameL = new QLabel( tr( "INTERFACE_NAME_LBL" ), TopGroup ); 
+    intnameV = new QLineEdit( TopGroup );      
+    intnameV->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
+    intnameV->setMinimumSize( 200, 0 );
+    intnameV->setReadOnly( true/*isReadOnly*/ );
+    intnameV->setText( SUPERV::FNode::_narrow(node)->GetInterfaceName() );
+    
   }
   QLabel* cdatL = new QLabel( tr( "DATE_CREATION_LBL" ), TopGroup ); 
   cdatV = new QLabel( TopGroup );
@@ -87,14 +125,18 @@ SUPERVGUI_Information::SUPERVGUI_Information(SUPERV_CNode node, bool isReadOnly)
   if (node->IsFactory()) {
     TopGroupLayout->addWidget( contL, 2, 0 );
     TopGroupLayout->addWidget( contV, 2, 1 );
+    TopGroupLayout->addWidget( compnameL, 3, 0 );
+    TopGroupLayout->addWidget( compnameV, 3, 1 );
+    TopGroupLayout->addWidget( intnameL, 4, 0 );
+    TopGroupLayout->addWidget( intnameV, 4, 1 );
   }
-  TopGroupLayout->addWidget( cdatL, 3, 0 );
-  TopGroupLayout->addWidget( cdatV, 3, 1 );
-  TopGroupLayout->addWidget( udatL, 4, 0 );
-  TopGroupLayout->addWidget( udatV, 4, 1 );
-  TopGroupLayout->addWidget( commL, 5, 0 );
-  TopGroupLayout->addMultiCellWidget( commV, 5, 6, 1, 1 );
-  TopGroupLayout->addItem( new QSpacerItem( 5, 5, QSizePolicy::Minimum, QSizePolicy::Expanding  ), 6, 0 );
+  TopGroupLayout->addWidget( cdatL, 5, 0 );
+  TopGroupLayout->addWidget( cdatV, 5, 1 );
+  TopGroupLayout->addWidget( udatL, 6, 0 );
+  TopGroupLayout->addWidget( udatV, 6, 1 );
+  TopGroupLayout->addWidget( commL, 7, 0 );
+  TopGroupLayout->addMultiCellWidget( commV, 7, 8, 1, 1 );
+  TopGroupLayout->addItem( new QSpacerItem( 5, 5, QSizePolicy::Minimum, QSizePolicy::Expanding  ), 8, 0 );
   TopGroupLayout->setColStretch( 1, 5 );
 
   QGroupBox* GroupButtons = new QGroupBox( this, "GroupButtons" );
@@ -105,18 +147,31 @@ SUPERVGUI_Information::SUPERVGUI_Information(SUPERV_CNode node, bool isReadOnly)
   GroupButtonsLayout->setAlignment( Qt::AlignTop );
   GroupButtonsLayout->setSpacing( 6 );
   GroupButtonsLayout->setMargin( 11 );
-  
-  QPushButton* okB     = new QPushButton( tr( "BUT_OK" ),     GroupButtons );
-  QPushButton* cancelB = new QPushButton( tr( "BUT_CANCEL" ), GroupButtons );
 
-  GroupButtonsLayout->addWidget( okB, 0, 0 );
-  GroupButtonsLayout->addItem  ( new QSpacerItem( 5, 5, QSizePolicy::Expanding, QSizePolicy::Minimum ), 0, 1 );
-  GroupButtonsLayout->addWidget( cancelB, 0, 2 );
+  // fix for PAL6904: when isReadOnly is set ON (the dataflow was imported) then only "CLOSE" button
+  // should be present instead of 2 buttons OK and Cancel.
+  QPushButton* cancelB;
+  if ( !isReadOnly || node->IsFactory() )  {
+    /*added node->IsFactory() because only for Factory nodes we ALWAYS have editable "Container" field  */
+    QPushButton* okB = new QPushButton( tr( "BUT_OK" ), GroupButtons );
+    connect( okB,     SIGNAL( clicked() ), this, SLOT( okButton() ) );
+    cancelB = new QPushButton( tr( "BUT_CANCEL" ), GroupButtons );
+    GroupButtonsLayout->addWidget( okB, 0, 0 );
+    GroupButtonsLayout->addItem  ( new QSpacerItem( 5, 5, QSizePolicy::Expanding, QSizePolicy::Minimum ), 0, 1 );
+    GroupButtonsLayout->addWidget( cancelB, 0, 2 );
+  }
+  else {
+    cancelB = new QPushButton( tr( "BUT_CLOSE" ), GroupButtons );
+    GroupButtonsLayout->addItem  ( new QSpacerItem( 5, 5, QSizePolicy::Expanding, QSizePolicy::Minimum ), 0, 0 );
+    GroupButtonsLayout->addWidget( cancelB, 0, 1 );
+    GroupButtonsLayout->addItem  ( new QSpacerItem( 5, 5, QSizePolicy::Expanding, QSizePolicy::Minimum ), 0, 2 );
+  }
 
   TopLayout->addWidget( TopGroup,     0, 0 );
   TopLayout->addWidget( GroupButtons, 1, 0 );
+  TopLayout->setRowStretch( 0, 1 );
+  TopLayout->setRowStretch( 1, 0 );
 
-  connect( okB,     SIGNAL( clicked() ), this, SLOT( okButton() ) );
   connect( cancelB, SIGNAL( clicked() ), this, SLOT( koButton() ) );
 }