MAK RTIspy API Documentation for HLA 1516
connQueryWidget.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2008 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: connQueryWidget.h,v $ $Revision: 1.44 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00012 #ifndef connQueryWidget_H_
00013 #define connQueryWidget_H_
00014 
00015 #include "rtiMsConfig.h"
00016 #include "ui_connQueryWidgetUI.h"
00017 #include "assistantConnectionInfo.h"
00018 #include "assistantConnectionConfigurationInfo.h"
00019 #include "connectionAndConfiguration.h"
00020 #include "assistantConfigWidget.h"
00021 
00022 class DtAssistantAddConnDialog;
00023 class QMenu;
00024 class QAction;
00025 
00029 class DT_DLL_ASSISTANTAPP DtAssistantConnQueryWidget : public DtAssistantConfigWidget
00030 {
00031    Q_OBJECT
00032 
00033 public:
00034 
00036    DtAssistantConnQueryWidget( QWidget* parent, Qt::WindowFlags f=0 );
00037 
00039    virtual ~DtAssistantConnQueryWidget();
00040 
00043    virtual void useButtonsInsteadOfCheckBox( bool useButtons );
00044 
00046    virtual void showStartRtiexecButton( bool show );
00047 
00051    virtual void setConnections( const DtRtiConnectionAndConfiguration& conns, 
00052       bool preserveSelection );
00053    
00055    virtual void addConnections( const DtRtiConnectionAndConfiguration& conns );
00056 
00058    virtual void removeConnections( const DtRtiConnectionAndConfiguration& conns );
00059 
00064    virtual void getResults( DtRtiConnectionInfoDataPair& conn,
00065       DtRtiConnectionConfigurationInfo& config, bool& choose ) const;
00066 
00069    virtual const DtRtiConnectionAndConfiguration& userAddedConnections();
00070 
00073    virtual const DtRtiConnectionAndConfiguration& userRemovedConnections();
00074 
00077    virtual void clearUserAddedAndRemoved();
00078 
00081    virtual bool selectConnection( const DtRtiConnectionInfo& conn );
00082 
00084    virtual void getSelectedConnection( DtRtiConnectionInfo& conn ) const;
00085 
00087    virtual void getSelectedConfiguration( DtRtiConnectionConfigurationInfo& config ) const;
00088 
00090    virtual void addProhibitedPort( int port, const QString& reason );
00091 
00093    virtual void removeProhibitedPort( int port );
00094 
00095 
00097 
00098 
00102    virtual bool checkForPortConflicts( int port1, int port2 = 0 );
00103 
00106    virtual bool checkForValidAddr( const QString& addrStr, const MAKRti::DtInetAddr& ifAddr,
00107       MAKRti::DtInetAddr& addr);
00108 
00110    virtual bool checkForConnNameConflict( const QString& name );
00111 
00113    virtual bool checkForDuplicateConn( const DtRtiConnectionInfo& conn );
00114 
00116 
00119    virtual void setInitialState( bool check );
00120 
00123    virtual void setEnableLoopbackDevice( bool enb );
00124 
00127    virtual bool isConnectionNameInUse( const QString& name ) const;
00128 
00129 public slots:
00130 
00132    virtual void processAdd();
00133 
00135    virtual void processRemove();
00136 
00138    virtual void processEdit();
00139 
00142    virtual void processSelectionChange(QTreeWidgetItem* item = 0);
00143 
00145    virtual void showContextMenu( const QPoint& );
00146 
00147 protected:
00148 
00149    struct DtRtiConnAndAssociatedConfig
00150    {
00151       DtRtiConnectionInfoDataPair conn;
00152       DtRtiConfigurationInfoDataPair config;
00153    };
00154    typedef std::map< QString, DtRtiConnAndAssociatedConfig > DtNameToConnInfoMap;
00155 
00156    DtNameToConnInfoMap::iterator myIter;
00157 
00161    virtual bool addConnection( const DtRtiConnectionInfoDataPair& conn,
00162       const DtRtiConfigurationInfoDataPair& config,
00163       DtNameToConnInfoMap::iterator& connIter ) = 0;
00164 
00166    virtual void removeConnection( const DtRtiConnectionInfoDataPair& conn ) = 0;
00167 
00169    virtual void clearAllConnections() = 0;
00170 
00172    virtual void storeUserAddedConnection( const DtRtiConnectionInfoDataPair& conn );
00173 
00175    virtual void storeUserRemovedConnection( const DtRtiConnectionInfoDataPair& conn );
00176 
00179    virtual QTreeWidgetItem* findConnInTree( const DtRtiConnectionInfo& conn,
00180       DtNameToConnInfoMap::iterator& connIter ) = 0;
00181 
00184    virtual void setConnItemToolTip( QTreeWidgetItem* item, 
00185       const DtRtiConnectionInfoDataPair& conn = 
00186       std::make_pair( DtRtiConnectionInfo::invalidConn(), DtRtiAssociatedConnectionData() ),
00187       const DtRtiConfigurationInfoDataPair& config = DtRtiConfigurationInfoDataPair() );
00188 
00191    virtual void getConnStatusText( const QTreeWidgetItem* item, 
00192       const DtRtiConnectionInfoDataPair& conn, 
00193       const DtRtiConfigurationInfoDataPair&, 
00194       QString& text ) = 0;
00195 
00198    virtual void loadLocalInterfaceList() = 0;
00199 
00201    virtual bool promptUserForNewConnInfo( DtRtiConnectionInfoDataPair& conn ) = 0;
00202 
00204    virtual bool promptUserToEditConnInfo( DtRtiConnectionInfoDataPair& conn ) = 0;
00205 
00208    virtual void setAcceptEnabledBasedOnConn( const DtRtiConnectionInfoDataPair* conn ) = 0;
00209 
00212    virtual void updateDisplayedConnection( const QString& name,
00213       const DtRtiConnectionInfoDataPair& updatedConn,
00214       QTreeWidgetItem* connItem ) = 0;
00215 
00218    virtual void setFullyCompliantStateBasedOnConn( const DtRtiConnectionInfoDataPair* conn,
00219       const DtRtiConfigurationInfoDataPair* config );
00220 
00223    virtual void setRemoveEnabledBasedOnConn( const DtRtiConnectionInfoDataPair* conn );
00224 
00227    virtual void setEditEnabledBasedOnConn( const DtRtiConnectionInfoDataPair* conn );
00228 
00231    virtual void updateDialogBasedOnConn( const DtRtiConnectionInfoDataPair* conn,
00232       const DtRtiConfigurationInfoDataPair* config, bool isDisabled ) {};
00233 
00235    virtual void disableItem( QTreeWidgetItem* item, bool disable );
00236 
00238    virtual bool isItemDisabled( const QTreeWidgetItem* item ) const;
00239 
00243    virtual QString reserveNameForConnection( const DtRtiConnectionInfoDataPair& conn );
00244 
00246    virtual void unreserveNameForConnection( const DtRtiConnectionInfoDataPair& conn );
00247 
00249    virtual void setAcceptEnabled( bool enabled, const QString& reasonForDisable );
00250    
00253    bool isAddressNotation(const QString& addrString) const;
00254 
00255 signals:
00256 
00258    void selectionDoubleClicked();
00259 
00261    void acceptEnabled( bool );
00262 
00265    void connectionAdded( const DtRtiConnectionInfoDataPair& conn,
00266       DtAssistantConnQueryWidget* widget );
00267 
00268 private:
00269 
00271    DtAssistantConnQueryWidget( DtAssistantConnQueryWidget const& );
00272 
00274    DtAssistantConnQueryWidget& operator=( DtAssistantConnQueryWidget const& );
00275 
00276 protected:
00277 
00278    enum DtConnQueryCol
00279    {
00280       ConnectionNameCol,
00281       StatusCol,
00282       SortCol
00283    };
00284 
00285    Ui::AssistantConnQueryWidget myUiImpl;
00286 
00288    DtNameToConnInfoMap myConnectionInfo;
00289 
00291    DtRtiConnectionAndConfiguration myAddedConnections;
00292 
00294    DtRtiConnectionAndConfiguration myRemovedConnections;
00295 
00297    DtNameToConnInfoMap::iterator myPredefinedLightweightConnection;
00298 
00300    DtNameToConnInfoMap::iterator myPredefinedRtiexecConnection;
00301 
00303    DtNameToConnInfoMap::iterator myChosenConnection;
00304 
00306    std::map<int, QString> myProhibitedPorts;
00307 
00309    QMenu* myContextMenu;
00310 
00312    bool myContextMenuEnabled;
00313 
00315    bool myShowStartRtiexecButton;
00316 
00319    bool myUseButtonsInsteadOfCheckBox;
00320 
00323    bool myInitialState;
00324 
00326    bool myEnableLoopbackDevice;
00327 
00329 
00330    QAction* myAddConnectionAction;
00331    QAction* myRemoveConnectionAction;
00332    QAction* myEditConnectionAction;
00333    QAction* myStartRtiexecAction;
00335 
00337 
00338    QIcon myValidChoiceIcon;
00339    QIcon myUnknownChoiceIcon;
00340    QIcon myInvalidChoiceIcon;
00342 
00343 };
00344 
00345 #endif
00346 

Document ID: Generated on Thu Jun 14 14:15:04 EDT 2012 from SVN revision 116116
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)