VR-Forces 4.0.4 Class Documentation
include/entityEditorImpl/embarkationConfigurationDialog.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2008 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: embarkationConfigurationDialog.h,v $ $Revision: 1.1 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef DTEMBARKATIONCONFIGURATIONDIALOG_H_
00013 #define DTEMBARKATIONCONFIGURATIONDIALOG_H_
00014 
00015 #include <QtGui/QDialog>
00016 #include <QtCore/QHash>
00017 
00018 #include "entityEditorImpl/entityEditorImplDefines.h"
00019 #include "vrfobjparam/loadPoint.h"
00020 #include <vrfExtProtocol/rangedObjType.h>
00021 #include "entityEditorImpl/uiPositionElement.h"
00022 
00023 class DtOccupancyDirectorDescriptor;
00024 class QPushButton;
00025 class DtEmbarkationSlotEntry;
00026 class QListWidget;
00027 class DtUiPositionElement;
00028 class QListWidgetItem;
00029 class DtReaderWriterRegistryData;
00030 
00031 class DT_DLL_entityeditorimpl  DtUiLoadPositionElement : public DtUiPositionElement
00032 {
00033 public:
00034    DtUiLoadPositionElement();
00035    
00036    virtual void clear();
00037 
00038    virtual void setPosition(DtReaderWriterRegistryData*);
00039    virtual QWidget* createControls(QWidget*);
00040 };
00041 
00042 class DT_DLL_entityeditorimpl DtEmbarkationConfigurationDialog : public QDialog
00043 {
00044    Q_OBJECT
00045 
00046 public:
00047    DtEmbarkationConfigurationDialog(QWidget* parent);
00048    virtual ~DtEmbarkationConfigurationDialog();
00049 
00050    virtual bool init(const DtOccupancyDirectorDescriptor*);
00051 
00052    DtOccupancyDirectorDescriptor* descriptor() const;
00053 
00054 public:
00056    static void addEntityType(const QString&, const DtRangedObjectType&);
00057    static void removeEntityType(const QString&);
00058    static void removeEntityType(const DtRangedObjectType&);
00059    static void clearEntityTypes();
00060    static DtRangedObjectType objectTypeFor(const QString&);
00061    static QString entityTypeText(const DtRangedObjectType&);
00062    static QHash<QString, DtRangedObjectType>& entityTypes();
00063 
00064 protected:
00065    virtual void createComplexCanvas();
00066    virtual void createEmbarkationConfigurationCanvas(const DtOccupancyDirectorDescriptor* desc);
00067 
00068    virtual bool isComplex(const DtOccupancyDirectorDescriptor* desc) const;
00069    virtual bool isComplex(const DtRwTemplatedListPtr<DtLoadPoint>&) const;
00070    virtual bool isComplex(const DtLoadPoint*) const;
00071 
00073    virtual bool isComplex(const DtEmbarkationSlotEntry*) const;
00074 
00075    virtual void createEntityTypesList(QWidget* parent, const DtOccupancyDirectorDescriptor*);
00076    virtual QWidget* createLoadList(QWidget* parent, const QString& title, DtUiLoadPositionElement*& position);
00077 
00078    virtual void validateEmbarkationButtons();
00079 
00082    virtual QListWidgetItem* addSlot(const DtEmbarkationSlotEntry*);
00083 
00086    virtual void removeSlot(DtOccupancyDirectorDescriptor* desc, DtEmbarkationSlotEntry*);
00087 
00090    virtual void addSlot(DtOccupancyDirectorDescriptor* desc, const DtRangedObjectType&);
00091 
00092    virtual int slotIndex(const DtOccupancyDirectorDescriptor*, const DtEmbarkationSlotEntry*) const;
00093 
00094    static void initializeEntityTypes();
00095 
00096    virtual DtLoadPoint* pointFor(const DtOccupancyDirectorDescriptor*,
00097       const DtEmbarkationSlotEntry*, const DtRwTemplatedListPtr<DtLoadPoint>&) const;
00098    virtual QListWidgetItem* itemFor(const DtEmbarkationSlotEntry*) const;
00099 
00101    virtual void reworkPointsFrom(int iSlotIndex, const DtRwTemplatedListPtr<DtLoadPoint>&) const;
00102 
00103 protected slots:
00104    virtual void clear();
00105    virtual void selectedEntityTypeChanged();
00106    virtual void addEntityType();
00107    virtual void removeSelectedSlot();
00108 
00109 protected:
00110    QWidget*       myCanvas;
00111    QPushButton*   myOK;
00112    DtOccupancyDirectorDescriptor* myDescriptor;
00113    QListWidget*   myEntityTypes;
00114    QPushButton*   myAddType;
00115    QPushButton*   myRemoveType;
00116 
00117    DtUiLoadPositionElement* myIngressPosition;
00118    DtUiLoadPositionElement* myEgressPosition;
00119 
00120    static QHash<QString, DtRangedObjectType>  gEntityTypes;
00121 };
00122 
00123 inline DtOccupancyDirectorDescriptor* DtEmbarkationConfigurationDialog::descriptor() const
00124 {
00125    return myDescriptor;
00126 }
00127 
00128 #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)