VR-Forces 4.0.4 Class Documentation
Facing North Widget

The FacingNorthWidget allows the user to select an entity that will be used to test this conditional It will then emit a signal that contains the MyConditionalExpression that is to be sent to the back-end


Header file:

/******************************************************************************
** Copyright (c) 2009 MAK Technologies, Inc.
** All rights reserved.
******************************************************************************/
/******************************************************************************
** $RCSfile: DtNorthConditional.h,v $ $Revision: 1.2 $ $State: Exp $
******************************************************************************/

//\file DtBaseEntityConditionalExpressionDialog.h
//\brief Contains DtBaseEntityConditionalExpressionDialog class.

#pragma once

#include <vrfGuiCoreQt/DtBaseEntityConditionalExpressionDialog.h>
#include <vrfGuiCoreQt/DtBaseEntityConditionalExpressionLogic.h>

namespace vrfAddConditionalExample
{
   //\brief Class that is used as a template for task/set dialogs
   class DtNorthConditionalCreator : public makVrf::DtVrfConditionalExpressionCreator
   {
      public:
      virtual makVrf::DtConditionalExpressionInterface* create(makVrv::DtDe&, QWidget* parent);
         virtual QString title() const ;
         virtual bool canEditType(int) const;
      };

   class DtNorthConditionalLogic : public makVrf::DtBaseEntityConditionalExpressionLogic
      {
      public:
      DtNorthConditionalLogic(makVrv::DtDe&, makVrf::DtConditionalExpressionInterface*);

         virtual ~DtNorthConditionalLogic();

      public:
      virtual void createConditional(makVrf::DtConditionalExpressionViewInterface* parentView,
            const std::vector<makVrv::DtSimEntry*>& data);

         virtual DtSimCondExpr* conditionalExpression() const;
         virtual void setupConditional(const DtSimCondExpr*, const std::vector<makVrv::DtSimEntry*>& data);
      };

   class DtNorthConditional : public makVrf::DtBaseEntityConditionalExpressionDialog
      {
      public:
         //CTOR
         DtNorthConditional(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags = 0);

         //DTOR
         virtual ~DtNorthConditional();

      protected:
         virtual QWidget*  expressionExtension();

         virtual QString value() const;
         virtual void setValue(const QString&);
         virtual void setupConditional(const DtSimCondExpr* expr, const std::vector<makVrv::DtSimEntry*>& data);
      };
}


Implementation:

/******************************************************************************
** Copyright (c) 2009 MAK Technologies, Inc.
** All rights reserved.
******************************************************************************/
/******************************************************************************
** $RCSfile: DtNorthConditional.cxx,v $ $Revision: 1.1 $ $State: Exp $
******************************************************************************/

#include "DtNorthConditional.h"

#include "../addConditionalSim/conditionalExpression.h"

using namespace makVrf;
namespace vrfAddConditionalExample
{
   //\brief Class that is used as a template for task/set dialogs
   DtConditionalExpressionInterface* DtNorthConditionalCreator::create(makVrv::DtDe& de, QWidget* parent)
   {
      return new DtNorthConditional(de, parent, theConditionalCreationFlags);
   }

   QString DtNorthConditionalCreator::title() const
   {
      return QObject::tr("Facing North");
   }

   bool DtNorthConditionalCreator::canEditType(int t) const
   {
      return (MyConditionalExpression().type() == t);
   }

   DtNorthConditionalLogic::DtNorthConditionalLogic(makVrv::DtDe& de, DtConditionalExpressionInterface* iFace)
   : DtBaseEntityConditionalExpressionLogic(de, iFace)
   {
   }

   DtNorthConditionalLogic::~DtNorthConditionalLogic()
   {
   }

   void DtNorthConditionalLogic::createConditional(DtConditionalExpressionViewInterface* parentView,
      const std::vector<makVrv::DtSimEntry*>& data)
   {
      myInterface->signal_conditionComplete();
   }

   DtSimCondExpr* DtNorthConditionalLogic::conditionalExpression() const
   {
      MyConditionalExpression* expr = new MyConditionalExpression;

      if (useNameSelected() && !useSelf())
      {
         if (selectedName().length() == 0)
         {
            delete expr;
            return 0;
         }

         expr->setEntityName((const char*)selectedName().toLocal8Bit());
      }

      expr->setModifier(createModifier().toLatin1().constData());

      return expr;
   }

   void DtNorthConditionalLogic::setupConditional(const DtSimCondExpr* cond,
      const std::vector<makVrv::DtSimEntry*>& data)
   {
      const MyConditionalExpression* ce = dynamic_cast<const MyConditionalExpression*>(cond);

      if (ce)
      {
         if (!setupFromModifier(ce->modifier().c_str()))
         {
            setSelectedName(QString::fromLocal8Bit(ce->entityName()));
         }
      }
   }

   DtNorthConditional::DtNorthConditional(makVrv::DtDe& de, QWidget* parent, const Qt::WindowFlags& flags)
   : DtBaseEntityConditionalExpressionDialog(de, parent, flags)
   {
      setWindowTitle(tr("Facing North"));
      myLogic = new DtNorthConditionalLogic(de, this);
   }

   DtNorthConditional::~DtNorthConditional()
   {
   }

   QString DtNorthConditional::value() const
   {
      return "";
   }

   void DtNorthConditional::setValue(const QString& s)
   {
   }

   QWidget* DtNorthConditional::expressionExtension()
   {
      return NULL;
   }

   void DtNorthConditional::setupConditional(const DtSimCondExpr* expr, const std::vector<makVrv::DtSimEntry*>& data)
   {
      myLogic->setupConditional(expr, data);
   }
}

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)