MAK Data Logger API Documentation for DIS
lgrAnnotationFactory.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef lgrAnnotationFactory_H_
11 #define lgrAnnotationFactory_H_
12 
13 #include "lgrAnn.h"
14 
15 #include <list>
16 #include <map>
17 #include <QtCore/QString>
18 #include <QtCore/QStringList>
19 #include <vlutil/vlString.h>
20 
21 class QPainter;
22 class QWidget;
23 class DtEnvObject;
24 
25 namespace MAKLogger
26 {
27  class DtLgrAnnotation;
28  class DtLgrAnnotationManager;
29  class DtLgrAnnotationSliderBar;
30  class DtLgrGuiModel;
31  class DtSliderBar;
32  class DtTimeComponent;
33 
37  {
38  public:
39 
42  typedef DtLgrAnnotation* (*AnnotationCreator)(QWidget*,DtLgrGuiModel*);
43 
45  typedef void (*AnnotationModifier)(QWidget*,DtLgrAnnotation*,DtLgrGuiModel*);
46 
49  typedef DtLgrAnnotation* (*AnnotationLoader)(const DtEnvObject* object);
50 
52  typedef DtLgrAnnotationSliderBar* (*AnnotationBarCreator)(DtLgrAnnotation* annotation);
53 
55  typedef DtLgrAnnotation* (*AnnotationConvertor)(const DtLgrAnnotation* annotation);
56 
58 
59  DtLgrAnnotationDefinition(QString guiTypeName,
60  QString accelerator,QString icon,DtString type,
61  AnnotationCreator creator, AnnotationModifier modifier,
62  AnnotationLoader loader,AnnotationBarCreator barCreator);
63 
66 
70 
73  QString myGuiTypeName;
74 
77 
79  QString myGuiIcon;
80 
82  DtString myType;
83 
85  AnnotationCreator myCreator;
86 
88  AnnotationModifier myModifier;
89 
91  AnnotationLoader myLoader;
92 
94  AnnotationBarCreator myBarCreator;
95  };
96 
97  typedef std::map<DtString,DtLgrAnnotationDefinition> DtAnnotationTypeMap;
98 
102  {
103  private:
112 
113  public:
114 
116  static const DtAnnotationTypeMap& annotationTypesMap();
117 
119  static const QStringList& annotationTypeNames();
120 
122  static DtLgrAnnotation* createAnnotation(const DtString& type,
123  QWidget* parent,DtLgrGuiModel* model);
124 
126  static void editAnnotation(QWidget* parent,DtLgrAnnotation*,
127  DtLgrGuiModel* model);
128 
132  static DtLgrAnnotation* convertAnnotation( const DtString& type,
133  const DtLgrAnnotation* source);
134 
137  static DtLgrAnnotation* loadAnnotation(const DtEnvObject* object);
138 
140  static DtLgrAnnotationSliderBar* createSliderBar(DtLgrAnnotation*);
141 
143  static bool isAnnotationType(const DtString& type);
144 
147  static void registerAnnotationType(const DtLgrAnnotationDefinition&
148  typeDefinition);
149 
150  static void registerAnnotationConversion(const DtString& destinationType,
151  const DtString& sourceType,DtLgrAnnotationDefinition::AnnotationConvertor function);
152 
154  static const std::list<DtString>& availableConversions(const DtString& sourceType);
155 
156  protected:
157 
161  static DtLgrAnnotationDefinition& getKnownDefinition(const DtString& type);
162 
163  static DtString conversionKey(const DtString& destType,
164  const DtString& srcType);
165 
167  static std::list<DtString> theAnnotationTypeList;
168  static QStringList theAnnotationTypeNames;
169 
172 
173  typedef std::map<DtString,DtLgrAnnotationDefinition::AnnotationConvertor> ConvertorMap;
174  typedef std::map<DtString, std::list<DtString> > ConversionListMap;
175 
179  };
180 }
181 
182 #endif

Document ID: Generated on Sun Dec 15 18:04:30 EST 2013 from SVN revision 134418
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)