Public Member Functions
ExtPlugin Class Reference

Brief description of class still missing. More...

#include <ExtPlugin.h>

List of all members.

Public Member Functions

virtual AbstractForwardcreateForward ()
virtual QWidget * createParamWidget ()
virtual QWidget * createTargetWidget ()
virtual QString description () const
 ExtPlugin ()
virtual bool initForward (AbstractForward *forward)
virtual const char * interfaceVersion () const
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
 ~ExtPlugin ()

Detailed Description

Brief description of class still missing.

Full description of class still missing


Constructor & Destructor Documentation

References TRACE.

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

References TRACE.

{
  TRACE;
  delete _target;
  delete _param;
}

Member Function Documentation

Creates the forward object

References TRACE.

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

References TRACE.

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

References TRACE.

{
  TRACE;
  _targetWidget=new ExtTargetWidget;
  return _targetWidget;
}
QString ExtPlugin::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 specify an external program<br/>"
            "to calculate the misfit function.</p>");
}
bool ExtPlugin::initForward ( AbstractForward forward) [virtual]

Initializes the forward object

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

{
  TRACE;
  ParamSpaceScript * param;
  if(_paramWidget) {
    param=_paramWidget->script();
  } else {
    param=new ParamSpaceScript(*_param);
  }
  ExtTarget * target;
  if(_targetWidget) {
    target=_targetWidget->target();
  } else {
    target=new ExtTarget(*_target);
  }
  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) ) {
    App::stream() << tr("Error setting target, see above messages") << endl;
    return false;
  }
  return true;
}
virtual const char* ExtPlugin::interfaceVersion ( ) const [inline, virtual]
{return DINVERCORE_VERSION;}
void ExtPlugin::setCurrentForward ( AbstractForward forwards,
const QString &   
) [virtual]

References Forward::parameters(), ExtTargetWidget::setEditable(), ExtTargetWidget::setFrom(), ExtTargetWidget::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 ExtPlugin::tag ( ) const [virtual]

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

References TRACE.

Referenced by xml_member().

{
  TRACE;
  return "DinverExt";
}
QString ExtPlugin::title ( ) const [virtual]

User friendly title, displayed at Dinver startup.

References QGpCoreTools::tr(), and TRACE.

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

References DINVEREXT_VERSION, and TRACE.

{
  TRACE;
  return DINVEREXT_VERSION;
}

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=="ExtTarget") {
    if(dinverContext->targets()) {
      if(_targetWidget) {
        return XMLMember(new ExtTarget, true);
      } else {
        delete _target;
        _target=new ExtTarget;
        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(), ExtTargetWidget::setFrom(), DinverCore::XMLDinverContext::targets(), and TRACE.

{
  TRACE;
  XMLDinverContext * dinverContext=static_cast<XMLDinverContext *>(context);
  if(dinverContext->targets() && child->xml_tagName()=="ExtTarget") {
    if(_targetWidget) {
      _targetWidget->setFrom(static_cast<ExtTarget *>(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(), ExtTargetWidget::target(), DinverCore::XMLDinverContext::targets(), TRACE, and QGpCoreTools::XMLClass::xml_save().

{
  TRACE;
  XMLDinverContext * dinverContext=static_cast<XMLDinverContext *>(context);
  if(dinverContext->targets()) {
    ExtTarget * 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 ExtPlugin::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