![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2008 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: uiAggregateCompositionEditor.h,v $ $Revision: 1.15 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DTUIAGGREGATECOMPOSITIONEDITOR_H_ 00013 #define DTUIAGGREGATECOMPOSITIONEDITOR_H_ 00014 00015 #include "entityEditorImpl/uiElement.h" 00016 #include "entityEditorImpl/entityEditorImplDefines.h" 00017 #include "entityEditorImpl/entityEditorList.h" 00018 00019 class QPushButton; 00020 class QTreeWidgetItem; 00021 class DtObjectType; 00022 class DtVrfSubObjectParameterList; 00023 class DtUiAggregateCompositionEditor; 00024 class QGroupBox; 00025 class DtVrfSubObjectParameterEntry; 00026 class DtFormationHierarchyView; 00027 class DtModelSetEntry; 00028 class DtAddObjectToHierarchy; 00029 00030 class DT_DLL_entityeditorimpl DtUiAggregateCompositionSignalHandler : public QObject 00031 { 00032 Q_OBJECT 00033 00034 public: 00035 DtUiAggregateCompositionSignalHandler(); 00036 00037 void setUiElement(DtUiAggregateCompositionEditor* parent); 00038 00039 protected slots: 00040 virtual void hierarchySelectionChanged(); 00041 virtual void editSelectedItem(); 00042 virtual void addToHierarchy(); 00043 virtual void replaceInHierarchy(); 00044 virtual void removeFromHierarchy(); 00045 virtual void moveUp(); 00046 virtual void moveDown(); 00047 virtual void expandItem(QTreeWidgetItem*); 00048 virtual void collapseItem(QTreeWidgetItem*); 00049 virtual void addObjectToHierarchy(const DtObjectType&); 00050 00051 protected: 00052 DtUiAggregateCompositionEditor* myParent; 00053 }; 00054 00055 class DT_DLL_entityeditorimpl DtUiAggregateCompositionEditor : public DtUiElement 00056 { 00057 public: 00058 00060 DtUiAggregateCompositionEditor 00061 ( 00062 const DtString& name, 00063 DtReaderWriterRegistry* const parentRegistry = NULL 00064 ); 00065 00067 virtual ~DtUiAggregateCompositionEditor(); 00068 00070 DtUiAggregateCompositionEditor(const DtUiAggregateCompositionEditor& orig); 00071 00073 DtUiAggregateCompositionEditor& operator=(const DtUiAggregateCompositionEditor& orig); 00074 00075 typedef std::list<DtObjectType> DtObjectTypeList; 00076 00077 public: 00078 virtual QWidget* createLabelWidget(QWidget* parent) {return 0;}; 00079 virtual QWidget* createControls(QWidget*); 00080 00081 virtual bool canMoveUp() const; 00082 virtual bool canMoveDown() const; 00083 00084 protected: 00085 virtual DtUiElement* clone(); 00086 virtual void decorateElement(); 00087 virtual void setFromParameters(DtReaderWriter* parentRw); 00088 virtual void elementChanged(); 00089 virtual void setModelModified(DtModelSetEntry*); 00091 virtual bool createHierarchy(DtVrfSubObjectParameterList*, QTreeWidgetItem* parent, 00092 DtObjectTypeList ancestorList = DtObjectTypeList()); 00094 virtual bool createHierarchy(DtVrfSubObjectParameterEntry*, QTreeWidgetItem* parent, 00095 DtObjectTypeList ancestorList = DtObjectTypeList()); 00096 00098 virtual DtFormationHierarchyView* createHierarchy(QWidget* parent) const; 00099 00103 virtual QTreeWidgetItem* addHierarchyItem(const DtObjectType&) const; 00104 00106 virtual void hierarchySelectionChanged(); 00107 00110 virtual void addToHierarchy(); 00111 00113 virtual void replaceInHierarchy(); 00114 00116 virtual void removeFromHierarchy(); 00118 virtual void removeFromHierarchy(DtVrfSubObjectParameterEntry* entry); 00119 00121 virtual void moveUp(); 00122 00124 virtual void moveDown(); 00125 00127 virtual void moveInHierarchy(int iFrom, int iTo); 00128 00130 virtual void resetHierarchyFromList(); 00131 00133 virtual void editSelectedItem(); 00134 00135 virtual void expandItem(QTreeWidgetItem*); 00136 virtual void collapseItem(QTreeWidgetItem*); 00137 00138 virtual void sendEvent(DtUiElementEvent::DtUiElementEventTypes type, QTreeWidgetItem* i); 00139 virtual void sendEvent(DtUiElementEvent::DtUiElementEventTypes type, const QList<QTreeWidgetItem*>& i); 00140 virtual void processUiEvent(const DtUiElementEvent& e); 00141 00142 virtual void updateButtons(); 00143 virtual void addObjectToHierarchy(const DtObjectType&); 00144 virtual void replaceObjectInHierarchy(const DtObjectType&); 00145 00146 protected: 00147 QPushButton* myAddToHierarchy; 00148 QPushButton* myRemoveFromHierarchy; 00149 QPushButton* myReplaceInHierarchy; 00150 DtFormationHierarchyView* myHierarchy; 00151 QPushButton* myMoveUp; 00152 QPushButton* myMoveDown; 00153 QGroupBox* myGroupBox; 00154 DtUiAggregateCompositionSignalHandler myAggregateSignalHandler; 00155 DtModelSetEntry* mySelectedModel; 00156 DtAddObjectToHierarchy* myAddToHierarchyDialog; 00157 DtObjectType myObjectType; 00158 00159 friend class DtUiAggregateCompositionSignalHandler; 00160 }; 00161 00162 #endif