]> SALOME platform Git repositories - plugins/netgenplugin.git/commitdiff
Salome HOME
Merge from BR_DumpPython_Extension branch (from tag mergeto_BR_V5_Dev_28Jan09)
authorouv <ouv@opencascade.com>
Wed, 28 Jan 2009 16:33:31 +0000 (16:33 +0000)
committerouv <ouv@opencascade.com>
Wed, 28 Jan 2009 16:33:31 +0000 (16:33 +0000)
src/GUI/NETGENPluginGUI_HypothesisCreator.cxx
src/GUI/NETGENPluginGUI_HypothesisCreator.h
src/GUI/NETGENPluginGUI_SimpleCreator.cxx
src/GUI/NETGENPluginGUI_SimpleCreator.h
src/NETGENPlugin/NETGENPlugin_SimpleHypothesis_2D_i.cxx

index acfea713fd51ee3146e05a562e15a6ccc4b73806..fc9d19627e0cfbd3a413805c1b33354d4e7ed3ae 100644 (file)
@@ -29,6 +29,7 @@
 
 #include <SMESHGUI_Utils.h>
 #include <SMESHGUI_HypothesesUtils.h>
+#include <SMESHGUI.h>
 
 #include CORBA_SERVER_HEADER(NETGENPlugin_Algorithm)
 
@@ -37,7 +38,7 @@
 
 #include <SalomeApp_Tools.h>
 
-#include <QtxDoubleSpinBox.h>
+#include <SalomeApp_DoubleSpinBox.h>
 
 #include <QComboBox>
 #include <QLabel>
@@ -68,13 +69,18 @@ NETGENPluginGUI_HypothesisCreator::~NETGENPluginGUI_HypothesisCreator()
 {
 }
 
-bool NETGENPluginGUI_HypothesisCreator::checkParams() const
+bool NETGENPluginGUI_HypothesisCreator::checkParams(QString& msg) const
 {
   NetgenHypothesisData data_old, data_new;
   readParamsFromHypo( data_old );
   readParamsFromWidgets( data_new );
   bool res = storeParamsToHypo( data_new );
   storeParamsToHypo( data_old );
+  
+  res = myMaxSize->isValid(msg,true) && res;
+  res = myGrowthRate->isValid(msg,true) && res; ;
+  res = myNbSegPerEdge->isValid(msg,true) && res;
+  res = myNbSegPerRadius->isValid(msg,true) && res;
   return res;
 }
 
@@ -104,7 +110,7 @@ QFrame* NETGENPluginGUI_HypothesisCreator::buildFrame()
   }
 
   aGroupLayout->addWidget( new QLabel( tr( "NETGEN_MAX_SIZE" ), GroupC1 ), row, 0 );
-  myMaxSize = new QtxDoubleSpinBox( GroupC1 );
+  myMaxSize = new SalomeApp_DoubleSpinBox( GroupC1 );
   myMaxSize->setDecimals( 7 );
   myMaxSize->setMinimum( 1e-07 );
   myMaxSize->setMaximum( 1e+06 );
@@ -126,7 +132,7 @@ QFrame* NETGENPluginGUI_HypothesisCreator::buildFrame()
   row++;
 
   aGroupLayout->addWidget( new QLabel( tr( "NETGEN_GROWTH_RATE" ), GroupC1 ), row, 0 );
-  myGrowthRate = new QtxDoubleSpinBox( GroupC1 );
+  myGrowthRate = new SalomeApp_DoubleSpinBox( GroupC1 );
   myGrowthRate->setMinimum( 0.1 );
   myGrowthRate->setMaximum( 10 );
   myGrowthRate->setSingleStep( 0.1 );
@@ -136,14 +142,14 @@ QFrame* NETGENPluginGUI_HypothesisCreator::buildFrame()
   const double VALUE_MAX = 1.0e+6;
 
   aGroupLayout->addWidget( new QLabel( tr( "NETGEN_SEG_PER_EDGE" ), GroupC1 ), row, 0 );
-  myNbSegPerEdge = new QtxDoubleSpinBox( GroupC1 );
+  myNbSegPerEdge = new SalomeApp_DoubleSpinBox( GroupC1 );
   myNbSegPerEdge->setMinimum( 0.2 );
   myNbSegPerEdge->setMaximum( VALUE_MAX ); // (PAL14890) max value in native netgen gui is 5
   aGroupLayout->addWidget( myNbSegPerEdge, row, 1 );
   row++;
   
   aGroupLayout->addWidget( new QLabel( tr( "NETGEN_SEG_PER_RADIUS" ), GroupC1 ), row, 0 );
-  myNbSegPerRadius = new QtxDoubleSpinBox( GroupC1 );
+  myNbSegPerRadius = new SalomeApp_DoubleSpinBox( GroupC1 );
   myNbSegPerRadius->setMinimum( 0.2 );
   myNbSegPerRadius->setMaximum( VALUE_MAX ); // (PAL14890) max value in native netgen gui is 5
   aGroupLayout->addWidget( myNbSegPerRadius, row, 1 );
@@ -173,13 +179,30 @@ void NETGENPluginGUI_HypothesisCreator::retrieveParams() const
 
   if( myName )
     myName->setText( data.myName );
-  myMaxSize->setValue( data.myMaxSize );
+  if(data.myMaxSizeVar.isEmpty())
+    myMaxSize->setValue( data.myMaxSize );
+  else
+    myMaxSize->setText( data.myMaxSizeVar );
+  
   mySecondOrder->setChecked( data.mySecondOrder );
   myOptimize->setChecked( data.myOptimize );
   myFineness->setCurrentIndex( data.myFineness );
-  myGrowthRate->setValue( data.myGrowthRate );
-  myNbSegPerEdge->setValue( data.myNbSegPerEdge );
-  myNbSegPerRadius->setValue( data.myNbSegPerRadius );
+
+  if(data.myGrowthRateVar.isEmpty())
+    myGrowthRate->setValue( data.myGrowthRate );
+  else
+    myGrowthRate->setText( data.myGrowthRateVar );
+
+  if(data.myNbSegPerEdgeVar.isEmpty())
+    myNbSegPerEdge->setValue( data.myNbSegPerEdge );
+  else
+    myNbSegPerEdge->setText( data.myNbSegPerEdgeVar );
+  
+  if(data.myNbSegPerRadiusVar.isEmpty())
+    myNbSegPerRadius->setValue( data.myNbSegPerRadius );
+  else
+    myNbSegPerRadius->setText( data.myNbSegPerRadiusVar );
+  
   if (myIs2D)
     myAllowQuadrangles->setChecked( data.myAllowQuadrangles );
 
@@ -219,14 +242,20 @@ bool NETGENPluginGUI_HypothesisCreator::readParamsFromHypo( NetgenHypothesisData
   HypothesisData* data = SMESH::GetHypothesisData( hypType() );
   h_data.myName = isCreation() && data ? data->Label : "";
 
+  SMESH::ListOfParameters_var aParameters = h->GetLastParameters();
+
   h_data.myMaxSize = h->GetMaxSize();
+  h_data.myMaxSizeVar = (aParameters->length() > 0) ? QString(aParameters[0].in()) : QString("");
   h_data.mySecondOrder = h->GetSecondOrder();
   h_data.myOptimize = h->GetOptimize();
 
   h_data.myFineness = (int) h->GetFineness();
   h_data.myGrowthRate = h->GetGrowthRate();
+  h_data.myGrowthRateVar = (aParameters->length() > 1) ? QString(aParameters[1].in()) : QString("");
   h_data.myNbSegPerEdge = h->GetNbSegPerEdge();
+  h_data.myNbSegPerEdgeVar  = (aParameters->length() > 2) ? QString(aParameters[2].in()) : QString("");
   h_data.myNbSegPerRadius = h->GetNbSegPerRadius();
+  h_data.myNbSegPerRadiusVar = (aParameters->length() > 3) ? QString(aParameters[3].in()) : QString("");
 
   if ( myIs2D )
     {
@@ -250,8 +279,9 @@ bool NETGENPluginGUI_HypothesisCreator::storeParamsToHypo( const NetgenHypothesi
   {
     if( isCreation() )
       SMESH::SetName( SMESH::FindSObject( h ), h_data.myName.toLatin1().data() );
-
+    QStringList aVariablesList;
     h->SetMaxSize( h_data.myMaxSize );
+    aVariablesList.append(h_data.myMaxSizeVar);
     h->SetSecondOrder( h_data.mySecondOrder );
     h->SetOptimize( h_data.myOptimize );
     int fineness = h_data.myFineness;
@@ -262,6 +292,10 @@ bool NETGENPluginGUI_HypothesisCreator::storeParamsToHypo( const NetgenHypothesi
        h->SetGrowthRate( h_data.myGrowthRate );
        h->SetNbSegPerEdge( h_data.myNbSegPerEdge );
        h->SetNbSegPerRadius( h_data.myNbSegPerRadius );
+        
+        aVariablesList.append(h_data.myGrowthRateVar);
+        aVariablesList.append(h_data.myNbSegPerEdgeVar);
+        aVariablesList.append(h_data.myNbSegPerRadiusVar);
       }
     
     if ( myIs2D )
@@ -272,6 +306,15 @@ bool NETGENPluginGUI_HypothesisCreator::storeParamsToHypo( const NetgenHypothesi
        if ( !h_2d->_is_nil() )
          h_2d->SetQuadAllowed( h_data.myAllowQuadrangles );
       }
+
+    h->SetParameters(SMESHGUI::JoinObjectParameters(aVariablesList));
+    if( fineness==UserDefined )
+      {
+        h->SetParameters(SMESHGUI::JoinObjectParameters(aVariablesList));
+        h->SetParameters(SMESHGUI::JoinObjectParameters(aVariablesList));
+        h->SetParameters(SMESHGUI::JoinObjectParameters(aVariablesList));
+      }
+        
   }
   catch(const SALOME::SALOME_Exception& ex)
   {
@@ -285,12 +328,18 @@ bool NETGENPluginGUI_HypothesisCreator::readParamsFromWidgets( NetgenHypothesisD
 {
   h_data.myName           = myName ? myName->text() : "";
   h_data.myMaxSize        = myMaxSize->value();
+  h_data.myMaxSizeVar     = myMaxSize->text();
   h_data.mySecondOrder    = mySecondOrder->isChecked();
   h_data.myOptimize       = myOptimize->isChecked();
   h_data.myFineness       = myFineness->currentIndex();
   h_data.myGrowthRate     = myGrowthRate->value();
   h_data.myNbSegPerEdge   = myNbSegPerEdge->value();
   h_data.myNbSegPerRadius = myNbSegPerRadius->value();
+
+  h_data.myGrowthRateVar     = myGrowthRate->text();
+  h_data.myNbSegPerEdgeVar   = myNbSegPerEdge->text();
+  h_data.myNbSegPerRadiusVar = myNbSegPerRadius->text();
+
   
   if ( myIs2D )
     h_data.myAllowQuadrangles = myAllowQuadrangles->isChecked();
index c038eb731f2353f77bc3eb5da88d93d4f6aedbff..a23739eee8b3e008bb815c9de4f940577f181afb 100644 (file)
@@ -32,7 +32,7 @@
 
 #include <SMESHGUI_Hypotheses.h>
 
-class QtxDoubleSpinBox;
+class SalomeApp_DoubleSpinBox;
 class QComboBox;
 class QCheckBox;
 class QLineEdit;
@@ -43,6 +43,7 @@ typedef struct
   int                 myFineness;
   bool                mySecondOrder, myAllowQuadrangles, myOptimize;
   QString             myName;
+  QString             myMaxSizeVar, myGrowthRateVar, myNbSegPerEdgeVar, myNbSegPerRadiusVar;
 } NetgenHypothesisData;
 
 /*!
@@ -56,7 +57,7 @@ public:
   NETGENPluginGUI_HypothesisCreator( const QString& );
   virtual ~NETGENPluginGUI_HypothesisCreator();
 
-  virtual bool     checkParams() const;
+  virtual bool     checkParams(QString& msg) const;
   virtual QString  helpPage() const;
 
 protected:
@@ -78,13 +79,13 @@ private:
 
 private:
  QLineEdit*        myName;
QtxDoubleSpinBox* myMaxSize;
SalomeApp_DoubleSpinBox* myMaxSize;
  QCheckBox*        mySecondOrder;
  QCheckBox*        myOptimize;
  QComboBox*        myFineness;
QtxDoubleSpinBox* myGrowthRate;
QtxDoubleSpinBox* myNbSegPerEdge;
QtxDoubleSpinBox* myNbSegPerRadius;
SalomeApp_DoubleSpinBox* myGrowthRate;
SalomeApp_DoubleSpinBox* myNbSegPerEdge;
SalomeApp_DoubleSpinBox* myNbSegPerRadius;
  QCheckBox*        myAllowQuadrangles;
 
  bool myIs2D;
index 030c00abaf43b8fa385c97815daeac7a7219ba01..596a34db7a87b1d4badc89e1269082990a5d194d 100644 (file)
@@ -28,6 +28,7 @@
 #include <SMESHGUI_Utils.h>
 #include <SMESHGUI_HypothesesUtils.h>
 #include <SMESHGUI_SpinBox.h>
+#include <SMESHGUI.h>
 
 // IDL includes
 #include CORBA_SERVER_HEADER(NETGENPlugin_Algorithm)
@@ -37,7 +38,7 @@
 
 // SALOME GUI includes
 #include <SalomeApp_Tools.h>
-#include <QtxIntSpinBox.h>
+#include <SalomeApp_IntSpinBox.h>
 
 // Qt includes
 #include <QLabel>
@@ -82,9 +83,16 @@ NETGENPluginGUI_SimpleCreator::~NETGENPluginGUI_SimpleCreator()
 {
 }
 
-bool NETGENPluginGUI_SimpleCreator::checkParams() const
+bool NETGENPluginGUI_SimpleCreator::checkParams(QString& msg) const
 {
-  return true;
+  bool result = true;
+  result = myNbSeg->isValid(msg,true) && result;
+  result = myLength->isValid(msg,true) && result;
+  result = myArea->isValid(msg,true) && result;
+  if (myVolume)
+    result = myVolume->isValid(msg,true) && result;
+  
+  return result;
 }
 
 QFrame* NETGENPluginGUI_SimpleCreator::buildFrame()
@@ -132,7 +140,7 @@ QFrame* NETGENPluginGUI_SimpleCreator::buildFrame()
 
   // *  number of segments
   myNbSegRadioBut  = new QRadioButton( tr( "SMESH_NB_SEGMENTS_HYPOTHESIS"  ), dimGroup );
-  myNbSeg = new QtxIntSpinBox( dimGroup );
+  myNbSeg = new SalomeApp_IntSpinBox( dimGroup );
   myNbSeg->setMinimum( 1 );
   myNbSeg->setMaximum( 9999 );
   myNbSeg->setValue( 1 );
@@ -237,26 +245,41 @@ void NETGENPluginGUI_SimpleCreator::retrieveParams() const
 
   // set values of hypothesis
 
+  SMESH::ListOfParameters_var aParameters = h->GetLastParameters();
+
   // 1D
   int nbSeg = (int) h->GetNumberOfSegments();
   myNbSegRadioBut->setChecked( nbSeg );
   myLengthRadioBut->setChecked( !nbSeg );
+  QString aPrm;
   if ( nbSeg ) {
     myLength->setEnabled( false );
     myNbSeg->setEnabled( true );
-    myNbSeg->setValue( nbSeg );
+    aPrm = (aParameters->length() > 0) ? QString(aParameters[0].in()) : QString("");
+    if(aPrm.isEmpty())
+      myNbSeg->setValue( nbSeg );
+    else
+      myNbSeg->setText(aPrm);
   }
   else {
     myNbSeg->setEnabled( false );
     myLength->setEnabled( true );
-    myLength->setValue( h->GetLocalLength() );
+    aPrm = (aParameters->length() > 0) ? QString(aParameters[0].in()) : QString("");
+    if(aPrm.isEmpty())
+      myLength->setValue( h->GetLocalLength() );
+    else
+      myLength->setText(aPrm);
   }
 
   // 2D
   if ( double area = h->GetMaxElementArea() ) {
     myLenFromEdgesCheckBox->setChecked( false );
     myArea->setEnabled( true );
-    myArea->setValue( area );
+    aPrm = (aParameters->length() > 1) ? QString(aParameters[1].in()) : QString("");
+    if(aPrm.isEmpty()) 
+      myArea->setValue( area );
+    else
+      myArea->setText( aPrm );
   }
   else {
     myLenFromEdgesCheckBox->setChecked( true );
@@ -269,7 +292,11 @@ void NETGENPluginGUI_SimpleCreator::retrieveParams() const
     if ( double volume = (double) h->GetMaxElementVolume() ) {
       myLenFromFacesCheckBox->setChecked( false );
       myVolume->setEnabled( true );
-      myVolume->setValue( volume );
+      aPrm = (aParameters->length() > 2) ? QString(aParameters[2].in()) : QString("");
+      if(aPrm.isEmpty())
+        myVolume->setValue( volume );
+      else
+        myVolume->setText( aPrm );
     }
     else {
       myLenFromFacesCheckBox->setChecked( true );
@@ -289,26 +316,37 @@ QString NETGENPluginGUI_SimpleCreator::storeParams() const
     if( isCreation() )
       SMESH::SetName( SMESH::FindSObject( h ), myName->text().toLatin1().data() );
 
+    
+
     // 1D
+    QStringList aVariablesList;
     if ( myNbSeg->isEnabled() ) {
       h->SetNumberOfSegments( myNbSeg->value() );
       valStr += "nbSeg=" + myNbSeg->text();
+      aVariablesList.append(myNbSeg->text());
     }
     else {
       h->SetLocalLength( myLength->value() );
-      valStr += "len=" + myNbSeg->text();
+      valStr += "len=" + myLength->text();
+      aVariablesList.append(myLength->text());
     }
+    
+    h->SetParameters(SMESHGUI::JoinObjectParameters(aVariablesList));
 
     // 2D
     if ( myArea->isEnabled() ) {
       h->SetMaxElementArea( myArea->value() );
       valStr += "; area=" + myArea->text();
+      aVariablesList.append(myArea->text());
     }
     else {
       h->LengthFromEdges();
       valStr += "; lenFromEdges";
+      aVariablesList.append(QString());
     }
 
+    h->SetParameters(SMESHGUI::JoinObjectParameters(aVariablesList));
+
     // 3D
     if ( myVolume ) {
       NETGENPlugin_SimpleHypothesis_3D_var h =
@@ -316,11 +354,14 @@ QString NETGENPluginGUI_SimpleCreator::storeParams() const
       if ( myVolume->isEnabled() ) {
         h->SetMaxElementVolume( myVolume->value() );
         valStr += "; vol=" + myVolume->text();
+        aVariablesList.append( myVolume->text());
       }
       else {
         h->LengthFromFaces();
         valStr += "; lenFromFaces";
+        aVariablesList.append(QString());
       }
+      h->SetParameters(SMESHGUI::JoinObjectParameters(aVariablesList));
     }
   }
   catch(const SALOME::SALOME_Exception& ex)
index 6c2484baefabc4df21ddc334da8cd3ea1ff596c1..4b7bb88d57dfe5f3656fec82e3bbf78a91dcc5d1 100644 (file)
@@ -33,7 +33,7 @@
 class  QCheckBox;
 class  QLineEdit;
 class  QRadioButton;
-class  QtxIntSpinBox;
+class  SalomeApp_IntSpinBox;
 class  SMESHGUI_SpinBox;
 
 class NETGENPLUGIN_GUI_EXPORT NETGENPluginGUI_SimpleCreator :
@@ -45,7 +45,7 @@ public:
   NETGENPluginGUI_SimpleCreator(const QString& theHypType);
   virtual ~NETGENPluginGUI_SimpleCreator();
 
-  virtual bool     checkParams() const;
+  virtual bool     checkParams(QString& msg) const;
   virtual QString  helpPage() const;
 
 protected:
@@ -63,7 +63,7 @@ protected slots:
 private:
   QLineEdit       * myName;
 
-  QtxIntSpinBox*    myNbSeg;
+  SalomeApp_IntSpinBox*    myNbSeg;
   SMESHGUI_SpinBox* myLength;
   QRadioButton*     myNbSegRadioBut, *myLengthRadioBut;
 
index 09d5fffd519194daa623009abffc66fce2282846..fac763ef12f1e52f63d209727ca0a5460632f6d4 100644 (file)
@@ -115,7 +115,7 @@ void NETGENPlugin_SimpleHypothesis_2D_i::SetLocalLength(CORBA::Double segmentLen
   catch (SALOME_Exception& S_ex) {
     THROW_SALOME_CORBA_EXCEPTION( S_ex.what(), SALOME::BAD_PARAM );
   }
-  SMESH::TPythonDump() << _this() << ".LocalLength( " << segmentLength << " )";
+  SMESH::TPythonDump() << _this() << ".SetLocalLength( " << segmentLength << " )";
 }
 
 //================================================================================