VR-Forces 4.0.4 Class Documentation
include/entityEditorImpl/uiAggregateFormationEditor.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2008 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: uiAggregateFormationEditor.h,v $ $Revision: 1.28 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef DTUIAGGREGATEFORMATIONEDITOR_H_
00013 #define DTUIAGGREGATEFORMATIONEDITOR_H_
00014 
00015 #include "entityEditorImpl/uiElement.h"
00016 #include "entityEditorImpl/entityEditorImplDefines.h"
00017 #include "vrfutil/rwString.h"
00018 #include "symbolMapper/modelKey.h"
00019 #include <vrfExtProtocol/objType.h>
00020 #include "entityEditorImpl/newFormationDialog.h"
00021 #include "entityEditorImpl/formationAutoLayoutFactory.h"
00022 
00023 #include <QtCore/QVector>
00024 
00025 class QGroupBox;
00026 class DtFormationEditor;
00027 class DtFormationTabBar;
00028 class DtVrfSubObjectParameterList;
00029 class DtVrfSubObjectParameterEntry;
00030 class DtUiAggregateFormationEditor;
00031 class QLabel;
00032 class QCheckBox;
00033 class DtFormationEntry;
00034 class DtFormation;
00035 class QPushButton;
00036 class QToolButton;
00037 class DtReaderWriterFile;
00038 class DtFormationTableEntry;
00039 class DtFormationTable;
00040 class QSpinBox;
00041 
00042 class DT_DLL_entityeditorimpl DtUiAggregateFormationSignalHandler : public QObject
00043 {
00044    Q_OBJECT
00045 
00046 public:
00047    DtUiAggregateFormationSignalHandler();
00048 
00049    void setUiElement(DtUiAggregateFormationEditor* parent);
00050 
00051 protected slots:
00052    virtual void formationChanged();
00053    virtual void selectionUpdated(const QVector<DtModelKey>&);
00054    virtual void edit();
00055    virtual void expand();
00056    virtual void collapse();
00057    virtual void formationModified();
00058    virtual void addFormation();
00059    virtual void removeFormation();
00060    virtual void renameFormation();
00061    virtual void setAsDefault();
00062    virtual void autoLayout();
00063    virtual void setSubordinateFormation();
00064    virtual void collapseAllOneLevel();
00065    virtual void expandAllOneLevel();
00066    virtual void toggleBoundingBoxes();
00067    virtual void toggleSnapToGrid();
00068    virtual void copyFormations();
00069    virtual void scaleFactorChanged(int);
00070 
00071 protected:
00072    DtUiAggregateFormationEditor* myParent;
00073 };
00074 
00075 class DT_DLL_entityeditorimpl DtUiAggregateFormationEditor : public DtUiElement
00076 {
00077 public:
00078 
00080    DtUiAggregateFormationEditor
00081    (
00082       const DtString& name,
00083       DtReaderWriterRegistry* const parentRegistry = NULL
00084    );
00085 
00087    virtual ~DtUiAggregateFormationEditor();
00088 
00090    DtUiAggregateFormationEditor(const DtUiAggregateFormationEditor& orig);
00091 
00093    DtUiAggregateFormationEditor& operator=(const DtUiAggregateFormationEditor& orig);
00094 
00095 public:
00096    virtual QWidget* createLabelWidget(QWidget* parent) {return 0;};
00097    virtual QWidget* createControls(QWidget*);
00098 
00100    virtual bool isFormationModified(const DtString& formation) const;
00101    virtual void uiState(QMap<QString, QVariant>& state) const;
00102    virtual void setUiState(const QMap<QString, QVariant>&);
00103 
00104    DtFormationAutoLayoutFactory* formationAutoLayoutFactory() { return &theFormationAutoLayoutFactory; };
00105 
00106 protected:
00107    virtual DtUiElement* clone();
00108    virtual void decorateElement();
00109    virtual void setFromParameters(DtReaderWriter* parentRw);
00110    virtual void elementChanged();
00111    virtual void setModelModified(DtModelSetEntry* m);
00112    virtual void selectionUpdated(const QVector<DtModelKey>&);
00113    virtual QMap<QString, QVariant> uiState() const;
00114 
00115    virtual DtNewFormationDialog* createNewFormationDialog() const;
00116 
00118    virtual void processUiEvent(const DtUiElementEvent& e);
00119    virtual void sendEvent(DtUiElementEvent::DtUiElementEventTypes type, const QString& path);
00120 
00121    virtual void edit();
00122    virtual void expand();
00123    virtual void collapse();
00124    virtual void collapseAllOneLevel();
00125    virtual void expandAllOneLevel();
00126    virtual void toggleBoundingBoxes();
00127    virtual void toggleSnapToGrid();
00128    virtual void formationModified();
00129    virtual void autoLayout();
00130    virtual void setSubordinateFormation();
00131    virtual void copyFormations();
00132    virtual void scaleFactorChanged(int);
00133 
00134    virtual DtFormationEditor* createFormationEditor(QWidget*);
00135 
00138    virtual void reworkFormationFileName(DtFormationTableEntry* entry);
00139    virtual bool fileInUse(DtFormationTableEntry*) const;
00140    virtual QVector<DtFormationTableEntry*> entriesThatUseFormationFile(const DtFormationTable*,
00141       DtFormationTableEntry*) const;
00142    virtual void formationFileNames(const DtFilename& oldUnsub, const DtFilename& oldFile,
00143       const DtFilename& newFormationFile, QString& newFile, QString& newUnsubName) const;
00144 
00146    virtual void removeFromHierarchy(int);
00147    virtual void removeFormationEntry(DtFormation* formation, int iPosition, int maxId);
00148    virtual QVector<DtFormationEntry*> allFormationEntriesForLeader(DtFormation* form, int promId) const;
00149 
00150    virtual void setAsDefault();
00151 
00152    virtual void renameFormation();
00153    virtual void addFormation();
00154    virtual void removeSelectedFormation();
00155 
00156    virtual void repositionInFormation(int iFrom, int iTo);
00157    virtual void replaceObjectInFormation(int iPos);
00158 
00160    virtual void addObjectTypeAtPosition(DtVrfSubObjectParameterEntry* entry, int pos);
00161 
00162    virtual void validateExpandCollapse();
00163    virtual QString addFormationToFormationList(QString entryRwName, const QString& basedOnFormation = "");
00164    virtual void addNewFormation(QString entryRwName, const QString& basedOnFormation = "");
00165 
00166 protected:
00167    virtual void formationChanged();
00168    virtual bool isModified() const;
00169 
00170 protected:
00171    QGroupBox*           myGroupBox;
00172    DtFormationEditor*   myFormationEditor;
00173    DtFormationTabBar*   myFormations;
00174    DtVrfSubObjectParameterList*  mySubordinates;
00175    DtRwString           mySubordinateList;
00176    DtUiAggregateFormationSignalHandler myAggregateSignalHandler;
00177    QPushButton*         myAddFormation;
00178    QPushButton*         myRemoveFormation;
00179    QPushButton*         myRenameFormation;
00180    QPushButton*         mySetDefaultFormation;
00181    QPushButton*         myAutoLayout;
00182    QPushButton*         myExpand;
00183    QPushButton*         myCollapse;
00184    QPushButton*         myCopyFormations;
00185    QCheckBox*           myBoundingBoxes;
00186    QCheckBox*           mySnapToGrid;
00187    QLabel*              myScaleFactorLabel;
00188    QSpinBox*            myScaleFactor;
00189    friend class DtUiAggregateFormationSignalHandler;
00190    DtObjectType         myObjectType;
00191    static DtFormationAutoLayoutFactory theFormationAutoLayoutFactory;
00192 };
00193 
00194 #endif

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)