![]() |
MAK RTIspy API Documentation for HLA Evolved
|
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