![]() |
VR-Forces 4.0.4 Class Documentation
|
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
/****************************************************************************** ** 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); }; }
/****************************************************************************** ** 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); } }