Public Member Functions
MatlabPlugin Class Reference

Brief description of class still missing. More...

#include <MatlabPlugin.h>

List of all members.

Public Member Functions

virtual AbstractForwardcreateForward ()
virtual QWidget * createParamWidget ()
virtual QWidget * createTargetWidget ()
virtual QString description () const
virtual bool initForward (AbstractForward *forward)
virtual const char * interfaceVersion () const
 MatlabPlugin ()
virtual void setCurrentForward (AbstractForward *forwards, const QString &)
virtual QString tag () const
virtual QString title () const
virtual QString version () const
virtual XMLMember xml_member (XML_MEMBER_ARGS)
virtual bool xml_polishChild (XML_POLISHCHILD_ARGS)
virtual void xml_writeChildren (XML_WRITECHILDREN_ARGS) const
virtual bool xmlSupport () const
 ~MatlabPlugin ()

Detailed Description

Brief description of class still missing.

Full description of class still missing


Constructor & Destructor Documentation

{
  _paramWidget=0;
  _targetWidget=0;
  _param=0;
  _target=0;
}
{
  delete _param;
  delete _target;
}

Member Function Documentation

Creates the forward object

References TRACE.

{
  TRACE;
  return new Forward;
}
QWidget * MatlabPlugin::createParamWidget ( ) [virtual]

References TRACE.

{
  TRACE;
  _paramWidget=new ParamSpaceEditor;
  connect(_paramWidget, SIGNAL(check()), this, SLOT(checkScript()));
  return _paramWidget;
}
QWidget * MatlabPlugin::createTargetWidget ( ) [virtual]

References TRACE.

{
  TRACE;
  _targetWidget=new MatlabTargetWidget;
  return _targetWidget;
}
QString MatlabPlugin::description ( ) const [virtual]

More explanations about the inversion plugin, displayed in Tooltips at Dinver startup.

References QGpCoreTools::tr(), and TRACE.

{
  TRACE;
  return tr("<p>With this plugin you can build your own parameterization<br/>"
            "within the graphical interface and use a Matlab script<br/>"
            "to calculate the misfit function.</p>");
}
bool MatlabPlugin::initForward ( AbstractForward forward) [virtual]

Initializes the forward object

References QGpCoreTools::endl(), Forward::setParam(), Forward::setTarget(), MatlabTargetWidget::target(), QGpCoreTools::tr(), and TRACE.

{
  TRACE;
  ParamSpaceScript * param;
  if(_paramWidget) {
    param=_paramWidget->script();
  } else {
    param=new ParamSpaceScript(*_param);
  }
  MatlabTarget * target;
  if(_targetWidget) {
    target=_targetWidget->target();
  } else {
    if(_target) {
      target=new MatlabTarget(*_target);
    } else {
      target=new MatlabTarget;
    }
  }
  Forward * f=static_cast<Forward *>(forward);
  if( !f->setParam(param) ) {
      App::stream() << tr("Error building parameter space, see above messages") << endl;
      return false;
    }
  if( !f->setTarget(target, false)) {
    App::stream() << tr("Error setting target, see above messages") << endl;
    return false;
  }
  return true;
}
virtual const char* MatlabPlugin::interfaceVersion ( ) const [inline, virtual]
{return DINVERCORE_VERSION;}
void MatlabPlugin::setCurrentForward ( AbstractForward forwards,
const QString &   
) [virtual]

References Forward::parameters(), MatlabTargetWidget::setEditable(), MatlabTargetWidget::setFrom(), MatlabTargetWidget::target(), Forward::target(), and TRACE.

{
  TRACE;
  if(forward) {
    if(!_param) {
      // Means that last list of forwards was null or contained more than 1 forward
      // Hence the main global parameterization and target are currently active
      // Save them before showing a particular case
      ASSERT(!_target);
      _param=_paramWidget->script();
      _target=_targetWidget->target();
    }
    Forward * f=static_cast<Forward *>(forward);
    _paramWidget->setFrom(f->parameters());
    _paramWidget->setEditable(false);
    _targetWidget->setEditable(false);
    _targetWidget->setFrom(f->target());
    //_importTargetAction->setEnabled(false);
    //_importParamAction->setEnabled(false);
  } else if(_param) {
    ASSERT(_target);
    _paramWidget->setFrom(_param);
    _paramWidget->setEditable(true);
    _targetWidget->setFrom(_target);
    _targetWidget->setEditable(true);
    //_importTargetAction->setEnabled(true);
    //_importParamAction->setEnabled(true);
    delete _param;
    delete _target;
    _param=0;
    _target=0;
  }
}
QString MatlabPlugin::tag ( ) const [virtual]

Unique tag to identify in .report files models generated by this plugin.

References TRACE.

Referenced by xml_member().

{
  TRACE;
  return "DinverMatlab";
}
QString MatlabPlugin::title ( ) const [virtual]

User friendly title, displayed at Dinver startup.

References QGpCoreTools::tr(), and TRACE.

{
  TRACE;
  return tr("Matlab forward computation");
}
QString MatlabPlugin::version ( ) const [virtual]

References DINVERMATLAB_VERSION, and TRACE.

References DinverCore::XMLDinverContext::parameters(), tag(), DinverCore::XMLDinverContext::targets(), and TRACE.

{
  TRACE;
  Q_UNUSED(attributes)
  Q_UNUSED(context);
  XMLDinverContext * dinverContext=static_cast<XMLDinverContext *>(context);
  if(tag=="MatlabTarget" ) {
    if(dinverContext->targets()) {
      if(_targetWidget) {
        return XMLMember(new MatlabTarget, true);
      } else {
        delete _target;
        _target=new MatlabTarget;
        return XMLMember(_target);
      }
    } else {
      return XMLMember(XMLMember::Skip);
    }
  } else if(tag=="ParamSpaceScript") {
    if(dinverContext->parameters()) {
      if(_paramWidget) {
        return XMLMember(new ParamSpaceScript, true);
      } else {
        delete _param;
        _param=new ParamSpaceScript;
        return XMLMember(_param);
      }
    } else {
      return XMLMember(XMLMember::Skip);
    }
  } else return XMLMember(XMLMember::Unknown);
}

References DinverCore::XMLDinverContext::parameters(), MatlabTargetWidget::setFrom(), DinverCore::XMLDinverContext::targets(), and TRACE.

{
  TRACE;
  XMLDinverContext * dinverContext=static_cast<XMLDinverContext *>(context);
  if(dinverContext->targets() && child->xml_tagName()=="MatlabTarget") {
    if(_targetWidget) {
      _targetWidget->setFrom(static_cast<MatlabTarget *>(child));
    }
    return true;
  } else if(dinverContext->parameters() && child->xml_tagName()=="ParamSpaceScript") {
    if(_paramWidget) {
      _paramWidget->setFrom(static_cast<ParamSpaceScript *>(child));
    }
    return true;
  } else
    return false;
}

References DinverCore::XMLDinverContext::parameters(), MatlabTargetWidget::target(), DinverCore::XMLDinverContext::targets(), TRACE, and QGpCoreTools::XMLClass::xml_save().

{
  TRACE;
  XMLDinverContext * dinverContext=static_cast<XMLDinverContext *>(context);
  if(dinverContext->targets()) {
    MatlabTarget * t=_targetWidget->target();
    t->xml_save(s, context);
    delete t;
  }
  if(dinverContext->parameters()) {
    ParamSpaceScript * p=_paramWidget->script();
    p->xml_save(s, context);
    delete p;
  }
}
virtual bool MatlabPlugin::xmlSupport ( ) const [inline, virtual]
{return true;}

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines