00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef DINAMICPROPERTIESLIST_H
00021 #define DINAMICPROPERTIESLIST_H
00022 #include <QObject>
00023 #include <QList>
00024 #include "graph.h"
00025 #include "edge.h"
00026
00027 #include "rocslib_export.h"
00028
00029 enum DynamicPropertyType
00030 {
00031 None,
00032 Unique,
00033 Multiple,
00034 Global
00035 };
00036
00037
00038 class ROCSLIB_EXPORT DynamicPropertiesList : public QObject
00039 {
00040 Q_OBJECT
00041 QMap< Graph*, QMultiMap <QString, Node* > > _NodesProperties;
00042 QMap< Graph*, QMultiMap <QString, Edge* > > _EdgesProperties;
00043 QMultiMap <QString, Graph*> _GraphProperties;
00044
00045 static DynamicPropertiesList* self;
00046
00047 DynamicPropertiesList( QObject* parent = 0 );
00048
00049 public:
00050
00051 static DynamicPropertiesList* New();
00052
00053 void addProperty( QObject* obj, QString name );
00054 void removeProperty( QObject* obj, QString name );
00055
00057 DynamicPropertyType type( QObject* obj, QString name );
00059 QString typeInText( QObject* obj, QString name );
00060
00061
00062
00063 void clear( Graph* graph = 0 );
00064
00066 void changePropertyName( QString name, QString newName, QObject* object );
00067
00068
00069 };
00070
00071 #endif // DINAMICPROPERTIESLIST_H