00001 00004 #ifndef BPSLABELERPLUGIN_H 00005 #define BPSLABELERPLUGIN_H 00006 00007 #include "bpsgui_global.h" 00008 #include <QtPlugin> 00009 #include <QMap> 00010 00011 class BpsDatastore; 00012 class BpsConfigWidget; 00013 class BpsLabeler; 00014 class BpsLabelerEditWidget; 00015 class BpsSettings; 00016 00021 class BPSGUI_EXPORT BpsLabelerPlugin 00022 { 00023 public: 00027 virtual ~BpsLabelerPlugin() {}; 00028 00032 virtual QString labelerId() const = 0; 00033 00037 virtual QString labelerName() const = 0; 00038 00044 virtual bool check(BpsDatastore* aDatastore) const = 0; 00045 00053 virtual BpsLabelerEditWidget* createEditWidget(BpsDatastore* aDatastore, QWidget* aParent = 0) const = 0; 00054 00062 virtual BpsConfigWidget* createConfigWidget(BpsDatastore* aDatastore, QWidget* aParent = 0) const = 0; 00063 00070 virtual BpsLabeler* createLabeler(BpsDatastore* aDatastore, QObject* aParent = 0) const = 0; 00071 00077 static QMap<BpsLabelerPlugin*,QVariant> plugins(BpsDatastore* aDatastore); 00078 00085 static BpsLabelerPlugin* plugin(BpsDatastore* aDatastore, const QString& aId); 00086 }; 00087 00088 Q_DECLARE_INTERFACE(BpsLabelerPlugin, "com.ibk-software.BPS2.BpsLabelerPlugin/1.0") 00089 00090 #endif // BPSLABELERPLUGIN_H