![]() |
MAK RTIspy API Documentation for HLA Evolved
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2007 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: federateTree.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef federateTree_H_ 00013 #define federateTree_H_ 00014 00015 #include "rtiMsConfig.h" 00016 #include "federationInfo.h" 00017 #include <qtreewidget.h> 00018 #include <vector> 00019 #include <map> 00020 #include <set> 00021 #include <vlutil/vlTime.h> 00022 00023 class DT_DLL_ASSISTANTAPP DtFederateTree : public QTreeWidget 00024 { 00025 Q_OBJECT 00026 00027 public: 00028 00029 DtFederateTree( QWidget* parent ); 00030 virtual ~DtFederateTree(); 00031 00032 private: 00033 00035 DtFederateTree( DtFederateTree const&); 00036 00038 DtFederateTree& operator=( DtFederateTree const& ); 00039 00040 public: 00041 00044 virtual bool updateFederation( const DtAssistantFederationInfo& federation ); 00045 00048 virtual bool removeFederation( const QString& name ); 00049 00051 virtual void removeAllFederations(); 00052 00055 virtual bool updateFederate( const DtAssistantFederateInfo& federate, 00056 const QString& fedexName); 00057 00062 virtual bool removeFederate( int federateHandle, const QString& fedexName, 00063 bool clearedDefunct = false ); 00064 00066 virtual void displayLoadingIndication(); 00067 00069 virtual void removeLoadingIndication(); 00070 00072 bool isFederateValid( int federateHandle, const QString& fedexName ) const; 00073 00075 void processInvalidList(); 00076 00079 QMenu* columnViewMenu() { return myColViewMenu; }; 00080 00083 QMenu* federateMenu() { return myFederateMenu; }; 00084 00087 QMenu* federationMenu() { return myFederationMenu; }; 00088 00091 void setFederateRemovalTime(float newTime); 00092 00094 float getFederateRemovalTime() const; 00095 00097 void enableDeletion( bool enable ); 00098 00100 QString getTreeFederationName( const MAKRti::DtString& federationName ); 00101 00102 protected: 00103 00105 virtual void updateFederateItems( const DtFederateInfoByHandleMap& federates, 00106 QTreeWidgetItem* fedexItem ); 00107 00109 virtual void updateFederateItem( const DtAssistantFederateInfo& federate, 00110 const QString& fedexName, QTreeWidgetItem* fedItem ); 00111 00113 virtual void removeAllFederateItems( QTreeWidgetItem* fedexItem ); 00114 00118 virtual void removeFederateItem( QTreeWidgetItem* fedItem, 00119 QTreeWidgetItem* fedexItem, bool clearedDefunct = false ); 00120 00122 bool isFederateValid( QTreeWidgetItem* item ) const; 00123 00124 public: 00125 00126 enum DtFederateTreeCol 00127 { 00128 FederationNameIndex = 0, 00129 FederateTypeAndHandleIndex = 0, // Shares column with federation name 00130 FederateIPIndex, 00131 HlaVersionIndex, 00132 WebSpyIndex, 00133 FederateNameIndex, 00134 RegulatingStateIndex, 00135 ConstrainedStateIndex, 00136 LbtsIndex, 00137 LookAheadIndex, 00138 CurrentTimeIndex, 00139 TestStatusIndex, 00140 TestCountIndex, 00141 }; 00142 00144 static const QString theLoadingText; 00145 00147 00148 static const QString theFederationFederateString; 00149 static const QString theIpAddressString; 00150 static const QString theRegulatingString; 00151 static const QString theConstrainedString; 00152 static const QString theLBTSString; 00153 static const QString theLookaheadString; 00154 static const QString theCurrentTimeString; 00155 static const QString theWwwspyString; 00156 static const QString theTestCapableString; 00157 static const QString theTestStatusString; 00158 static const QString theTestCountString; 00159 static const QString theFederateNameString; 00160 static const QString theHlaVersionString; 00162 00164 00165 static const QString theFederationFederateToolTip; 00166 static const QString theFederationNameToolTip; 00167 static const QString theFederateTypeToolTip; 00168 static const QString theIpAddressToolTip; 00169 static const QString theRegulatingToolTip; 00170 static const QString theRegulatingEnabledToolTip; 00171 static const QString theRegulatingDisabledToolTip; 00172 static const QString theConstrainedToolTip; 00173 static const QString theConstrainedEnabledToolTip; 00174 static const QString theConstrainedDisabledToolTip; 00175 static const QString theLBTSToolTip; 00176 static const QString theLookaheadToolTip; 00177 static const QString theCurrentTimeToolTip; 00178 static const QString theWwwspyToolTip; 00179 static const QString theWwwspyEnabledToolTip; 00180 static const QString theWwwspyDisabledToolTip; 00181 static const QString theTestCapableToolTip; 00182 static const QString theTestCapableEnabledToolTip; 00183 static const QString theTestCapableDisabledToolTip; 00184 static const QString theTestStatusToolTip; 00185 static const QString theNoTestToolTip; 00186 static const QString theContinuousTestToolTip; 00187 static const QString theSingleTestToolTip; 00188 static const QString theTestCountToolTip; 00189 static const QString theFederateNameToolTip; 00190 static const QString theHlaVersionToolTip; 00192 00193 00194 public slots: 00195 00197 virtual void showColumns(); 00198 00200 virtual void setAllColumns( const std::map<QString, std::pair<int, bool> >& columns ); 00201 00203 virtual void allColumns( std::map<QString, std::pair<int, bool> >& columns ); 00204 00206 virtual void showColCustomizeDlg(); 00207 00209 virtual void deleteSelectedFed(); 00210 00213 virtual void destroySelectedFederations(); 00214 00216 virtual void updateEnableNetworkTestingForSelectedFederations(); 00217 00219 virtual void openFedWebSpy(); 00220 00222 virtual void showLatencyTest(); 00223 00225 virtual void clearAllDeadFederates(); 00226 00228 virtual bool hasValidFederates() const; 00229 00231 virtual void clearCurrDefunctFederates(); 00232 00234 void refreshMenus(); 00235 00237 virtual void showContextMenu( const QPoint& ); 00238 00239 signals: 00240 void fedDeleteRequest( int, const QString& ); 00241 void federationDeleteRequest( const QString& fedexName ); 00242 void openFedWebSpyRequest( const QString&, int ); 00243 void enableNetworkTestingRequest( const QString& ); 00244 void disableNetworkTestingRequest( const QString& ); 00245 void showFedLatencyTest( const QString&, int ); 00246 00247 protected: 00248 00249 static const int FederateNameRole; 00250 static const int FederateHandleRole; 00251 static const int TestEnableRole; 00252 00254 QMenu* myColViewMenu; 00255 00257 std::vector< QAction* > myColDispActions; 00258 QAction* myColCustomizeAction; 00259 00261 QMenu* myContextMenu; 00262 QMenu* myFederateMenu; 00263 QMenu* myFederationMenu; 00264 00266 QAction* myDeleteFedAction; 00267 QAction* myOpenWebSpyAction; 00268 QAction* myLatencyTestAction; 00269 QAction* myClearAllDeadFederates; 00270 QAction* myClearCurrDefunctFederate; 00271 QAction* myDeleteFederationAction; 00272 QAction* myEnableNetworkTestingAction; 00273 00275 00276 QIcon myCheckIcon; 00277 QIcon myNoCheckIcon; 00278 QIcon myContTestIcon; 00279 QIcon mySingleTestIcon; 00280 QIcon myYellowAttention; 00281 QIcon myRedAttention; 00282 QIcon myWorldWideWeb; 00283 QIcon myWorldWideWebDisabled; 00284 QIcon myTestIcon; 00286 00288 std::map<QString, QString> myFederationNamesToItemNames; 00289 00291 std::map<QString, QString> myItemNamesToFederationNames; 00292 00298 std::map<QTreeWidgetItem*, std::pair<MAKRti::DtTime, std::pair<QString, int> > > myInvalidTreeWidgets; 00299 00301 std::map<QTreeWidgetItem*, std::pair<QString, int> > myReconnectingFederates; 00302 00304 std::map<QTreeWidgetItem*, std::pair<QString, int> > myReconnectedFederates; 00305 00307 std::set< std::pair<QString, int > > myClearedDefunctFederates; 00308 00310 std::set<QTreeWidgetItem* > myTestDisabledFederations; 00311 00313 float myFederateRemovalTime; 00314 00316 std::set<QTreeWidgetItem*> myListOfWebSpyEnabledFederates; 00317 00319 QTreeWidgetItem* myLoadingIndicationItem; 00320 00322 bool myDeletionEnabled; 00323 00324 MAKRti::DtClock myTimer; 00325 00328 static const int theLastColDefaultedOn; 00329 00330 }; 00331 00332 #endif