VR-Forces 4.0.4 Class Documentation
include/entityEditorImpl/uiMultiSystemElement.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2007 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: uiMultiSystemElement.h,v $ $Revision: 1.3 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00013 
00014 #ifndef uiMultiSystemElement_h
00015 #define uiMultiSystemElement_h
00016 
00017 #include "entityEditorImpl/uiSystemElement.h"
00018 #include "ui_systemSelectionDialogUi.h"
00019 #include "entityEditorImpl/entityEditorImplDefines.h"
00020 #include "entityEditorImpl/systemPropertyEditDialog.h"
00021 
00022 class QListWidget;
00023 class DtComponentSystemDescriptor;
00024 class QAbstractButton;
00025 class QFrame;
00026 class DtSystemSelectionDialog;
00027 
00028 class DT_DLL_entityeditorimpl DtUiMultiSystemElement : public DtUiSystemElement
00029 {
00030 public:
00031 
00033    DtUiMultiSystemElement(const DtString& name,
00034       DtReaderWriterRegistry* const parentRegistry = NULL);
00035 
00037    virtual ~DtUiMultiSystemElement();
00038 
00040    DtUiMultiSystemElement(const DtUiMultiSystemElement& orig);
00041 
00043    DtUiMultiSystemElement& operator=(const DtUiMultiSystemElement& orig);
00044 
00046    virtual void chooseSystemToAdd();
00047 
00049    virtual void addSystem(const DtSystemDefinitionInfo& sysDefInfo);
00050 
00052    virtual void removeSystem();
00053 
00054    virtual void openPropertyEditWindow();
00055 
00056    virtual bool isModified() const;
00057 
00058    virtual void decorateElement();
00059 
00061    virtual void onSelectionChanged();
00062 
00063 protected:
00064    virtual void setFromParameters(DtReaderWriter* parentRw);
00065    virtual DtReaderWriterRegistryData* value(DtReaderWriter* parentRw);
00066    virtual void processUiEvent(const DtUiElementEvent&);
00067 
00068    virtual QWidget* createLabelWidget(QWidget* parent) {return 0;};
00069 
00070    virtual QWidget* createControls(QWidget*);
00071 
00072    virtual void createSystemSignalHandler();
00073 
00074    virtual void elementChanged();
00075 
00077    virtual QString uniqueDisplayName(const QString& baseName);
00078 
00079    virtual DtSystemSelectionDialog* createSystemSelectionDialog(QWidget* p);
00080 
00082    virtual QString getOpdEditorArguments() const;
00083    virtual void dialogDone(bool);
00084 
00085 protected:
00086    virtual DtUiElement* clone();
00087 
00088 protected:
00089    DtSystemPropertyEditDialogShdPtr myCurrentDialog;
00090    QListWidget*   myList;
00091    QAbstractButton*   myAddButton;
00092    QAbstractButton*   myRemoveButton;
00093    QAbstractButton*   myPropertiesButton;
00094    QAbstractButton*   myLaunchOpdEditor;
00095    typedef std::list<DtComponentSystemDescriptor*> DtSystemDescriptorList;
00098    DtSystemDescriptorList mySystemDescriptors;
00099    QFrame* myFrame;
00100    QLabel* myLabel;
00101 };
00102 
00104 
00105 class DT_DLL_entityeditorimpl DtSystemSelectionDialog : public QDialog
00106 {
00107    Q_OBJECT
00108 public:
00109    DtSystemSelectionDialog(QWidget* parent, Qt::WindowFlags f = 0);
00110    virtual ~DtSystemSelectionDialog();
00111 
00112    virtual void setAvailableSystems(const DtSystemDefinitionInfoList& availableSystems);
00113 
00114 protected slots:
00115    virtual void selectionChanged(QListWidgetItem* current, QListWidgetItem* previous);
00116    virtual void accept();
00117    virtual void itemDoubleClicked(QListWidgetItem* item);
00118 
00119 signals:
00120    void addSystem(const DtSystemDefinitionInfo&);
00121 
00122 protected:
00123    Ui::DtSystemSelectionDialogUi myUiImpl;
00124 };
00125 
00126 
00127 class DtUiMultiSystemElementSignalHandler : public DtUiSystemElementSignalHandler
00128 {
00129    Q_OBJECT
00130 
00131 public:
00132    DtUiMultiSystemElementSignalHandler();
00133 
00134 public slots:
00135    virtual void chooseSystemToAdd();
00136    virtual void addSystem(const DtSystemDefinitionInfo& systemDefInfo);
00137    virtual void removeSystem();
00138    virtual void onSelectionChanged();
00139    virtual void onItemDoubleClicked(QListWidgetItem* item);
00140 
00141 };
00142 
00143 Q_DECLARE_METATYPE(DtSystemDefinitionInfo);
00144 Q_DECLARE_METATYPE(DtComponentSystemDescriptor*);
00145 
00146 
00147 #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)